ユーザー管理ノートブックから 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 を使用する必要があります。

始める前に

  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. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Notebooks API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Notebooks API を有効にします。

    API を有効にする

  8. まだ作成していない場合は、ユーザー管理ノートブック インスタンスを作成します。

必要なロール

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

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

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

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

コンソール

  1. Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。

    [ユーザー管理のノートブック] に移動

  2. [移行] ボタンをクリックします。

  3. [ユーザー管理のノートブックをインスタンスに移行する] ページの [準備完了] タブで、移行するインスタンスを選択します。

  4. [移行] をクリックします。

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

    [インスタンス] に移動

gcloud

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

  • PROJECT_ID: プロジェクト ID
  • LOCATION: ユーザー管理ノートブック インスタンスが配置されているリージョン
  • INSTANCE_ID: ユーザー管理ノートブック インスタンスの ID
  • POST_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: プロジェクト ID
  • LOCATION: ユーザー管理ノートブック インスタンスが配置されているリージョン
  • INSTANCE_ID: ユーザー管理ノートブック インスタンスの ID
  • POST_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 インスタンスに移行するには、次の操作を行います。

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

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

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

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

    gsutil cp -R /home/jupyter/* gs://BUCKET_NAMEPATH
    

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

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

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

    gsutil cp gs://BUCKET_NAMEPATH* /home/jupyter/
    

移行を確認する

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

ユーザー管理ノートブック インスタンスを削除する

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

  1. Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。

    [ユーザー管理のノートブック] に移動

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

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

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

トラブルシューティング

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

次のステップ