スナップショットを使用してデータをバックアップおよび復元する

このページでは、スナップショットを使用して Vertex AI Workbench インスタンスのデータをバックアップおよび復元する方法について説明します。

データをバックアップする

Vertex AI Workbench インスタンスのデータをバックアップするには、基盤となる Compute Engine 仮想マシン(VM)データディスクのスナップショットを取得します。

インスタンスのデータディスクのスナップショットを作成するには、 Google Cloud コンソール、Google Cloud CLI、または REST API を使用します。

コンソール

  1. Google Cloud コンソールで、[インスタンス] ページに移動します。

    [インスタンス] に移動

  2. インスタンス名をクリックします。

  3. [インスタンスの詳細] ページで [Compute Engine で表示] をクリックして、[VM の詳細] を開きます。

  4. [追加ディスク] セクションで、データディスクの名前をクリックします。データディスクの名前の形式は INSTANCE_NAME-data-workspace です。

  5. [スナップショットを作成] をクリックします。

  6. [スナップショットの作成] ダイアログで、[作成] をクリックします。

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: スナップショットを作成するプロジェクトの ID
  • SNAPSHOT_NAME: スナップショットの名前
  • SOURCE_PROJECT_ID: インスタンスが配置されているプロジェクトの ID
  • SOURCE_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

次のステップ