マネージド ノートブックから 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 を使用する必要があります。

始める前に

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

  8. まだ作成していない場合は、マネージド ノートブック インスタンスを作成します。

必要なロール

マネージド ノートブック インスタンスを 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: プロジェクト ID
  • LOCATION: マネージド ノートブック インスタンスが配置されているリージョン。すべてのリージョンのインスタンスを一覧表示するには - を使用します。

次のコマンドを実行します。

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: プロジェクト ID
  • LOCATION: マネージド ノートブック インスタンスが配置されているリージョン。すべてのリージョンのインスタンスを一覧表示するには - を使用します。

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 を使用して移行できます。

コンソール

  1. Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。

    [マネージド ノートブック] に移動

  2. [移行] ボタンをクリックします。[マネージド ノートブックをインスタンスに移行する] ページが開きます。

  3. オプションの指定が不要なインスタンスを移行するには、[準備完了] タブをクリックして、移行するインスタンスを選択し、[移行] をクリックします。

  4. オプションの指定が必要なインスタンスを移行するには、[入力待機中] タブをクリックし、移行するインスタンスを選択して、[移行] をクリックします。

    1. [移行に関する入力を指定する] ダイアログで、選択した新しい Vertex AI Workbench インスタンスに使用するネットワークとサービス アカウントを指定します。

    2. [送信] をクリックします。

  5. 移行が完了したら、[インスタンス] ページに移動して、新しい Vertex AI Workbench インスタンスを確認します。

    [インスタンス] に移動

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • LOCATION: マネージド ノートブック インスタンスが配置されているリージョン
  • RUNTIME_ID: マネージド ノートブック インスタンスの ID
  • NETWORK: 省略可。インスタンスの移行先となるネットワーク
  • 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: プロジェクト ID
  • LOCATION: マネージド ノートブック インスタンスが配置されているリージョン
  • RUNTIME_ID: マネージド ノートブック インスタンスの ID
  • NETWORK: 省略可。インスタンスの移行先となるネットワーク
  • 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 インスタンスに移行するには、次の操作を行います。

  1. マネージド ノートブック インスタンスと同じプロジェクトに Cloud Storage バケットを作成します。

  2. 同じプロジェクトで、データの移行先となる Vertex AI Workbench インスタンスを作成します。このインスタンスを作成するときに、次の操作を行います。

    • ターミナル アクセスを有効にします。
    • 必要に応じて、マシンタイプ、ネットワーク、その他の特性を指定します。
  3. マネージド ノートブック インスタンスの JupyterLab インターフェースで、[File] > [New] > [Terminal] を選択して、ターミナル ウィンドウを開きます。

  4. gcloud CLI を使用して、Cloud Storage バケットにユーザーデータをコピーします。次のコマンドの例では、インスタンスの /home/jupyter/ ディレクトリから Cloud Storage バケット内のディレクトリにすべてのファイルをコピーします。

    gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
    

    次のように置き換えます。

    • BUCKET_NAME: Cloud Storage バケットの名前
    • PATH: ファイルをコピーするディレクトリのパス。例: /copy/jupyter/
  5. 新しい Vertex AI Workbench インスタンスの JupyterLab インターフェースで、[File] > [New] > [Terminal] を選択して、ターミナル ウィンドウを開きます。

  6. gcloud CLI を使用して、新しいインスタンスにデータをコピーします。次のコマンドの例では、すべてのファイルを Cloud Storage ディレクトリから新しいインスタンスの /home/jupyter/ ディレクトリにコピーします。

    gcloud storage cp gs://BUCKET_NAMEPATH* /home/jupyter/
    

移行を確認する

移行後も、元のマネージド ノートブック インスタンスは以前と同様に機能します。元のインスタンスを削除する前に、移行が正常に完了したことを確認します。

マネージド ノートブック インスタンスを削除する

移行元のマネージド ノートブック インスタンスが不要な場合は、そのインスタンスを削除して、料金が発生しないようにします。

  1. Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。

    [マネージド ノートブック] に移動

  2. 削除するインスタンスを選択します。

  3. [削除] をクリックします(ウィンドウのサイズによっては、 オプション メニューに [削除] ボタンが表示される場合があります)。

  4. [削除] をクリックして確定します。

トラブルシューティング

移行の問題を診断して解決する方法については、Vertex AI Workbench のトラブルシューティングをご覧ください。

次のステップ