スナップショットを使用してデータのバックアップと復元を行う
このページでは、スナップショットを使用して Gemini Enterprise Agent Platform Workbench インスタンスのデータのバックアップと復元を行う方法について説明します。
データをバックアップする
Agent Platform 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
バックアップのスケジュール設定
データディスクにリソース ポリシーを関連付けることで、ワークベンチ インスタンスに 1 つ以上のバックアップ スケジュールを構成できます。複数のリソース ポリシーを関連付けて、複数のバックアップ スケジュールを同時に有効にできます。
スナップショット スケジュールがアタッチされたインスタンスを作成するには、Google Cloud CLI または REST API を使用します。
gcloud
スナップショット スケジュールを使用してインスタンスを作成するには、gcloud workbench
instances create コマンドを使用し、--data-disk-resource-policies フラグを使用してリソース ポリシーを指定します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
INSTANCE_NAME: Agent Platform Workbench インスタンスの名前。先頭は英字で、それに続く最大 62 文字の英小文字、数字、ハイフン(-)で構成します。末尾にハイフンは使用できません。 PROJECT_ID: プロジェクト IDLOCATION: インスタンスを配置するゾーン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: プロジェクト IDLOCATION: インスタンスを配置するゾーン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: プロジェクト IDLOCATION: インスタンスが配置されているゾーンINSTANCE_ID: インスタンスの IDREGION: リソース ポリシーが配置されているリージョン-
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: インスタンスの IDREGION: リソース ポリシーが配置されているリージョン-
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: プロジェクト IDLOCATION: インスタンスが配置されているゾーン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