めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

GCPでJupyterを利用する方法

GCEのVMインスタンスを利用する場合

Dockerのコンテナイメージを利用して、Jupyterの環境を用意します。TensorFlowなど関連モジュールを導入済みのイメージをDocker Hubで公開してありますので、これを利用することができます。

※ GCP公式イメージではありません。筆者が個人的に作成したものです。イメージ作成用のDockerfileは、下記で公開しています。

github.com

CentOS7のVMインスタンスを起動してログインした後、rootユーザーから、次の手順でコンテナを起動します。

# yum -y install docker
# systemctl enable docker.service
# systemctl start docker.service
# mkdir ~/data
# chcon -Rt svirt_sandbox_file_t ~/data
# docker run -itd --name jupyter -p 8888:8888 -p 6006:6006 -v ~/data:/root/notebook -e PASSWORD=hogehoge enakai00/jupyter_tensorflow:latest

「-e PASSWORD=」には、Jupyterにアクセスする際のパスワードを任意に指定します。ただし、通信経路の暗号化は行われないため、インターネット経由で直接にアクセスするのは危険です。SSHのトンネル機能を用いて、通信経路の暗号化を行ってください。

たとえば、Windowsクライアントの環境であれば、TeratermなどのSSH端末から、次のように8888番ポートと6006番ポートの転送を指定して、SSH接続します。

Mac OS X、もしくは、Linuxクライアントであれば、次のように、-Lオプションでポート転送を指定してSSH接続します。

$ ssh -L 6006:localhost:6006 -L 8888:localhost:8888 -i .ssh/gcp_enakai enakai@xxx.xxx.xxx.xxx

この後、ローカルのブラウザーから、「http://localhost:8888」にアクセスするとSSHトンネルを経由して、Jupyterに接続することができます。

また、TensorBoardを使用する際は、Jupyterのコンソール画面からTensorBoardを起動した後に、「http://localhost:6006」にアクセスします。

Google Cloud Datalabを利用する場合

(2016/08/15 追記)
Cloud Datalabのアーキテクチャーが新しくなって、ローカルのDockerとGCP上のDockerを使い分けることができるようになりました。利用手順は、下記のWebサイトを参照してください。

Google Cloud Datalab - Quickstarts

古い手順も参考までに残しておきます。

cloud.google.com

Cloud Datalabは、Jupyter環境をSaaS形式で提供します。バックエンドは、Google App Engine Flexible Environmentになります。上記のリンクから、環境をデプロイして利用することができます。

利用開始時にGCPのアカウント認証(SSO)が行われるので、Jupyterのノートブック内からGCPモジュールを利用して、Cloud StorageやBig Queryなどのサービスを直接に呼び出すことができます。

ただし、デフォルトでは、バックエンドのVMインスタンスのサイズが小さいため、大量のメモリーを必要とする処理が実行できません。VMインスタンスのCPUコア数やメモリー容量を指定する方法は、下記のドキュメントを参照してください。

Customizing your Cloud Datalab deployment

たとえば、次のURLから環境をデプロイすると、n1-standard-4(vCPU x 4、メモリ 15 GB)のインスタンスが使用されます。

http://datalab.cloud.google.com?name=datalab01&cpu=4&memorygb=14

この場合、デプロイした環境には、「datalab01」という名前が付いているので、利用する際は、下記のURLからアクセスする必要があります。

http://datalab.cloud.google.com?name=datalab01

Cloud Datalabでは、TensorFlowも利用することができます。ただし、ビジュアライゼーションツールのTensorBoardは使用できません。TensorBoardを使いたい場合は、次に説明する方法を用いるのがよいでしょう。

※ Cloud Datalabは、現在ベータ版として提供されています。今後、利用方法など、サービス内容が変わる可能性もありますのでご注意ください。