Help us understand the problem. What is going on with this article?

sshfs(+docker)を使ってリモートマシン上のコードをGUI系エディタでいじる

More than 1 year has passed since last update.

はじめに

AWSやAzureで(お金さえあれば)潤沢なGPU環境を簡単に利用できるようになりましたが、リモートマシンゆえにGUIの利用に制限がかかります。
XForwardingなどがうまく動けばよいですが、重くて使い物にならないことも多いかと思います。

そこで本記事では、リモートマシン上にあるコードをローカルのGUI系エディタ(VSCodeなど)でいじる方法を紹介します。
本番実行はリモートマシン上で行う想定ですが、ローカルでも簡単なデバッグは行いたいので、dockerを使ってリモートとローカルの環境を揃えます(オプションです)。

代替手段

・XForwading
重い

・Remote VSCode
余計なポートを開ける必要があり、会社で使えない(´・ω・`)

主な流れ

  1. ローカルとリモートの両方でdockerコンテナに入る
  2. ローカルでsshfsし、リモートマシンのディレクトリをマウント
  3. ローカルでコーディング

docker

ローカルとリモートの両方でdockerコンテナに入ります。
docker runする際に、--privilegedオプションをつけてください。
これが無いと後述のsshfsでエラーが出ます。
https://github.com/s3fs-fuse/s3fs-fuse/issues/647

なお、dockerコンテナ内でVSCodeを利用する方法については以下の記事を参考にしてください。
https://qiita.com/kanosawa/items/0c83f8d8eaaa4a72e1cd

sshfs

ローカルでsshfsし、リモートマシンのディレクトリ(src)をローカルマシンのディレクトリ(dst)にマウントします。

sshfs [-o IdentityFile=keypath] username@remote_ip:src dst

例)

sshfs -o IdentityFile=~/key.pem ubuntu@12.345.678.901:/home/ubuntu/work ~/work

鍵認証不要なら[]部は不要です。

おわりに

以上の手順で、リモートマシン上にあるコードをローカルのGUI系エディタでいじることができるようになります。

これでTesla V100 8台を気軽にぶん回すこともできますね(24.5ドル/hなり)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした