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

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

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

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

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

コンソール

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

    [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 メソッドを使用し、DataDiskresourcePolicies を設定します。

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

  • 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

既存のインスタンスのバックアップ スケジュールを更新するには、updateMaskgceSetup.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

既存のインスタンスからすべてのバックアップ スケジュールを削除するには、updateMaskgceSetup.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

次のステップ