スナップショットを使用してデータのバックアップと復元を行う
このページでは、スナップショットを使用して Vertex AI Workbench インスタンスのデータのバックアップと復元を行う方法について説明します。
データをバックアップする
Vertex AI Workbench インスタンスのデータをバックアップするには、基盤となる Compute Engine 仮想マシン(VM)データディスクのスナップショットを取得します。
インスタンスのデータディスクのスナップショットを作成するには、 Google Cloud コンソール、Google Cloud CLI、または REST API を使用します。
コンソール
Google Cloud コンソールで [インスタンス] ページに移動します。
インスタンス名をクリックします。
[インスタンスの詳細] ページで [Compute Engine で表示] をクリックして、[VM の詳細] を開きます。
[追加ディスク] セクションで、データディスクの名前をクリックします。データディスクの名前の形式は
INSTANCE_NAME-data-workspaceです。[スナップショットを作成] をクリックします。
[スナップショットの作成] ダイアログで、[作成] をクリックします。
Compute Engine がデータディスクのスナップショットを作成します。
gcloud
インスタンスのデータディスクのスナップショットを作成するには、gcloud compute snapshots create コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
SNAPSHOT_NAME: スナップショットの名前SOURCE_ZONE: インスタンスが配置されているゾーンINSTANCE_NAME: インスタンスの名前-
STORAGE_LOCATION: スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンです。保存場所は 1 つだけ指定できます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=INSTANCE_NAME-data-workspace \ --storage-location=STORAGE_LOCATION
Windows(PowerShell)
gcloud compute snapshots create SNAPSHOT_NAME ` --source-disk-zone=SOURCE_ZONE ` --source-disk=INSTANCE_NAME-data-workspace ` --storage-location=STORAGE_LOCATION
Windows(cmd.exe)
gcloud compute snapshots create SNAPSHOT_NAME ^ --source-disk-zone=SOURCE_ZONE ^ --source-disk=INSTANCE_NAME-data-workspace ^ --storage-location=STORAGE_LOCATION
REST
インスタンスのデータディスクのスナップショットを作成するには、Compute Engine の snapshots.insert メソッドに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
DESTINATION_PROJECT_ID: スナップショットを作成するプロジェクトの IDSNAPSHOT_NAME: スナップショットの名前SOURCE_PROJECT_ID: インスタンスが配置されているプロジェクトの IDSOURCE_ZONE: インスタンスが配置されているゾーンINSTANCE_NAME: インスタンスの名前-
STORAGE_LOCATION: スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンです。保存場所は 1 つだけ指定できます。
HTTP メソッドと URL:
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
リクエストの本文(JSON):
{
"name": "SNAPSHOT_NAME",
"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/INSTANCE_NAME-data-workspace",
"storageLocations": [
"STORAGE_LOCATION"
],
}
リクエストを送信するには、次のいずれかのオプションを選択します。
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://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots"
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://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots" | Select-Object -Expand Content
スナップショットからデータを復元する
スナップショットを使用して、インスタンスのデータを復元できます。インスタンスのデータを復元すると、Vertex AI Workbench はインスタンスにアタッチされている既存のデータディスクを削除し、スナップショットに基づいて新しいデータディスクを作成して、新しいデータディスクをインスタンスにアタッチします。
インスタンスのデータを復元するには、gcloud CLI または REST API を使用します。
gcloud
インスタンスのデータを復元するには、gcloud workbench instances restore コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
INSTANCE_NAME: インスタンスの名前LOCATION: インスタンスが配置されているゾーンSNAPSHOT_PROJECT_NAME: スナップショットが配置されているプロジェクト名SNAPSHOT_NAME: 復元するスナップショットの名前
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud workbench instances restore INSTANCE_NAME \ --location=LOCATION \ --snapshot-project=SNAPSHOT_PROJECT_NAME \ --snapshot=SNAPSHOT_NAME
Windows(PowerShell)
gcloud workbench instances restore INSTANCE_NAME ` --location=LOCATION ` --snapshot-project=SNAPSHOT_PROJECT_NAME ` --snapshot=SNAPSHOT_NAME
Windows(cmd.exe)
gcloud workbench instances restore INSTANCE_NAME ^ --location=LOCATION ^ --snapshot-project=SNAPSHOT_PROJECT_NAME ^ --snapshot=SNAPSHOT_NAME
REST
インスタンスのデータを復元するには、projects.locations.instances.restore メソッドに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際のプロジェクト ID。LOCATION: インスタンスが配置されているゾーンINSTANCE_ID: インスタンスの ID-
SNAPSHOT_ID: 復元するスナップショットの ID。スナップショットの ID を取得するには、Compute Engine の snapshots.get メソッドを使用します。 SNAPSHOT_PROJECT_ID: スナップショットのプロジェクト ID
HTTP メソッドと URL:
POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore
リクエストの本文(JSON):
{
"snapshot": {
{
"snapshotId": SNAPSHOT_ID,
"projectId": SNAPSHOT_PROJECT_ID
}
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
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/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore"
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/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore" | Select-Object -Expand Content