스냅샷을 사용하여 데이터 백업 및 복원

이 페이지에서는 스냅샷을 사용하여 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 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.

다음 명령어를 실행합니다.

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: Vertex AI 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

백업 스케줄러 제한사항

프로젝트를 계획할 때는 예약된 백업의 다음 제한사항을 고려하세요.

  • 인스턴스를 만들 때 백업 일정을 추가해야 합니다. 백업 일정 없이 인스턴스를 만들면 기존 인스턴스를 백업하고 백업 일정이 있는 새 인스턴스를 만든 후 백업을 사용하여 인스턴스를 복원합니다.

  • 인스턴스의 백업 일정을 수정할 수 없습니다. 여기에는 백업 일정 추가, 업데이트, 삭제가 포함됩니다.

스냅샷에서 데이터 복원

스냅샷을 사용하여 인스턴스에서 데이터를 복원할 수 있습니다. 인스턴스에서 데이터를 복원할 때 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

다음 단계