マネージド ノートブックから 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 インスタンスを使用するために新しい権限が必要になる場合があります。 |
アクセスモード |
移行されます。シングル ユーザーの JupyterLab アクセスモードを使用するインスタンスでは、serviceAccount オプションを指定する必要があります。 |
|
ネットワーク | 移行されます。Google マネージド Virtual Private Cloud を使用するインスタンスでは、network オプションと subnet オプションを指定する必要があります。 |
|
起動後のスクリプト |
Google Cloud コンソールを使用する場合、起動後のスクリプトなしでインスタンスが移行されます。インスタントと起動後のスクリプトを移行する場合は、Google Cloud CLI または REST API を使用して PostStartupScriptOption オプションを指定します。 |
|
Dataproc Hub | 移行されません。手動で移行する必要があります。 |
オプションの指定
以降のセクションでは、マネージド ノートブック インスタンスを Vertex AI Workbench インスタンスに移行する際にオプションを指定する必要がある場合について説明します。
シングル ユーザー アクセスモードを使用するインスタンス
シングル ユーザー アクセスモードを使用するマネージド ノートブック インスタンスは、serviceAccount
オプションが指定されたインスタンスに移行する必要があります。移行する Vertex AI Workbench インスタンスは、JupyterLab へのアクセスを 1 人のユーザーに制限しますが、Google Cloud サービスや API の操作にはサービス アカウントを使用します。
Google マネージド VPC を使用するインスタンス
Google マネージド VPC を使用するマネージド ノートブック インスタンスは、network
オプションと subnet
オプションが指定されているインスタンスに移行する必要があります。Google マネージド VPC を使用するオプションは Vertex AI Workbench インスタンスでサポートされていないため、別のネットワークを指定する必要があります。
起動後のスクリプトを使用するインスタンス
起動後のスクリプトを使用するマネージド ノートブック インスタンスは、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.runtimes.create
-
notebooks.runtimes.get
管理者は、ユーザー アカウントに、カスタムロールや他の事前定義ロールを付与することもできます。
移行前チェック
移行する前に、インスタンスを一覧表示し、移行の警告やエラーの出力を確認して、マネージド ノートブック インスタンスが移行に適しているかどうか確認します。
インスタンスを一覧表示する
まだ移行されていないマネージド ノートブック インスタンスを一覧表示するには、フィルタ migrated:false
を指定して projects.locations.runtimes.list
メソッドを使用します。gcloud CLI または REST API を使用して一覧表示できます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: マネージド ノートブック インスタンスが配置されているリージョン。すべてのリージョンのインスタンスを一覧表示するには-
を使用します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud notebooks runtimes list --project=PROJECT_ID \ --location=LOCATION --filter=migrated:false --format=default
Windows(PowerShell)
gcloud notebooks runtimes list --project=PROJECT_ID ` --location=LOCATION --filter=migrated:false --format=default
Windows(cmd.exe)
gcloud notebooks runtimes 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/runtimes?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/runtimes?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/runtimes?filter=migrated:false" | Select-Object -Expand Content
出力に警告やエラーがないか確認する
移行の警告やエラーが検出された場合は、projects.locations.runtimes.list
メソッドの出力にこの情報が含まれます。
マネージド ノートブック インスタンスの構成に含まれているコンポーネントが、Vertex AI Workbench インスタンス内の同じ仕様に移行されない場合、警告が表示されます。たとえば、マネージド ノートブック インスタンスがサポート対象外のアクセラレータを使用している場合、出力に警告が表示されます。この場合、インスタンスはアクセラレータなしで移行されます。アクセラレータは移行後に接続できます。出力の警告を確認し、移行ツールのデフォルトの動作を考慮して、移行ツールが移行に適しているかどうかを評価します。
出力に 1 つ以上のエラーが表示される場合は、移行ツールではマネージド ノートブック インスタンスを移行できないことを意味します。インスタンスを手動で移行する必要があります。
移行の警告とエラーの詳細については、RuntimeMigrationEligibility
ドキュメントの警告とエラーをご覧ください。
移行ツールを使用して移行する
マネージド ノートブック インスタンスは、Google Cloud コンソール、gcloud CLI、または REST API を使用して移行できます。
コンソール
Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。
[移行] ボタンをクリックします。[マネージド ノートブックをインスタンスに移行する] ページが開きます。
オプションの指定が不要なインスタンスを移行するには、[準備完了] タブをクリックして、移行するインスタンスを選択し、[移行] をクリックします。
オプションの指定が必要なインスタンスを移行するには、[入力待機中] タブをクリックし、移行するインスタンスを選択して、[移行] をクリックします。
[移行に関する入力を指定する] ダイアログで、選択した新しい Vertex AI Workbench インスタンスに使用するネットワークとサービス アカウントを指定します。
[送信] をクリックします。
移行が完了したら、[インスタンス] ページに移動して、新しい Vertex AI Workbench インスタンスを確認します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: マネージド ノートブック インスタンスが配置されているリージョンRUNTIME_ID
: マネージド ノートブック インスタンスの IDNETWORK
: 省略可。インスタンスの移行先となるネットワークSUBNET
: 省略可。インスタンスの移行先となるサブネットSERVICE_ACCOUNT
: 省略可: 使用するサービス アカウントのメールアドレスPOST_STARTUP_SCRIPT_OPTION
: 省略可。起動後のスクリプトのオプションのいずれか
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud notebooks runtimes migrate RUNTIME_ID \ --project=PROJECT_ID \ --location=LOCATION \ --network=NETWORK \ --subnet=SUBNET \ --service-account=SERVICE_ACCOUNT \ --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
Windows(PowerShell)
gcloud notebooks runtimes migrate RUNTIME_ID ` --project=PROJECT_ID ` --location=LOCATION ` --network=NETWORK ` --subnet=SUBNET ` --service-account=SERVICE_ACCOUNT ` --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
Windows(cmd.exe)
gcloud notebooks runtimes migrate RUNTIME_ID ^ --project=PROJECT_ID ^ --location=LOCATION ^ --network=NETWORK ^ --subnet=SUBNET ^ --service-account=SERVICE_ACCOUNT ^ --post-startup-script-option=POST_STARTUP_SCRIPT_OPTION
REST
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: プロジェクト IDLOCATION
: マネージド ノートブック インスタンスが配置されているリージョンRUNTIME_ID
: マネージド ノートブック インスタンスの IDNETWORK
: 省略可。インスタンスの移行先となるネットワークSUBNET
: 省略可。インスタンスの移行先となるサブネットSERVICE_ACCOUNT
: 省略可: 使用するサービス アカウントのメールアドレスPOST_STARTUP_SCRIPT_OPTION
: 省略可。起動後のスクリプトのオプションのいずれか
HTTP メソッドと URL:
POST https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes/RUNTIME_ID:migrate
リクエストの本文(JSON):
{ "network": NETWORK, "subnet": SUBNET, "serviceAccount": SERVICE_ACCOUNT_EMAIL_ADDRESS, "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/runtimes/RUNTIME_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/runtimes/RUNTIME_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 について学習する。