非GUIのマシンでGoogleDriveをマウントする
目次
Quick summary
- CUIだけの環境でGoogle Driveをマウントする。

なんでGoogle Driveをマウントする?
そもそも、どうしてGoogle Driveをマウントする必要があるのか?
それはColabを使いたいから。ColabはGoogle Driveをストレージとして利用する(方法が一般的)
でも、Colabは長時間の実行が不可能(最大1日)。
ぼくのケースでは、データ生成とデータ管理のために1日を超える計算時間が必要。internal networkに存在するCPUマシンを利用している。
似たような状況はフリーランサーのエンジニアが遭遇するかもしれない。例えば、メイン開発環境がawsのマシン(CPU)。深層学習のためにColabを使いたい、と言ったケースだ。
internal networkのCPUマシンからColabへどうやってデータ転送するか?
例えば、scpを経由してラップトップにデータダウンロードして、Google Driveへ手動アップロードする?ご冗談を。
google-drive-ocamlfuse
google-drive-ocamlfuse
(ocamlfuse)っていうライブラリが存在してる。
ocamlfuseはLinuxマシンがGoogle Driveのマウントを可能にする。コマンドラインでGoogle Driveへアクセスできることはとても嬉しい。
でも、ocamlfuseの最大の問題点はGUI環境が不可欠なこと。というのも、Google DriveへのアクセスAuthotization(Authentificationではない要注意)の際にWebブラウザが必要になるからだ。
じゃあ、どうするか?
gcpで独自のAuthorizationアプリを作る
すでに答えが出ている。このリンクの通りにすれば成功した。
ちょっと複雑なケース
ぼくが構築したネットワークはもう少し複雑。
ぼくはColabの利用料金を自分のクレジットカードで支払ってる。なので、自分のメインGmailアカウントでColabを使ってる。当然ながら、Google Driveは自分のもの。個人的なデータもたくさん入ってる。
で、問題はここから。ぼくの使ってるCPUサーバーは「共有」である。誰でもsudoを使えてしまう環境。
もし、このCPUサーバーでocamlfuseを個人Google Driveに対してマウントしたら・・・ぼくの個人データがサーバーユーザーにアクセス可能になってしまう。それはマズイ。極めてマズイ。
なので、図のようなネットワークにした。ocamlfuseがマウントするGoogle Driveは「仕事用」のデータだけが存在するDrive。個人Google Driveが仕事用Google Driveをデータ共有する。

これでColabは仕事用Driveへアクセスできる。
ディスカッション
コメント一覧
まだ、コメントがありません