Google Cloud Datalab notebook を GCP で実行
Google Cloud ML の運用に Datalab が推奨されていますので、Docker 環境における導入 : Google Cloud Machine Learning : 入門編 (4) – Datalab とは別に、以下のドキュメントに従って GCE ベースでインストールしてみました :
Run Cloud Datalab notebooks on Google Cloud Platform | Google Cloud Datalab Documentation
本記事では、GCP 上で Cloud Datalab 全体をどのようにセットアップして実行するかを示します。GCP 上で Cloud Datalab を実行すると以下が可能になります :
- Cloud Platform VM の computing とディスク・リソースが notebook コマンドを実行し迅速に結果を得るために利用できます。
- Cloud Platform を使用して Google Cloud Strage データに直接アクセスすることによりローカルマシンにデータをダウンロードする時間消費を回避できます。
- ローカルマシンに Docker をインストールすることなく Cloud Datalab を実行できます。
始める前に
プロジェクトを選択する
Cloud Datalab notebook を実行するためには GCE API が有効になった GCP プロジェクトが必要です :
gcloud projects list
後で使いますので、選択したプロジェクト ID をメモしておきます。gcloud コマンドをインストールするには Google Cloud SDK をインストールします。
GCP で Compute Engine VM を作成する
1. datalab-network を作成します :
gcloud compute networks create "datalab-network" \ --project ${PROJECT_ID} \ --description "Network for Datalab servers"
実行結果です :
Created [https://www.googleapis.com/compute/v1/projects/${PROJECT_ID}/global/networks/datalab-network]. NAME MODE IPV4_RANGE GATEWAY_IPV4 datalab-network auto Instances on this network will not be reachable until firewall rules are created. As an example, you can allow all internal traffic between instances as well as SSH, RDP, and ICMP by running: $ gcloud compute firewall-rules create <FIREWALL_NAME> --network datalab-network --allow tcp,udp,icmp --source-ranges <IP_RANGE> $ gcloud compute firewall-rules create <FIREWALL_NAME> --network datalab-network --allow tcp:22,tcp:3389,icmp
2. ネットワークへの SSH アクセスを許可します :
gcloud compute firewall-rules create datalab-network-allow-ssh \ --project ${PROJECT_ID} \ --allow tcp:22 \ --network "datalab-network" \ --description "Allow SSH access"
実行結果です :
Created [https://www.googleapis.com/compute/v1/projects/${PROJECT_ID/global/firewalls/datalab-network-allow-ssh]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS datalab-network-allow-ssh datalab-network 0.0.0.0/0 tcp:22
3. Cloud Datalab VM をどのようにセットアップするかを定義する YAML ファイルをダウンロードします :
gsutil cp gs://cloud-datalab/server.yaml ./datalab-server.yaml
4. VM を作成します (ref. Choosing a region and zone) :
gcloud compute instances create "instance-datalab" \ --project "${PROJECT_ID}" \ --zone "us-central1-b" \ --network "datalab-network" \ --image-family "container-vm" \ --image-project "google-containers" \ --metadata "google-container-manifest=$(cat datalab-server.yaml)" \ --machine-type "n1-highmem-2" \ --scopes "cloud-platform"
実行結果です :
Created [https://www.googleapis.com/compute/v1/projects/${PROJECT_ID}/zones/us-central1-b/instances/instance-datalab]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-datalab us-central1-b n1-highmem-2 10.128.0.2 104.154.18.56 RUNNING
Cloud Datalab に接続するために SSH tunnel を使用する
1. 次のコマンドを実行します :
gcloud compute ssh --quiet \ --project "${PROJECT_ID}" \ --zone "us-central1-b" \ --ssh-flag="-N" \ --ssh-flag="-L" \ --ssh-flag="localhost:8081:localhost:8080" \ "${GUSER}@instance-datalab"
2. Cloud Datalab notebook リストページを開くために、ブラウザを http://localhost:8081 に接続します。
以上