16
9

More than 5 years have passed since last update.

Cloud Datalabをタブレットやスマホから使う

Last updated at Posted at 2017-06-17

Cloud DatalabはGCPが提供するサービスのひとつで、Jupyter NotebookのGCP版です。便利なところは、

  • インストールがすごく簡単。Cloud SDKを入れてあれば、datalab create your-instance-nameって実行するだけであっという間にDatalabインスタンスを作れる

  • AnacondaのようにNumPy/SciPy、scikit-learn、matplotlib等の定番データ分析ツールがひととおり入っていてすぐ使える。もちろんTensorFlowも

  • BigQueryやGoogle Cloud Storage、Cloud Dataflow、Google Charts等のGCPサービスが統合されていて、例えばBigQueryのクエリ結果をNumPyやPandasの配列として扱える

等々の便利さで、最近はなんでもDatalabで済ませるようになりました。気になる方は、こちらのビデオを見てみてください。BigQueryからのデータ抽出とTensorFlowによるモデル学習までを5分間くらいでさくっと解説しています。

タブレットやスマホから使いたい!

このDatalabを出先に持ってったiPadから手軽に使いたい! と思ったのですが、DatalabインスタンスはGCP上のGCEインスタンスで、datalabコマンドによるsshポートフォワーディングで接続するため、Cloud SDK環境がなければアクセスできません。いろいろ試行錯誤の結果、以下の手順でいい感じにiPadからDatalabを開ける環境をつくれました。

踏み台PCを用意する

最初はiPadからsshアプリでポートフォワーディングしてDatalabインスタンスに直接接続する方法も考えました。が、iOSはバックグラウンドアプリが10分でサスペンドされてしまいます。直接接続はあきらめて、踏み台PCを用意することにしました。自宅のPCでDatalabに接続し、そこへiPadからVPN接続します。

まずは踏み台となるPCから以下のコマンドを実行してDatalabに普通に繋いでみます。

> datalab connect xxx --verbosity=debug

このように--verbosity=debugと指定すると、Datalabインスタンス接続時にいろいろとデバッグログが表示され、中で何をやってるのかがわかります。その中から、以下のssh接続部分を見つけてコピーしておきます。

/usr/bin/ssh -t -i /Users/kaz/.ssh/google_compute_engine -o CheckHostIP=no -o HostKeyAlias=compute.xxx -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/Users/kaz/.ssh/google_compute_known_hosts -o LogLevel=error -4 -N -L localhost:8081:localhost:8080 datalab@xxx.xxx.xxx.xxx

つまりdatalab connectコマンドとは、クラウド上のDatalabインスタンスのlocalhost:8080をPCのlocalhost:8081にsshポートフォワーディングするラッパーとして動作しています。xxxの部分には個々の環境ごとに異なる値が入ります。

このままではPC上のブラウザからしかアクセスできないので、-Lオプションにつづく部分をxxx.xxx.xxx.xxx:8081:localhost:8080と修正します。xxx部分には、PCのIPアドレスを指定します。踏み台PC上では、datalabコマンドの代わりにこのsshコマンドでDatalabインスタンスに接続しておきます。

タブレットやスマホからVPN接続する

あとは、外出先からタブレットやスマホで自宅LANにVPN接続すればOKです。私の環境では、

により、VPN環境を作りました。あとは、タブレットやスマホのブラウザから踏み台PCのIPアドレスを参照してxxx.xxx.xxx.xxx:8081を開けばDatalabにアクセスできます。

いつでもどこでもBigQuery+TensorFlow

この環境のよいところは、

  • ネットがあんまり速くない環境でもクラウド上のDatalabインスタンスでそこそこ重い作業も実行できる。gitからcloneしてビルド、BQの検索結果でモデル学習、等々。
  • ssh接続のみではmatplotlib等の可視化ツールを使えないが、ブラウザ経由なら可視化しながらのデータいじり可能

といったところです。iPadとSmart Keyboardさえあれば、飛行機のウルトラ遅いWiFiでもTensorFlowいじりできるかな? ともくろんでます。


Disclaimer この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

16
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9