ユーザー管理ノートブックから Vertex AI Workbench インスタンスに移行する
このページでは、ユーザー管理ノートブック インスタンスから Vertex AI Workbench インスタンスに移行する方法について説明します。移行には Vertex AI Workbench 移行ツールを使用します。また、インスタンスのデータとファイルを手動で移行することもできます。
移行ツールの概要
Vertex AI Workbench には、ユーザー管理ノートブック インスタンスから Vertex AI Workbench インスタンスに移行するための移行ツールが用意されています。
移行ツールは、移行するユーザー管理ノートブック インスタンスと同様の構成で Vertex AI Workbench インスタンスを作成します。たとえば、同じまたは類似したマシンタイプ、ネットワーク構成、アイドル シャットダウン設定、その他の仕様を持つインスタンスを作成します。その後、ユーザー管理ノートブック インスタンスのデータディスク上のファイルを Vertex AI Workbench インスタンスにコピーします。
Vertex AI Workbench では、ユーザー管理ノートブック インスタンスの削除や変更は行われません。移行後も引き続き使用できます。ユーザー管理ノートブック インスタンスが不要になった場合は、そのインスタンスを削除して、追加料金が発生しないようにしてください。
課金
ユーザー管理ノートブック インスタンスで Extreme Persistent Disk が使用されている場合、移行により I/O オペレーションに対する料金が発生します。ディスク料金の Persistent Disk と Hyperdisk のセクションで「Extreme でプロビジョニングされた IOPS」をご覧ください。
移行後もユーザー管理ノートブック インスタンスは存在し、以前と同様に料金が発生します。ユーザー管理ノートブック インスタンスが不要になった場合は、そのインスタンスを削除して、追加料金が発生しないようにしてください。
移行ツールのデフォルトの動作
Vertex AI Workbench 移行ツールは、ユーザー管理ノートブック インスタンスを一致する仕様で Vertex AI Workbench インスタンスに移行しようとします。ユーザー管理ノートブック インスタンスの仕様が Vertex AI Workbench インスタンスで利用できない場合、Vertex AI Workbench は可能な限りデフォルトの仕様を使用します。移行ツールでユーザー管理ノートブック インスタンスの仕様を移行できない場合、インスタンスは移行されません。
次の表に、移行ツールのデフォルトの移行動作の一部を示します。
カテゴリ | ユーザー管理ノートブックの仕様 | 移行結果 |
---|---|---|
OS | すべての Ubuntu バージョン | Debian 11 |
すべての Debian バージョン | Debian 11 | |
フレームワーク | すべての CUDA バージョン | CUDA 11.3 |
すべての Python バージョン | Python 3.10 | |
すべての PyTorch バージョン | PyTorch 1.13 | |
すべての TensorFlow バージョン | TensorFlow 2.11 | |
すべての R バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
すべてのローカル PySpark バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
すべての XGBoost バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
すべての Kaggle Python バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
すべての Jax バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
すべての Apache Beam バージョン | 移行されません。conda 環境を追加するをご覧ください。 | |
マシンタイプ | サポートされているマシンタイプ | 同一のマシンタイプ |
サポートされていないマシンタイプ | e2-standard-4 |
|
アクセラレータ | サポートされているアクセラレータ | 同一のアクセラレータ |
サポートされていないアクセラレータ | アクセラレータは移行されません。 | |
設定 | アイドル状態でのシャットダウン | 移行されます |
ゴミ箱に移動 | 移行されます | |
nbconvert |
移行されます | |
ファイルのダウンロード | 移行されます | |
ターミナル アクセス | 移行されます | |
その他 | Identity and Access Management の権限 | 移行されます。ただし、Vertex AI Workbench インスタンスを使用するために新しい権限が必要になる場合があります。 |
アクセスモード | 移行されます | |
ネットワーク | 移行されます | |
起動後のスクリプト |
Google Cloud コンソールを使用する場合、起動後のスクリプトなしでインスタンスが移行されます。インスタントと起動後のスクリプトを移行する場合は、Google Cloud CLI または REST API を使用して PostStartupScriptOption オプションを指定します。 |
|
Dataproc Hub | 移行されません。手動で移行する必要があります。 |
起動後のスクリプトの指定
起動後のスクリプトを使用するユーザー管理ノートブック インスタンスは、PostStartupScriptOption
オプションが指定されているインスタンスに移行する必要があります。このオプションを使用して、新しい Vertex AI Workbench インスタンスで起動後のスクリプトをスキップするか再実行するかを指定します。
Google Cloud コンソールでは、PostStartupScriptOption
オプションの指定はできません。ユーザー管理ノートブック インスタンスを移行するときに PostStartupScriptOption
オプションを指定するには、Google Cloud CLI または REST API を使用する必要があります。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
- まだ作成していない場合は、ユーザー管理ノートブック インスタンスを作成します。
必要なロール
ユーザー管理ノートブック インスタンスを Vertex AI Workbench インスタンスに移行するために必要な権限がユーザー アカウントに付与されるようにするには、プロジェクトに対する Notebooks 実行者(roles/notebooks.runner
)の IAM ロールをユーザー アカウントに付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、ユーザー管理ノートブック インスタンスを Vertex AI Workbench インスタンスに移行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
ユーザー管理ノートブック インスタンスを Vertex AI Workbench インスタンスに移行するには、次の権限が必要です。
-
notebooks.instances.create
-
notebooks.instances.get
管理者は、カスタムロールや他の事前定義ロールを使用して、これらの権限をユーザー アカウントに付与することもできます。
移行前チェック
移行する前に、インスタンスを一覧表示し、移行の警告やエラーの出力を確認して、ユーザー管理ノートブック インスタンスが移行に適しているかどうか確認します。
インスタンスを一覧表示する
まだ移行されていないユーザー管理ノートブック インスタンスを一覧表示するには、フィルタ migrated:false
を指定して projects.locations.instances.list
メソッドを使用します。gcloud CLI または REST API を使用して一覧表示できます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: ユーザー管理ノートブック インスタンスが配置されているリージョン。すべてのリージョンのインスタンスを一覧表示するには-
を使用します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud notebooks instances list --project=PROJECT_ID \ --location=LOCATION --filter=migrated:false --format=default
Windows(PowerShell)
gcloud notebooks instances list --project=PROJECT_ID ` --location=LOCATION --filter=migrated:false --format=default
Windows(cmd.exe)
gcloud notebooks instances list --project=PROJECT_ID ^ --location=LOCATION --filter=migrated:false --format=default
REST
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: ユーザー管理ノートブック インスタンスが配置されているリージョン。すべてのリージョンのインスタンスを一覧表示するには-
を使用します。
HTTP メソッドと URL:
GET https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false" | Select-Object -Expand Content
出力に警告やエラーがないか確認する
移行の警告やエラーが検出された場合は、projects.locations.instances.list
メソッドの出力にこの情報が含まれます。
ユーザー管理ノートブック インスタンスの構成に含まれているコンポーネントが、Vertex AI Workbench インスタンス内の同じ仕様に移行されない場合、警告が表示されます。たとえば、ユーザー管理ノートブック インスタンスがサポート対象外のアクセラレータを使用している場合、出力に警告が表示されます。この場合、インスタンスはアクセラレータなしで移行されます。アクセラレータは移行後に接続できます。出力の警告を確認し、移行ツールのデフォルトの動作を考慮して、移行ツールが移行に適しているかどうかを評価します。
出力に 1 つ以上のエラーが表示される場合は、移行ツールではユーザー管理ノートブック インスタンスを移行できないことを意味します。インスタンスを手動で移行する必要があります。
移行の警告とエラーの詳細については、InstanceMigrationEligibility
ドキュメントの警告とエラーをご覧ください。
移行ツールを使用して移行する
ユーザー管理ノートブック インスタンスは、Google Cloud コンソール、gcloud CLI、または REST API を使用して移行できます。
コンソール
Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。
[移行] ボタンをクリックします。
[ユーザー管理のノートブックをインスタンスに移行する] ページの [準備完了] タブで、移行するインスタンスを選択します。
[移行] をクリックします。
移行が完了したら、[インスタンス] ページに移動して、新しい Vertex AI Workbench インスタンスを確認します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: ユーザー管理ノートブック インスタンスが配置されているリージョンINSTANCE_ID
: ユーザー管理ノートブック インスタンスの IDPOST_STARTUP_SCRIPT_OPTION
: 省略可。起動後のスクリプトのオプションのいずれか
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud notebooks instances migrate RUNTIME_ID \ --project=PROJECT_ID \ --location=LOCATION \ --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
Windows(PowerShell)
gcloud notebooks instances migrate RUNTIME_ID ` --project=PROJECT_ID ` --location=LOCATION ` --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
Windows(cmd.exe)
gcloud notebooks instances migrate RUNTIME_ID ^ --project=PROJECT_ID ^ --location=LOCATION ^ --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
REST
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: ユーザー管理ノートブック インスタンスが配置されているリージョンINSTANCE_ID
: ユーザー管理ノートブック インスタンスの IDPOST_STARTUP_SCRIPT_OPTION
: 省略可。起動後のスクリプトのオプションのいずれか
HTTP メソッドと URL:
POST https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate
リクエストの本文(JSON):
{ "postStartupScriptOption": (POST_STARTUP_SCRIPT_OPTION) }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate" | Select-Object -Expand Content
手動で移行する
インスタンスを Vertex AI Workbench インスタンスに手動で移行するには、次の方法を検討してください。
Cloud Storage とターミナルを使用する: データとファイルを Cloud Storage にコピーしてから、ターミナルを使用して別のインスタンスにデータとファイルをコピーします。
GitHub を使用する: JupyterLab 用の Git 拡張機能を使用してデータとファイルを GitHub リポジトリにコピーします。
このガイドでは、Cloud Storage とターミナルを使用してデータとファイルを移行する方法について説明します。
要件
ユーザー管理ノートブック インスタンスへのターミナル アクセスが必要です。ターミナル アクセスは、インスタンスを作成するときに手動で設定します。インスタンス作成後にターミナル アクセスの設定を変更することはできません。
Cloud Storage とターミナルを使用して手動で移行する
Cloud Storage とターミナルを使用して、データとファイルを新しい Vertex AI Workbench インスタンスに移行するには、次の操作を行います。
ユーザー管理ノートブック インスタンスと同じプロジェクトに Cloud Storage バケットを作成します。
同じプロジェクトで、データの移行先となる Vertex AI Workbench インスタンスを作成します。このインスタンスを作成するときに、次の操作を行います。
- ターミナル アクセスを有効にします。
- 必要に応じて、マシンタイプ、ネットワーク、その他の特性を指定します。
ユーザー管理のノートブック インスタンスの JupyterLab インターフェースで、[File] > [New] > [Terminal] を選択して、ターミナル ウィンドウを開きます。
gcloud CLI を使用して、Cloud Storage バケットにユーザーデータをコピーします。次のコマンドの例では、インスタンスの
/home/jupyter/
ディレクトリから Cloud Storage バケット内のディレクトリにすべてのファイルをコピーします。gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
次のように置き換えます。
BUCKET_NAME
: Cloud Storage バケットの名前PATH
: ファイルをコピーするディレクトリのパス。例:/copy/jupyter/
新しい Vertex AI Workbench インスタンスの JupyterLab インターフェースで、[File] > [New] > [Terminal] を選択して、ターミナル ウィンドウを開きます。
gcloud CLI を使用して、新しいインスタンスにデータをコピーします。次のコマンドの例では、すべてのファイルを Cloud Storage ディレクトリから新しいインスタンスの
/home/jupyter/
ディレクトリにコピーします。gcloud storage cp gs://BUCKET_NAMEPATH* /home/jupyter/
移行を確認する
移行後も、元のユーザー管理ノートブック インスタンスは以前と同様に機能します。元のインスタンスを削除する前に、移行が正常に完了したことを確認します。
ユーザー管理ノートブック インスタンスを削除する
移行元のユーザー管理ノートブック インスタンスが不要な場合は、そのインスタンスを削除して、料金が発生しないようにします。
Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。
削除するインスタンスを選択します。
[
削除] をクリックします(ウィンドウのサイズによっては、 オプション メニューに [削除] ボタンが表示される場合があります)。[削除] をクリックして確定します。
トラブルシューティング
移行の問題を診断して解決する方法については、Vertex AI Workbench のトラブルシューティングをご覧ください。
次のステップ
- Vertex AI Workbench について学習する。