영구 디스크 스냅샷 복원 및 삭제

스냅샷을 사용해 영구 디스크의 데이터를 증분 방식으로 백업할 수 있습니다. 스냅샷을 만드는 방법은 영구 디스크 스냅샷 만들기를 참조하세요. 스냅샷을 만들고 나면 스냅샷을 사용해 부팅 또는 비부팅 영구 디스크를 특정 시점 스냅샷에서 캡처한 이전 상태로 복원할 수 있습니다.

스냅샷 예약을 사용해 데이터를 백업하는 방법이 워크로드를 관리하여 데이터 손실의 영향을 최소화하는 데 효과적인 권장사항입니다.

더 이상 필요 없는 스냅샷은 삭제해 스토리지 비용을 절감할 수 있습니다.

프로젝트에서 사용할 수 있는 스냅샷 목록을 보려면 gcloud compute snapshots list 명령어를 사용합니다.

gcloud compute snapshots list

특정 스냅샷의 정보를 나열하려면 gcloud compute snapshots describe 명령어를 사용합니다.

gcloud compute snapshots describe [SNAPSHOT_NAME]

여기서 [SNAPSHOT_NAME]은 설명을 원하는 스냅샷의 이름입니다.

시작하기 전에

스냅샷에서 새 VM 인스턴스 부팅 디스크 만들기

중단이 발생할 경우 하나 이상의 영구 디스크 스냅샷을 새 인스턴스의 새 영구 디스크에 복원하여 데이터를 빠르게 복구할 수 있습니다. 인스턴스를 만들 때 부팅 디스크 스냅샷을 부팅 디스크에 복원하거나, 비부팅 스냅샷을 새 추가 디스크에 복원하거나, 두 가지 모두를 수행할 수 있습니다.

자세한 내용은 영구 디스크 스냅샷에서 인스턴스 만들기를 참조하세요.

비부팅 스냅샷에서 새 영구 디스크 만들기

비부팅 영구 디스크의 스냅샷을 새 영구 디스크에 복원할 수 있습니다. 새 영구 디스크의 크기는 최소한 스냅샷의 원래 소스 디스크와 같아야 합니다. 스냅샷의 원래 소스 디스크보다 큰 영구 디스크를 만드는 경우에는 파티션이 추가 공간을 사용할 수 있도록 인스턴스에서 몇 가지 추가 명령어를 실행해야 합니다.

운영체제 및 파일 시스템 유형에 따라서는 다른 파일 시스템 크기 조절 도구를 사용해야 할 수도 있습니다. 자세한 내용은 사용 중인 운영 체제 설명서를 참조하세요.

비부팅 영구 디스크의 스냅샷을 기존 인스턴스의 새 디스크에 복원하는 방법은 다음과 같습니다.

Console

  1. Google Cloud Platform Console의 스냅샷 페이지로 이동합니다.

    스냅샷 페이지로 이동

  2. 복원할 스냅샷의 이름을 확인합니다.
  3. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  4. 비부팅 디스크를 복원할 인스턴스의 이름을 클릭합니다.
  5. 인스턴스 세부정보 페이지의 상단에서 수정을 클릭합니다.
  6. 추가 디스크에서 새 디스크 추가를 클릭합니다.
  7. 다음 구성 매개변수를 지정합니다.
    • 디스크의 이름
    • 디스크의 유형. 스냅샷에 사용된 것과 일치하는 유형을 선택해야 합니다.
  8. 소스 유형에서 스냅샷을 클릭합니다.
  9. 복원할 스냅샷의 이름을 선택합니다.
  10. (선택사항) 디스크 크기를 GB 단위로 선택합니다. 이 값은 스냅샷의 원래 소스 디스크보다 크거나 같아야 합니다. 이 값을 지정하지 않으면 새 디스크가 스냅샷의 원래 소스 디스크와 동일한 크기가 됩니다.
  11. 완료를 클릭하여 디스크를 만듭니다.
  12. 인스턴스 세부정보 페이지 하단에 있는 저장을 클릭해 변경사항을 인스턴스에 적용하고 새 디스크를 연결합니다.

gcloud

  1. gcloud compute snapshots list 명령어를 사용해 복원할 스냅샷의 이름을 확인합니다.

    gcloud compute snapshots list
    
  2. gcloud compute snapshots describe 명령어를 사용해 복원할 스냅샷의 크기를 확인합니다.

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    여기서 [SNAPSHOT_NAME]은 복원할 스냅샷의 이름입니다.

  3. gcloud compute disks create 명령어를 사용해 비부팅 스냅샷에서 새로운 리전 또는 영역 영구 디스크를 만듭니다. 추가 처리량 또는 IOPS에 사용할 SSD 영구 디스크가 필요한 경우에는 --type 플래그를 포함하고 pd-ssd를 지정합니다.

    gcloud compute disks create [DISK_NAME] \
        --size [DISK_SIZE] \
        --source-snapshot [SNAPSHOT_NAME] \
        --type [DISK_TYPE]
    

    각 항목의 의미는 다음과 같습니다.

    • [DISK_NAME]은 새 디스크의 이름입니다.
    • [DISK_SIZE]는 새 디스크의 크기(GB)입니다. 이 값은 스냅샷의 원래 소스 디스크보다 크거나 같아야 합니다.
    • [SNAPSHOT_NAME]은 복원할 스냅샷의 이름입니다.
    • [DISK_TYPE]은 영구 디스크의 유형(pd-standard 또는 pd-ssd)입니다.
  4. gcloud compute instances attach-disk 명령어를 사용해 영구 디스크를 인스턴스에 연결합니다.

    gcloud compute instances attach-disk [INSTANCE_NAME] \
        --disk [DISK_NAME]
    

    각 항목의 의미는 다음과 같습니다.

    • [INSTANCE_NAME]은 인스턴스의 이름입니다.
    • [DISK_NAME]은 스냅샷에서 만든 디스크의 이름입니다.

API

스냅샷을 사용해 비부팅 영구 디스크를 복원합니다.

  1. snapshots.list에 대한 GET 요청을 작성하여 프로젝트에 스냅샷 목록을 표시합니다.

    GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots
    

    [PROJECT_ID]는 프로젝트 ID입니다.

  2. disks.insert 메서드로 POST 요청을 작성하여 영역 영구 디스크를 만듭니다. name, sizeGb, type 속성을 포함합니다. 스냅샷을 사용해 디스크를 복원하려면 sourceSnapshot 속성을 추가해야 합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
     "name": "[DISK_NAME]",
     "sizeGb": "[DISK_SIZE]",
     "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]"
     "sourceSnapshot": "[SNAPSHOT_NAME]"
    }
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 새 디스크가 위치하는 영역입니다.
    • [DISK_NAME]은 새 디스크의 이름입니다.
    • [DISK_SIZE]는 새 디스크의 크기(GB)입니다.
    • [DISK_TYPE]은 영구 디스크의 유형입니다. pd-standard 또는 pd-ssd입니다.
    • [SNAPSHOT_NAME]은 복원할 디스크에 대한 소스 스냅샷입니다.
  3. instances.attachDisk 메서드에 대한 POST 요청을 작성하고 방금 만든 영역 영구 디스크의 URL을 포함합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]"
    }
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 새 디스크가 위치하는 영역입니다.
    • [INSTANCE_NAME]은 새 영구 디스크를 추가할 인스턴스의 이름입니다.
    • [DISK_NAME]은 새 디스크의 이름입니다.

새 디스크를 만들고 인스턴스에 연결한 후에는 운영체제가 가용 저장공간을 사용할 수 있도록 디스크를 포맷하고 마운트해야 합니다.

디스크가 스냅샷 크기보다 큰 경우 추가 디스크 공간이 포함되도록 영구 디스크의 파일 시스템 크기를 조절해야 합니다.

그러고 나면 이 인스턴스를 사용해 복원된 데이터에 액세스하고 추가 영구 디스크 공간을 사용해 새 데이터를 저장할 수 있습니다.

스냅샷 삭제

Compute Engine에서는 증분 스냅샷을 사용하므로 각 스냅샷에는 이전 스냅샷 이후로 변경된 데이터만 포함됩니다. 변경되지 않은 데이터의 경우에는 각 스냅샷에서 이전 스냅샷의 해당 데이터에 대한 참조가 사용됩니다. 영구 디스크 스냅샷의 스토리지 비용의 경우 스냅샷의 총 크기에 대한 요금만 청구됩니다.

스냅샷을 삭제하면 그 즉시 Compute Engine에서 해당 스냅샷을 시스템에 DELETED로 표시합니다. 종속 스냅샷이 없는 스냅샷은 완전히 삭제되지만 종속된 스냅샷이 있는 경우에는 다음과 같습니다.

  1. 다른 스냅샷을 복원하는 데 필요한 데이터가 다음 스냅샷으로 이전되어 크기가 증가합니다.
  2. 다른 스냅샷을 복원하는 데 필요 없는 데이터는 삭제됩니다. 이 경우 모든 스냅샷의 전체 크기가 감소합니다.
  3. 다음 스냅샷에서는 삭제로 표시된 스냅샷을 더 이상 참조하지 않고 대신 이전 스냅샷을 참조합니다.

이후 스냅샷에서 이전 스냅샷에 저장된 정보를 필요로 하는 경우도 있으므로 스냅샷을 삭제한다고 해서 해당 스냅샷의 모든 데이터가 반드시 삭제되는 것은 아닙니다. 삭제 대상으로 표시된 스냅샷의 데이터가 이후 스냅샷을 복원하는 데 필요한 경우 이 데이터가 해당하는 다음 스냅샷으로 이전됩니다. 스냅샷에서 데이터를 완전히 삭제하려면 모든 스냅샷을 삭제해야 합니다.

디스크에 스냅샷 일정이 있는 경우 디스크에서 스냅샷 일정을 연결 해제해야만 일정을 삭제할 수 있습니다. 디스크에서 스냅샷 일정을 삭제하면 추가 스냅샷 작업이 발생하지 않습니다. 디스크에 연결된 일정은 삭제할 수 없습니다. 언제든지 스냅샷을 수동으로 삭제할 수 있습니다.

다음 다이어그램은 앞에서 설명한 프로세스를 보여줍니다.

스냅샷을 삭제하는 프로세스.

스냅샷을 삭제하는 방법은 다음과 같습니다.

Console

  1. Google Cloud Platform Console의 스냅샷 페이지로 이동합니다.

    스냅샷 페이지로 이동

  2. 삭제할 스냅샷을 하나 이상 선택합니다.
  3. 스냅샷 페이지의 상단에서 삭제를 클릭합니다.

gcloud

스냅샷을 삭제하려면 gcloud compute snapshots delete 명령어를 사용합니다.

gcloud compute snapshots delete [SNAPSHOT_NAME]

여기서 [SNAPSHOT_NAME]은 삭제할 스냅샷의 이름입니다.

API

compute.snapshots.deleteDELETE 요청을 수행하여 스냅샷을 삭제합니다.

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots/[SNAPSHOT_NAME]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 프로젝트의 이름입니다.
  • [SNAPSHOT_NAME]은 삭제할 스냅샷의 이름입니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서