はじめに
Google Colaboratory は非常に便利で、簡単にGPUコンピューティングを利用できるようになってますが、Jupyter Notebook 形式 + α しか利用できないため、可読性が下がったり、ファイル分けが難しいため、これを簡単に利用したい。
そのため、Visual Studio Codeを利用して、あたかも自分のPC上で作業しているかのように扱うことが可能だとわかったので今回はその備忘録。
注意点
Google Colaboratoryの規約違反の可能性があるので、GPUコンピューティングを利用する際はProに入ることをお勧めします。
概要
cloudflared
を利用してトンネリングから接続リンクまでを自動で作業してもらうという非常に優秀なツールがあったのでそれを使う。
作業の手順としては以下の通り。
- Google Colaboratory ファイルを Google Driveから作り、コードを貼り付けて実行
- 自分のPC上に
cloudflared
をインストール - SSHの設定
- 接続!
非常に簡単である。
手順 (Mac)
後にWindowsも追記する予定
1. Notebook の作成
まずはホストするサーバーの起動をするために、Drive上に、Jupter Notebookを作成する。
- Google Drive の好きな場所に Google Colaboratory ファイルを作成して開く。
-
ランタイム
->ランタイムのタイプを変更
からハードウェア アクセラレータ
をGPU
を選択する。 - 以下のプログラムをコードセルに貼り付け、任意のパスワードを指定して実行する。
import os from google.colab import drive drive.mount('/content/drive') !pip install colab_ssh --upgrade from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared launch_ssh_cloudflared(password="任意のパスワードを指定する")
2. PC に cloudflared
をインストール
今回はHomebrew
を利用してインストールするため、インストールしていない人は、Homebrew
をインストールしてください。
brew install cloudflare/cloudflare/cloudflared
3. SSH設定を作成する
ssh コマンドで特定のホストについてどんなプロキシを利用するかを設定します。
~/.ssh/config というファイルに追記、または作成して記述します。
sshで自動でそのファイルを参照するので、特に同期などという作業は必要ないみたいです。
また、インストールしたcloudflared
の絶対パスを指定する必要があるので、以下のコマンドで取得して記述し直してください。<>はいりません。
which cloudflared
Host *.trycloudflare.com
HostName %h
User root
Port 22
ProxyCommand <cloudflaredの絶対パス> access ssh --hostname %h
パスが出なかった場合
パスが出なかった場合はパスが通っていないので以下のコマンドで存在を確認し、パスを作成します。
# これを実行し、cloudflaredが表示されていればインストールされています。
brew_path=`brew --prefix`; cd $brew_path/bin; ls | grep "cloudflared"
# これを実行して出力されるパスがcloudflaredの絶対パスです。
brew_path=`brew --prefix`; echo $brew_path/bin/cloudflared
接続!
作成した Jupter Notebook にコマンドが記述されているため、そちらで基本的に実行できます。
以下はそのコマンドのコピーです。
SSH
ssh little-representations-establish-audit.trycloudflare.com
Visual Studio Code
- 左下の
< >
マークをクリックし、 上に出てくるパレットからSSHを選択します。 - 以下のコマンド(リンク)を入力します。
little-representations-establish-audit.trycloudflare.com
入力画面は、左下の < >
アイコン → ホストに接続する、で表示させることができます。
データの保存するパスについて
リモート環境はランタイムを削除するとリセットされてしまうので、Google Drive上に保存することをお勧めします。
リモート環境の接続時にパスを設定しますが、以下のパスで保存場所をGoogle Driveにすることができます。
/content/drive/MyDrive/これ以降のパスは個人的に設定することができます。
参考