【リモートかいはつ】

リモート開発 とは?

💡 画面はこっち、頭脳はあっち
📌 このページのポイント
リモート開発のアーキテクチャ ローカル PC エディタ UI キー入力・画面描画のみ SSH / HTTPS 双方向通信 リモートマシン ファイルシステム / コード ターミナル / ビルド 拡張機能(サーバー側) 主なユースケース 🖥️ GPUサーバー接続 機械学習の学習実行 🐳 コンテナ内開発 Dev Container連携 🔒 セキュア開発 コードをローカルに置かない
リモート開発:ローカルのUIからリモートの計算資源を活用
ひよこ ひよこ

リモート開発って、リモートワークとは違うの?

ペンギン先生 ペンギン先生

いい質問だね。リモートワークは「人が」オフィス以外で働くこと。リモート開発は「開発環境が」手元のPCとは別の場所にあること。自宅からオフィスのPCに繋いで開発するのもリモート開発の一種だよ

ひよこ ひよこ

具体的にはどうやって繋ぐの?

ペンギン先生 ペンギン先生

一番ポピュラーなのはVS CodeのRemote - SSH拡張機能だね。SSHで遠くのサーバーに接続すると、ファイル操作もターミナルも全部リモート側で実行される。手元のPCにはエディタのUIだけが表示されるイメージだよ

ひよこ ひよこ

遅延が気になりそう…実用的なの?

ペンギン先生 ペンギン先生

最近のツールはかなり最適化されていて、通常のネット回線なら違和感なく使えるよ。VS Codeはエディタ部分をローカルで動かして、ファイルI/Oやコンパイルだけリモートで実行するアーキテクチャだから、体感はほぼローカルと同じなんだ

ひよこ ひよこ

どんな人がリモート開発を使ってるの?

ペンギン先生 ペンギン先生

機械学習エンジニアがGPUサーバーに繋いで学習を回すケースが多いね。あとはセキュリティの厳しい企業で、コードを手元に置けないからリモートの開発サーバーで作業するパターン。CDEが普及する前からある歴史の長い手法だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リモート開発」って出てきたら「手元のエディタから遠くのマシンに繋いで開発するスタイル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Remote Development」 = 遠隔開発
💬 Remote(遠隔の)とDevelopment(開発)を組み合わせた言葉。開発の「実行場所」と「操作場所」を分離する考え方だよ
← 用語集にもどる