スナップショットを使用してデータのバックアップと復元を行う

このページでは、スナップショットを使用して Gemini Enterprise Agent Platform Workbench インスタンスのデータのバックアップと復元を行う方法について説明します。

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

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

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

コンソール

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

    [Spanner インスタンス] に移動

  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

バックアップのスケジュール設定

ワークベンチ インスタンスに対して 1 つ以上のバックアップ スケジュールを構成するには、データディスクにリソース ポリシーを関連付けます。複数のリソース ポリシーを関連付けて、複数のバックアップ スケジュールを同時に有効にできます。

スナップショット スケジュールがアタッチされたインスタンスを作成するには、Google Cloud CLI または REST API を使用します。

gcloud

スナップショット スケジュールを使用してインスタンスを作成するには、gcloud workbench instances create コマンドを使用し、--data-disk-resource-policies フラグを使用してリソース ポリシーを指定します。

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

  • INSTANCE_NAME: Agent Platform Workbench インスタンスの名前。先頭は英字で、それに続く最大 62 文字の英小文字、数字、ハイフン(-)で構成します。末尾にハイフンは使用できません。
  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスを配置するゾーン
  • MACHINE_TYPE: インスタンスの VM のマシンタイプ(例: n2d-standard-2)
  • REGION: リソース ポリシーが配置されているリージョン
  • RESOURCE_POLICY: データディスクに適用するリソース ポリシー。

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

Linux、macOS、Cloud Shell

gcloud workbench instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --machine-type=MACHINE_TYPE \
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows(PowerShell)

gcloud workbench instances create INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --machine-type=MACHINE_TYPE `
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows(cmd.exe)

gcloud workbench instances create INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --machine-type=MACHINE_TYPE ^
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

REST

スナップショット スケジュールを使用してインスタンスを作成するには、projects.locations.instances.create メソッドを使用し、DataDisk で resourcePolicies を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスを配置するゾーン
  • MACHINE_TYPE: インスタンスの VM のマシンタイプ(例: n2d-standard-2)
  • REGION: リソース ポリシーが配置されているリージョン
  • RESOURCE_POLICY: データディスクに適用するリソース ポリシー。

HTTP メソッドと URL:

POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances

リクエストの本文(JSON):

{
  "gce_setup": {
    "machine_type": "MACHINE_TYPE",
    "data_disks": [
      {
        "resource_policies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY"
        ]
      }
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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"

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" | Select-Object -Expand Content

バックアップ スケジュールを更新する

Google Cloud CLI または REST API を使用して、既存のインスタンスのバックアップ スケジュールを追加、置換、更新できます。複数のスケジュールを設定するには、resourcePolicies リストに複数のリソースポリシーを含めます。

gcloud

既存のインスタンスのバックアップ スケジュールを更新するには、gcloud workbench instances update コマンドを使用し、--data-disk-resource-policies フラグを使用してリソース ポリシーを指定します。指定したリソース ポリシーのリストは、既存のリスト全体を置き換えます。

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

  • INSTANCE_NAME: Agent Platform Workbench インスタンスの名前
  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているゾーン
  • INSTANCE_ID: インスタンスの ID
  • REGION: リソース ポリシーが配置されているリージョン
  • RESOURCE_POLICY: データディスクに適用するリソース ポリシー。

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

Linux、macOS、Cloud Shell

gcloud workbench instances update INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows(PowerShell)

gcloud workbench instances update INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows(cmd.exe)

gcloud workbench instances update INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

REST

既存のインスタンスのバックアップ スケジュールを更新するには、updateMask を gceSetup.dataDisks.resourcePolicies に設定して、projects.locations.instances.patch メソッドに PATCH リクエストを送信します。指定されたリソース ポリシーのリストは、既存のリスト全体を置き換えます。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID。
  • LOCATION: インスタンスが配置されているゾーン
  • INSTANCE_ID: インスタンスの ID
  • REGION: リソース ポリシーが配置されているリージョン
  • RESOURCE_POLICY: データディスクに適用するリソース ポリシー。

HTTP メソッドと URL:

PATCH https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies

リクエストの本文(JSON):

{
  "gce_setup": {
    "data_disks": [
      {
        "resource_policies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY"
        ]
      }
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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?updateMask=gceSetup.dataDisks.resourcePolicies"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=gceSetup.dataDisks.resourcePolicies" | Select-Object -Expand Content

すべてのバックアップ スケジュールを削除する

Google Cloud CLI または REST API を使用してリソース ポリシーを空のリストに設定すると、既存のインスタンスからすべてのバックアップ スケジュールを削除できます。

gcloud

既存のインスタンスからすべてのバックアップ スケジュールを削除するには、gcloud workbench instances update コマンドを使用し、--data-disk-resource-policies フラグに空の値を渡します。これにより、インスタンスからアクティブなスケジュールがすべて削除されます。

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

  • INSTANCE_NAME: Agent Platform Workbench インスタンスの名前
  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているゾーン
  • INSTANCE_ID: インスタンスの ID

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

Linux、macOS、Cloud Shell

gcloud workbench instances update INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --data-disk-resource-policies=

Windows(PowerShell)

gcloud workbench instances update INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --data-disk-resource-policies=

Windows(cmd.exe)

gcloud workbench instances update INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --data-disk-resource-policies=

REST

既存のインスタンスからすべてのバックアップ スケジュールを削除するには、updateMask を gceSetup.dataDisks.resourcePolicies に設定し、resourcePolicies リストを空にして、projects.locations.instances.patch メソッドに PATCH リクエストを送信します。これにより、インスタンスからアクティブなスケジュールがすべて削除されます。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID。
  • LOCATION: インスタンスが配置されているゾーン
  • INSTANCE_ID: インスタンスの ID

HTTP メソッドと URL:

PATCH https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies

リクエストの本文(JSON):

{
  "gce_setup": {
    "data_disks": [
      {
        "resource_policies": []
      }
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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?updateMask=gceSetup.dataDisks.resourcePolicies"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=gceSetup.dataDisks.resourcePolicies" | Select-Object -Expand Content

スナップショットからデータを復元する

スナップショットを使用して、インスタンスのデータを復元できます。インスタンスのデータを復元すると、Agent Platform 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

次のステップ