G-gen の佐々木です。当記事では、Google Cloud でマネージドな Jupyter ノートブック環境を利用できる、2種類のノートブックソリューション(Colab Enterprise / Vertex AI Workbench)を解説します。また、Colab Enterprise と Vertex AI Workbench の違いや、選定の基準についても簡単にご紹介します。
- Colaboratory と Google Cloud のノートブックソリューション
- Colab Enterprise
- Vertex AI Workbench
- Colab Enterprise と Vertex AI Workbench の比較
Colaboratory と Google Cloud のノートブックソリューション
Colaboratory
Colaboratory は、Google が提供しているブラウザベースの Jupyter ノートブック環境です。Colaboratory は Google のサービスではありますが、Google Cloud のサービスではありません。
Colaboratory には以下のような特徴があり、ユーザーによる環境の構築が不要で、手軽にノートブック環境を利用することができます。
- 無料で利用することができる(有料プランもあり)。
- pandas、NumPy、TensorFlow、PyTorch などの、データ分析や機械学習に必要なパッケージがプリインストールされている。
- GPU や TPU を使用して処理を実行することができる。
- ノートブックを共同編集できる。
- Google Drive と連携してノートブック、データを保存できる。
Google Cloud のノートブックソリューション
Colab Enterprise と Vertex AI Workbench は、Colaboratory と同様、環境構築不要のノートブック環境を提供する Google Cloud のサービスです。
これらのサービスは Colaboratory のように無料で利用することはできませんが、Google Cloud のサービスとして、IAM を使用したアクセス制御や、データの保存先となるリージョンの指定など、企業利用の場合に要求されるセキュリティ機能、コンプライアンス機能が提供されます。
また、BigQuery や Cloud Storage などの他のサービスと連携することにより、ノートブック環境を拡張することができます。
Colab Enterprise
Colab Enterprise とは
Colab Enterprise は、Google Cloud 上に事前構築されたマネージドなノートブック環境を提供するサービスです。
Colab Enterprise では、ノートブック環境をホストするインフラストラクチャ(ランタイム)を ランタイムテンプレート として構成しておくことで、ノートブックを使用するときだけ、テンプレートで構成した環境を自動的に起動します。ランタイムは、ノートブック未使用時はシャットダウンすることができます。
ランタイムとランタイムテンプレート
ランタイム
ランタイムは、ノードブック環境を実行するための Google マネージドの VM です。
後述の Vertex AI Workbench と異なり、Colab Enterprise ではユーザーが VM の管理を意識することはないため、当記事では Colab Enterprise の実行環境のことを指す場合はランタイムと記載します。
ノートブックを実行する際に、その実行環境となるランタイムに接続する必要があります。
ランタイムテンプレート
マシンタイプやディスクタイプ、ディスクサイズなどのランタイムの構成は、ランタイムテンプレートとして事前定義しておき、このテンプレートを使用してランタイムを起動します。
ランタイムテンプレートでは、以下のような項目を定義できます。
項目 | 説明 |
---|---|
リージョン | テンプレートを保存するリージョン |
マシンタイプ | テンプレートから起動されるランタイムの VM が使用するマシンタイプ |
アクセラレータ | 使用する GPU の種類と数(GPU が使用できるマシンタイプの場合に設定可能) |
ディスク | ランタイムにアタッチする永続ディスクの種類と、ディスクの容量 |
アイドルシャットダウン | アイドルシャットダウン(後述)を有効化するかどうか アイドルシャットダウンまでの時間 |
ネットワーク | ランタイムを起動する VPC とサブネット |
パブリック IP の割り当て | ランタイムにパブリック IP を紐付けるかどうか |
エンドユーザー認証情報 | ランタイムが Google Cloud の API にアクセスする際、ノートブックを利用しているユーザーの認証情報を使用できるかどうか(後述) |
ランタイムテンプレートの共有
ランタイムは、そのランタイムを作成したユーザー専用の環境であり、他のユーザーが使用することはできません。ノートブックを他のユーザーに共有する場合、そのユーザー専用のランタイムを起動して接続し、ノートブックを実行する必要があります。
作成したランタイムテンプレートを他のユーザーと共有することで、他のユーザーも同一の構成でランタイムを実行することができます。
デフォルトのランタイム
プロジェクトごと、リージョンごとにデフォルトのランタイムテンプレートが存在します。これを利用することで、自分でランタイムテンプレートを作成しなくても、すぐにランタイムを実行することができます。
デフォルトのランタイムテンプレートは以下のように構成されています。
項目 | 設定値 |
---|---|
マシンタイプ | e2-standard-4 |
アクセラレータ | なし |
アイドル シャットダウン | 有効 |
ネットワーク | デフォルト VPC |
パブリック IP の割り当て | 有効 |
エンドユーザー認証情報 | 有効 |
また、デフォルトのランタイムは作成から18時間後に自動で削除されます。
アイドルシャットダウン
アイドルシャットダウンは、一定時間非アクティブ状態が継続したランタイムを自動でシャットダウンする機能です。Colab Enterprise ではランタイムの起動時間だけ料金が発生するため、これを有効化することで、ランタイムを使用していない時間の料金を節約することができます。
アイドルシャットダウンを有効化した場合、以下の条件がすべて満たされるとランタイムがシャットダウンされます。
- アイドルシャットダウンで指定した時間、カーネルの操作がない。
- ランタイムがノートブックに接続されていない(すべてのノートブックが閉じられている)
シャットダウンまでの非アクティブ時間は、10分~1440分の任意の時間を設定することができます。
なお、Colab Enterprise のランタイムは手動で停止することができません。
IAM によるアクセス制御
ノートブックへのアクセス制御
プロジェクトまたはノートブックの単位で、特定の Google アカウントやグループに対して、ノートブックのアクセス権を付与することができます。
ランタイムテンプレートに対するアクセス制御
特定の Google アカウントやグループに対してランタイムテンプレートに対するアクセス権を付与することで、ユーザー間で同一のテンプレートを使用してランタイムを起動することができるようになります。
ノートブックから Google Cloud API に対するアクセス制御
ノートブック内のコードから他の Google Cloud の API にアクセスする場合、次のいずれかの方法を使用します。
- ランタイムで「エンドユーザー認証情報」を有効化し、ノートブックを使用しているユーザーの認証情報で Google Cloud API にアクセスする。
- ノートブック上で
!gcloud auth application-default login
コマンドを使用して、ユーザーの認証情報ファイル(ローカル ADC ファイル)を作成する。
ローカル ADC ファイルを使用する場合、ファイルはランタイム内に保存されます。
VPC Service Controls の使用
Colab Enterprise は、VPC Service Controls のサービス境界内で使用することができます。
VPC Service Controls の詳細は以下の記事を参照してください。
サービス境界内で Colab Enterprise を使用すると、ランタイムはサービス境界の影響を受けます。
ランタイムに対するアクセス制御に IAM 以外の要素(IP アドレス範囲など)を設定することができ、またノートブックからアクセスできる Google Cloud サービスを制限することができます。
生成 AI によるコード補完
Colab Enterprise のノートブックでは、Google の生成 AI モデルである Gemini を使用したコード補完機能がサポートされています。
たとえば、以下のスクリーンショットのように、ノートブックのセルに「import p」と入力すると、コード補完によって「import pandas as pd」が提案される場合があります。この状態で Tab キーを押すと、提案されたコードがセルに自動で入力されます。
また、セル内のコメントでプロンプトを入力すると、プロンプトの内容に応じたコードが提案されます。
BigQuery Studio との統合
Colab Enterprise は、BigQuery Studio と UI が統合されています。BigQuery の UI 上でノートブックを開き、Colab Enterprise のランタイムを使用してノートブックを実行することができます。
これにより、BigQuery のデータをノートブック上で分析したい場合など、BigQuery と Colab Enterprise の UI を行き来する必要がなくなります。
また、ノートブックは BigQuery DataFrames が組み込みでサポートされているため、BigQuery にあるデータを pandas、scikit-learn ライクに操作する処理を、BigQuery のコンピュートリソースで実行することができます。
BigQuery DataFrames の詳細については、以下の記事をご一読ください。
料金
Colab Enterprise の料金は、CPU、メモリ、GPU、ディスクの利用量に対して発生します。リージョンやマシンタイプ、ディスクタイプによって料金単位が異なるため、詳細は公式ドキュメントを参照してください。
課金対象 | 説明 |
---|---|
CPU、メモリ | ランタイムの実行時間に応じて料金が発生します。 |
GPU | ランタイムで GPU を使用している場合、ランタイム実行時間に応じて料金が発生します。 |
ディスク容量 | ランタイムの実行状態に関わらず(停止していても)、確保したディスク容量ぶんの料金が発生します。 |
アイドルシャットダウン機能を活用することで、ディスク容量以外の料金を節約することができます。
Vertex AI Workbench
Vertex AI Workbench とは
Vertex AI Workbench は Colab Enterprise 同様、Google Cloud マネージドの Jupyter ノートブック環境を提供するサービスです。
2024年5月現在、Vertex AI Workbench には、インスタンスタイプとして以下3種類が用意されていますが、そのうち2種類は非推奨のものとなっています。
- Vertex AI Workbench インスタンス
- Vertex AI マネージド ノートブック(非推奨)
- Vertex AI ユーザー管理ノートブック(非推奨)
当記事では、Vertex AI Workbench インスタンス についてのみ解説していきます。
Vertex AI Workbench インスタンスとは
Vertex AI Workbench インスタンスは、JupyterLab で事前にパッケージ化され、TensorFlow や PyTorch などの深層学習フレームワークがプリインストールされた VM を利用できるサービスです。
Colab Enterprise と比較すると、インフラストラクチャとして使用する VM のカスタマイズ性が高いことが特徴です。
以下は、Vertex AI Workbench インスタンスの VM 作成時に設定することができる項目の抜粋です。
項目 | 説明 |
---|---|
リージョンとゾーン | Vertex AI Workbench の VM を配置する VPC とサブネット |
バージョン | Vertex AI Workbench インスタンスのバージョン |
マシンタイプ | VM のマシンタイプ |
GPU | 使用する GPU の種類と数(GPU が使用できるマシンタイプの場合に設定可能) |
アイドルシャットダウン | アイドルシャットダウンを有効化するかどうか アイドルシャットダウンまでの時間 |
ディスク | VM にアタッチする永続ディスクの種類と、ディスクの容量 |
ディスクの暗号化 | ディスクの暗号化に使用する鍵 Google 管理の暗号鍵(デフォルト)と顧客管理の暗号鍵のどちらかを選択 |
ネットワーク | VM を起動する VPC とサブネット |
パブリック IP の割り当て | VM にパブリック IP を紐付けるかどうか |
ユーザー | JupyterLab インターフェースにアクセスできるユーザー(後述) |
サービスアカウント | VM に紐付けるサービスアカウント |
環境の自動アップグレード | インスタンスのバージョンを自動でアップグレードするかどうか |
このほか、Shielded VM や Cloud Monitoring との連携、VM に付与するネットワークタグなど、様々な項目を設定することができます。
カーネルの追加
Jupyter ノートブックにおけるカーネルは、ノートブック内のコードの実行、結果の出力、状態の保持などを行う機能です。
Vertex AI Workbench では、カーネルの管理に conda が使用されています。conda 環境を新たに追加することで、新しいカーネルが JupyterLab のインターフェース上に表示されます。
JupyterLab からターミナルを開き、conda create
コマンドで conda 環境を追加して、任意の conda パッケージをインストールすることで、新しいカーネルを使用することができます。
例えば、以下のようなユースケースがあります。
- R や Apache Beam などの環境を使用する。
- Python や TensorFlow、PyTorch の古いバージョンを使用する。
R のカーネルを利用したい場合は、以下のように conda 環境を追加します(参考)。
$ conda create -n r $ conda activate r $ conda install -c r r-essentials $ DL_ANACONDA_ENV_HOME="${DL_ANACONDA_HOME}/envs/r>" $ python -m ipykernel install --prefix "${DL_ANACONDA_ENV_HOME}" --name r --display-name r $ rm -rf /opt/conda/envs/r/share/jupyter/kernels/python3
ノートブックのスケジュール実行
Vertex AI Workbench Executor を使用することで、ノートブック内のコードをスケジュール実行することができます。
スケジュールは、JupyterLab のインターフェースから設定します。ノートブックを1回だけ実行するか、定期的に実行するかを選択することができます。
ノートブックの実行は Vertex AI Training のジョブとして実行されるため、VM がシャットダウンされている場合でも、ノートブックはスケジュール通りに実行されます。
なお、VPC Service Controls を使用する場合、Vertex AI Workbench Executor の使用はサポートされていません。
アイドルシャットダウン
Colab Enterprise 同様、Vertex AI Workbench でも VM の非アクティブ時のアイドルシャットダウンを設定することができます。シャットダウンされている間は、コンピュートリソース(CPU、メモリ、GPU)の使用時間あたりの料金が発生しません。
また、Colab Enterprise と異なり、Vertex AI Workbench の VM は手動でシャットダウンすることもできます。
IAM によるアクセス制御
VM へのアクセス
VM へのアクセスは、プロジェクトもしくは VM 単位で設定することができます。VM の起動、停止、アップグレードなどの権限を Google アカウント、グループに付与することができます。
また、VM に対する完全なアクセス権を持っていたとしても、JupyterLab インターフェースを使用する権限は付与されません。
JupyterLab インターフェースに対するアクセス制御
JupyterLab インターフェースに対するアクセスは VM とは別に設定します。VM 作成時にアクセスモードとして以下の2種類から選択します(アクセスモードは変更不可)。
アクセスモード | JupyterLab インターフェースにアクセスできるユーザー |
---|---|
シングルユーザーのみ | VM 作成時に指定したユーザーアカウントのみ |
サービスアカウント | VM に紐付いたサービスアカウントに対する サービス アカウント ユーザー ロール(roles/iam.serviceAccountUser )をもつユーザー |
VPC Service Controls の使用
Colab Enterprise 同様、Vertex AI Workbench でも VPC Service Controls を使用することができます。
他の Google Cloud サービスとの統合
Cloud Storage
Cloud Storage インテグレーションにより、VM に Cloud Storage バケットをマウントし、JupyterLab インターフェースからバケット内のファイルにアクセスすることができます。
テキストファイルやノートブックファイルなど、JupyterLab と互換性のあるファイルは編集することが可能です。
BigQuery
ノートブック上から BigQuery のデータにアクセスするには、以下の方法があります。
%%bigquery
マジックコマンドを使用する。- BigQuery のクライアントライブラリを使用する。
- BigQuery インテグレーションを使用する。
BigQuery インテグレーションを使用すると、JupyterLab インターフェースから BigQuery に保存されているデータに対してクエリを実行することができます。
Dataproc
Dataproc は、Google Cloud マネージドの Apache Spark / Hadoop クラスタを利用してデータを処理することができるサービスです。
Vertex AI Workbench インスタンスのバージョン M113
以降の VM には、Dataproc JupyterLab プラグイン がプリインストールされています。これを使用することで、Apache Spark ノートブックを Dataproc クラスタ、もしくは Dataproc Serverless で実行することができます。
GitHub への接続
Vertex AI Workbench インスタンスの VM に GitHub リポジトリのクローンを作成することで、リポジトリにノートブックファイルを保存し、また他の環境からリポジトリ内のノートブックを使用することができます。
料金
Colab Enterprise 同様、Vertex AI Workbench でも、CPU、メモリ、GPU、ディスクの利用量に対して料金が発生します。こちらもリージョンやマシンタイプ、ディスクタイプによって料金単位が異なるため、詳細は公式ドキュメントを参照してください。
課金対象 | 説明 |
---|---|
CPU、メモリ | ランタイムの実行時間に応じて料金が発生します。 |
GPU | ランタイムで GPU を使用している場合、ランタイム実行時間に応じて料金が発生します。 |
ディスク容量 | ランタイムの実行状態に関わらず(停止していても)、確保したディスク容量ぶんの料金が発生します。 |
Vertex AI Workbench では、アイドルシャットダウン機能や手動での VM 停止により、ディスク容量以外の料金を節約することができます。
Colab Enterprise と Vertex AI Workbench の比較
Colab Enterprise と Vertex AI Workbench の違い
ここでは、Colab Enterprise と Vertex AI Workbench の違いや、選定の基準についてご紹介します。
Colab Enterprise と Vertex AI Workbench の関係は、Google App Engine(GAE)のスタンダード環境とフレキシブル環境の違いに似ています(GAE参考)。
どちらもマネージドなノートブック環境を提供するサービスですが、Colab Enterprise のほうが環境の管理負荷(運用コスト)が低く、その代わり Vertex AI Workbench のほうが環境を柔軟にカスタマイズすることができます。
以下の表は、これらのサービスで仕様が異なる点を簡単にまとめたものです。
比較の観点 | Colab Enterprise | Vertex AI Workbench |
---|---|---|
ユーザーによる環境(ランタイム / VM)の管理 | 不要 | 一部で必要(バージョンアップなど) |
環境のカスタマイズ | ランタイムテンプレートの範囲で可能 | 柔軟にカスタマイズ可能 |
手動シャットダウン | 不可 | 可 |
ディスクの暗号化に顧客管理の暗号鍵(CMEK)の使用 | 不可 | 可 |
GitHub への接続 | 不可 | 可 |
1つの環境を複数ユーザーで使用 | 不可 | 可 |
ノートブックの共同編集 | 可 | 不可 |
生成 AI によるコード補完の使用 | 可 | 不可 |
ノートブック内のコードから他の Google Cloud サービスの認証方法 | ユーザーのアカウントを使用 | VM のサービスアカウントを使用 |
選定基準
Colab Enterprise と Vertex AI Workbench のどちらを利用するか検討する際は、「まずは Colab Enterprise の機能が自分のユースケースに対して十分であるかどうかを確認する」「十分であれば Colab Enterprise を選択し、不十分であれば Vertex AI Workbench を選択する」という順番で検討するのがよいでしょう。
また、複数のユーザーがそれぞれで個別のノートブック実行環境を利用したい場合、同一の環境を用意するために、Colab Enterprise では同一のテンプレートからランタイムを作成するだけでよいですが、Vertex AI Workbench では Terraform(IaC)を用いるなどの工夫が必要です。この観点では Colab Enterprise のほうが利用しやすいと言えるでしょう。
料金については、Colab Enterprise、Vertex AI Workbench ともに、コンピュートリソース(CPU、メモリ、GPU)の使用時間、確保したディスク容量が課金単位となっており、同じような使い方をしていれば大きな差はありません。
ただし、ノートブックの実行に大量のコンピュートリソースが必要になるケースでは、1時間あたりの使用料金が大きくなるため、アイドルシャットダウンを待たずに手動で VM を停止することができる Vertex AI Workbench のほうが、運用によって料金を節約しやすいと言えるでしょう。
佐々木 駿太 (記事一覧)
G-gen最北端、北海道在住のクラウドソリューション部エンジニア
2022年6月にG-genにジョイン。Google Cloud Partner Top Engineer 2025 Fellowに選出。好きなGoogle CloudプロダクトはCloud Run。
趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。
Follow @sasashun0805