純SSHリレー vs code-server(ブラウザ)
純SSHは転送でTCPを点出し、code-serverはHTTPS+WebSocketでUIを束ねます。隔離設計は省略不可です。
| 観点 | 純SSHリレー | code-server(ブラウザ) |
|---|---|---|
| 主トランスポート | SSHセッション+任意TCP転送 | TLS四四三番前段、長寿命WebSocket |
| ポート物語 | 転送が増えやすい。名前空間必須 | 外向き一本化しやすい。高位ポートは席別帯で管理 |
| 権限隔離 | OSユーザー+sshd で素直 |
SSOだけでは不足。OSユーザ/ホーム分離必須 |
| 並行衝突 | flock と負荷で見えやすい |
LS/拡張でRAM・CPUが膨らみ無音で詰まりがち |
| 遅延感度 | RTT高でも比較的耐える | ジッターと前段設計に敏感 |
| 不安定回線 | tmux / ControlMaster |
リロードで状態落ちやすい |
同一ホスト上のポート・権限・並行
二十二番も四四三番もスケジューラと署名キューは一台ぶん。SSHは127.0.0.1で衝突を局所化しやすいが番号被りに注意。code-serverは高位ポートを席別レンジで運用表化。対話とCIユーザ分離・umask 027。ブラウザ認証は輸送強化で同一OSユーザでは秘密共有。独占ジョブは宣言キュー。週次で破るなら第二ビルダ。
意思決定マトリクス(if / then)
ワークシート用。コアと席が先で接続様式は二の次。
| 観測シグナル | 選ぶ | メモ |
|---|---|---|
| SSH鍵を配れない外注 | SSO背後の code-server | 短命トークン+席別ホーム |
| 安定転送が一人五本超 | SSH+小型エッジ | TLS vhost で一本化 |
| 四四三公開が規程で不可 | SSHのみ | 踏み台監査。供給審査後に再検討 |
| 短周期のペア引き継ぎ多い | 共有WS URL | ブランチロック必須 |
| 夜間CIがCPU飽和 | プール分割 | 対話席を別ノードへ |
実行可能な閾値と逆プロキシ注意(ベンダ中立)
二〜四名/一台の初期値。コアとディスクで調整。
- 対話並行:code-server 二並行上限。空きRAM中央値八GiB超なら三席を試験。
- 自動化並行:コンパイル飽和は人と重ねて一〜二、他はキュー。
- SSH:
ServerAliveInterval 30、ServerAliveCountMax 4、ControlPersist 10m。ローミング多いなら三十分。 - HTTP/WS timeout:p95ジョブに合わせ、多くは二千七百〜七千二百秒。HTTPとWSを同水準に。
- 拡張:未使用は止め、席あたりRSS <1.5GiB 目安。
逆プロキシ:TLS終端、Upgrade/Connection透過、エディタ経路はバッファ無効、HTTP/WSアイドル一致。CDN越えはHTTP/二とヘッダ喪失を点検。SSHはTCPパススルー、HTTP化しない。
例(ループバック+前段TLS):
export PASSWORD="" # トークンファイルやSSO推奨
export HOST=127.0.0.1
export PORT=8443 # ループバックのみ。TLSは前段で終端
# export CODE_SERVER_SESSION_LIMIT=2 # 任意:ウォームアップ中の新規接続抑制
遅延・衝突の受け入れチェックリスト
経路ごとに一回ずつ。コンパイル中ジッタも記録。
- ☐RTT:SSH主戦場は中央値八十ms以下目安。ブラウザは体感で確認。
- ☐入力遅延:拡張アイドル時 <150ms p95。
- ☐ポート:開発帯
LISTENをストレス後スキャンし重複ゼロ。 - ☐再接続:強制切断から百二十秒以内に編集再開(秘密ローテ無し)。
よくある質問(FAQ)
Q. 二十二番衝突は消える。
A. 移るだけ。分離・ポート・キューは要る。
Q. 純SSHデフォルトは。
A. CLI中心・Web IDE不可・低RTT。届かない時だけ中継。
Q. 前段timeout。
A. p95ジョブ以上(四十五〜百二十分帯)。HTTP=WS。
Q. ブラウザ席の上限。
A. 重いLS二+飽和compile一で警告、IDE三超なら別ノードかCI分割。