1. kanosawa

    Posted

    kanosawa
Changes in title
+sshfs(+docker)でリモートマシン上のコードをGUI系エディタでいじる
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,43 @@
+#はじめに
+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
+
+#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なり)