이 페이지에서는 스냅샷을 사용하여 Gemini Enterprise Agent Platform Workbench 인스턴스의 데이터를 백업하고 복원하는 방법을 설명합니다.
데이터 백업
Agent Platform Workbench 인스턴스에 데이터를 백업하려면 기본 Compute Engine 가상 머신 (VM) 데이터 디스크의 스냅샷을 찍으면 됩니다.
Cloud de Confiance 콘솔, Google Cloud CLI 또는 REST API를 사용하여 인스턴스의 데이터 디스크 스냅샷을 만들 수 있습니다.
콘솔
Cloud de Confiance 콘솔에서 인스턴스 페이지로 이동합니다.
인스턴스 이름을 클릭합니다.
인스턴스 세부정보 페이지에서 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 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.
다음 명령어를 실행합니다.
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 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.
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
백업 예약
데이터 디스크에 리소스 정책을 연결하여 워크벤치 인스턴스의 백업 일정을 하나 이상 구성할 수 있습니다. 여러 리소스 정책을 연결하여 동시에 여러 백업 일정을 활성화할 수 있습니다.
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