Colab EnterpriseとVertex AI Workbenchを徹底解説

記事タイトルとURLをコピーする

G-gen の佐々木です。当記事では、Google Cloud でマネージドな Jupyter ノートブック環境を利用できる、2種類のノートブックソリューション(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 と連携してノートブック、データを保存できる。

Colabotatory はブラウザで Jupyter ノートブック環境を利用できる

Google Cloud のノートブックソリューション

Colab EnterpriseVertex 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 の詳細は以下の記事を参照してください。

blog.g-gen.co.jp

サービス境界内で Colab Enterprise を使用すると、ランタイムはサービス境界の影響を受けます。

ランタイムに対するアクセス制御に IAM 以外の要素(IP アドレス範囲など)を設定することができ、またノートブックからアクセスできる Google Cloud サービスを制限することができます。

生成 AI によるコード補完

Colab Enterprise のノートブックでは、Google の生成 AI モデルである Gemini を使用したコード補完機能がサポートされています。

たとえば、以下のスクリーンショットのように、ノートブックのセルに「import p」と入力すると、コード補完によって「import pandas as pd」が提案される場合があります。この状態で Tab キーを押すと、提案されたコードがセルに自動で入力されます。

Gemini によるコード補完

また、セル内のコメントでプロンプトを入力すると、プロンプトの内容に応じたコードが提案されます。

プロンプトを使用したコード補完

BigQuery Studio との統合

Colab Enterprise は、BigQuery Studio と UI が統合されています。BigQuery の UI 上でノートブックを開き、Colab Enterprise のランタイムを使用してノートブックを実行することができます。

これにより、BigQuery のデータをノートブック上で分析したい場合など、BigQuery と Colab Enterprise の UI を行き来する必要がなくなります。

BigQuery Studio からランタイムを使用してノートブックを実行する

また、ノートブックは BigQuery DataFrames が組み込みでサポートされているため、BigQuery にあるデータを pandas、scikit-learn ライクに操作する処理を、BigQuery のコンピュートリソースで実行することができます。

BigQuery DataFrames の詳細については、以下の記事をご一読ください。

blog.g-gen.co.jp

料金

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 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 VMCloud Monitoring との連携、VM に付与するネットワークタグなど、様々な項目を設定することができます。

カーネルの追加

Jupyter ノートブックにおけるカーネルは、ノートブック内のコードの実行、結果の出力、状態の保持などを行う機能です。

Vertex AI Workbench では、カーネルの管理に conda が使用されています。conda 環境を新たに追加することで、新しいカーネルが JupyterLab のインターフェース上に表示されます。

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
  

R 環境が JupyterLab の Launcher 上に表示される

ノートブックのスケジュール実行

Vertex AI Workbench Executor を使用することで、ノートブック内のコードをスケジュール実行することができます。

スケジュールは、JupyterLab のインターフェースから設定します。ノートブックを1回だけ実行するか、定期的に実行するかを選択することができます。

Vertex AI Workbench Executor を使用してノートブックをスケジュール実行する

ノートブックの実行は Vertex AI Training のジョブとして実行されるため、VM がシャットダウンされている場合でも、ノートブックはスケジュール通りに実行されます。

なお、VPC Service Controls を使用する場合、Vertex AI Workbench Executor の使用はサポートされていません。

アイドルシャットダウン

Colab Enterprise 同様、Vertex AI Workbench でも VM の非アクティブ時のアイドルシャットダウンを設定することができます。シャットダウンされている間は、コンピュートリソース(CPU、メモリ、GPU)の使用時間あたりの料金が発生しません。

アイドルシャットダウンにより VM が停止している

また、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 に保存されているデータに対してクエリを実行することができます。

BigQuery インテグレーションを使用して 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 リポジトリのクローンを作成することで、リポジトリにノートブックファイルを保存し、また他の環境からリポジトリ内のノートブックを使用することができます。

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 2024に選出。好きなGoogle CloudプロダクトはCloud Run。

趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。