영구 디스크 스냅샷 만들기

스냅샷을 만들어 주기적으로 영역 영구 디스크 또는 리전 영구 디스크의 데이터를 백업할 수 있습니다. 예기치 않은 데이터 손실의 위험을 줄이려면 데이터가 정기적인 일정에 따라 백업되도록 스냅샷 일정을 설정하는 권장사항을 고려하세요.

스냅샷을 삭제하거나 스냅샷의 데이터를 영구 디스크로 복원하려는 경우 영구 디스크 스냅샷 복원 및 삭제를 참조하세요.

시작하기 전에

실행 중인 인스턴스에 연결된 상태에서도 디스크에서 스냅샷을 만들 수 있습니다. 스냅샷은 전역 리소스이므로 동일한 프로젝트 내의 모든 리소스가 모든 스냅샷에 액세스할 수 있습니다. 또한 프로젝트 간에 스냅샷을 공유할 수 있습니다. 스냅샷은 주로 인스턴스용 부팅 디스크 생성 또는 인스턴스 템플릿용 부팅 디스크 구성에 사용되는 공개 이미지커스텀 이미지와는 다릅니다.

스냅샷은 증분되고 자동으로 압축되므로 디스크의 전체 이미지를 정기적으로 만들 때보다 더 빠르고 훨씬 더 저렴한 비용으로 영구 디스크에 정기적인 스냅샷을 만들 수 있습니다. 증분 스냅샷은 다음과 같은 방식으로 작동합니다.

  • 영구 디스크의 성공적인 첫 번째 스냅샷은 영구 디스크의 모든 데이터를 포함하는 전체 스냅샷입니다.
  • 두 번째 스냅샷은 첫 번째 스냅샷 이후의 신규 데이터 또는 수정된 데이터만 포함합니다. 스냅샷 1 이후에 변경되지 않은 데이터는 포함되지 않습니다. 대신, 스냅샷 2는 스냅샷 1에서 변경되지 않은 데이터에 대한 참조를 포함합니다.
  • 스냅샷 3은 스냅샷 2 이후의 신규 또는 변경된 데이터를 포함하지만 스냅샷 1 또는 2에서 변경되지 않은 데이터는 포함하지 않습니다. 대신, 스냅샷 3은 스냅샷 1과 스냅샷 2의 블록에서 변경되지 않은 데이터에 대한 참조를 포함합니다.

영구 디스크의 모든 후속 스냅샷에 이와 같은 과정이 반복됩니다. 스냅샷은 항상 마지막으로 성공한 스냅샷을 기반으로 생성됩니다.

스냅샷 만드는 방법을 보여주는 다이어그램

Compute Engine은 데이터의 무결성을 보장하는 자동 체크섬을 사용하여 각 스냅샷의 사본 여러 개를 여러 위치에 저장합니다. 여러 프로젝트에서 스냅샷을 공유하려면 IAM 역할을 사용합니다.

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

gcloud compute snapshots list

생성 시간, 크기, 소스 디스크와 같은 특정 스냅샷의 정보를 나열하려면 gcloud compute snapshots describe 명령어를 사용합니다.

gcloud compute snapshots describe [SNAPSHOT_NAME]

여기서 [SNAPSHOT_NAME]은 정보를 보려는 스냅샷의 이름입니다.

스냅샷의 스토리지 위치 선택

스냅샷을 만들 때 스토리지 위치를 지정할 수 있습니다. 스냅샷의 위치는 가용성에 영향을 줄 수 있으며, 스냅샷을 만들거나 새로운 디스크로 복원할 때 네트워킹 비용이 발생할 수 있습니다.

Cloud Storage 멀티 리전 위치(예: asia) 또는 Cloud Storage 리전 위치(예: asia-south1) 중 하나에 스냅샷을 저장할 수 있습니다.

멀티 리전 스토리지 위치에 저장하면 가용성을 높이고 스냅샷을 만들거나 복원할 때 네트워크 비용을 줄일 수 있습니다. 예를 들어 다중 리전에 저장된 스냅샷에서 디스크를 만들면 다중 리전 그룹 중 하나에 새 영구 디스크를 만드는 한 네트워크 비용이 발생하지 않습니다. 리전 스토리지 위치를 사용하면 단일 리전을 지정하기 때문에 데이터의 실제 위치를 보다 효과적으로 제어할 수 있습니다.

스냅샷의 스토리지 위치를 지정하지 않으면 GCP에서 기본 위치를 사용하여 소스 디스크 리전과 가장 가까운 Cloud Storage 멀티 리전 위치에 스냅샷을 저장합니다. 리전 스토리지를 선택해야 하거나 다른 멀티 리전 위치를 지정해야 하는 경우 스냅샷을 커스텀 위치에 저장하세요.

기본 위치

스토리지 위치를 지정하지 않으면 스냅샷은 영구 디스크 위치와 지리적으로 가장 가까운 멀티 리전에 저장됩니다.

예를 들어 영구 디스크가 us-central1에 저장된 경우 스냅샷은 기본적으로 us 멀티 리전에 저장됩니다.

하지만 australia-southeast1과 같은 기본 위치는 멀티 리전 외부에 있습니다. 가장 가까운 멀티 리전은 asia입니다. 스냅샷을 만들거나 복원하면 네트워크 비용이 발생합니다.

스냅샷을 저장할 기본 위치를 선택하는 몇 가지 사용 사례로 다음과 같은 것이 있습니다.

  • 기본 멀티 리전 위치가 회사 또는 정부의 데이터 배치 정책을 충족합니다.
  • 영구 디스크는 기본 멀티 리전 위치의 일부인 리전 위치에 저장됩니다. 예를 들어 영구 디스크는 us-central1 리전에 있으므로 기본 멀티 리전은 us입니다. 이 경우 잠재적으로 느린 스냅샷 복원 성능보다 높은 스냅샷 가용성에 우선순위를 둡니다.
  • 스냅샷이 기본 스냅샷 스토리지 위치 외부에 있는 디스크에 복원되는 상황이 자주 발생하지 않습니다.

커스텀 위치

지역 위치에 스냅샷을 저장하거나 다른 다중 지역 위치를 지정해야 하는 경우 커스텀 위치를 선택하세요.

스냅샷의 커스텀 스토리지 위치를 선택하는 몇 가지 사용 사례로 다음과 같은 것이 있습니다.

  • 커스텀 멀티 리전 위치가 회사 또는 정부의 데이터 배치 정책을 충족합니다.
  • 앱이 Cloud Storage 멀티 리전 위치 중 어디에도 포함되지 않은 리전에 배포되고 스냅샷 가용성보다 스냅샷 복원 성능에 우선순위를 두고자 합니다.
  • 기본 스냅샷 스토리지 위치 외부에 있는 디스크에서 스냅샷을 복원하는 상황이 자주 발생합니다.

회사 또는 정부의 데이터 배치 정책을 준수해야 하는 경우 이러한 정책을 준수하는 가장 가까운 리전 위치에 스냅샷을 저장하세요.

앱이 멀티 리전의 일부에 배포되지 않고 높은 스냅샷 가용성보다 낮은 네트워킹 비용에 우선순위를 두고자 하는 경우 소스 디스크가 있는 리전에 스냅샷을 저장하세요. 소스 디스크가 있는 리전에 스냅샷을 저장하면 해당 소스 디스크에서 스냅샷을 복원하고 만드는 데 드는 네트워킹 비용을 최소화할 수 있습니다.

하지만 멀티 리전 스토리지 위치와는 다르게 리전 스토리지 위치는 데이터를 여러 데이터 센터에 중복으로 저장하지 않으므로 대규모 중단이 발생할 경우 데이터에 액세스하지 못하게 될 수 있습니다. 데이터 가용성을 보장하려면 중복 스냅샷을 두 번째 위치에 저장해야 합니다.

네트워크 비용

스냅샷 스토리지 위치를 선택하는 것은 네트워크 비용을 최소화하는 데 중요합니다. 소스 디스크와 동일한 리전에 스냅샷을 저장하면 동일한 리전에서 해당 스냅샷에 액세스할 때 네트워크 요금이 부과되지 않습니다. 다른 리전에서 스냅샷에 액세스하면 네트워크 비용이 발생합니다.

소스 디스크의 지리적 스토리지 위치가 멀티 리전과 동일하면 네트워크 요금이 부과되지 않습니다.

예를 들어 소스 디스크가 asia-east1-a에 있는 경우 스냅샷을 asia-east1 리전 또는 asia 멀티 리전에 저장할 수 있습니다. 스냅샷에 액세스할 때 네트워크 비용이 발생하지 않습니다.

리전 간 액세스에는 네트워크 요금이 부과됩니다. 예를 들어 소스 디스크가 asia-east1에 있고 asia-east2에 스냅샷을 저장하는 경우 두 리전에서 스냅샷에 액세스할 때 네트워크 비용이 발생합니다.

스냅샷을 만들 때 기본값을 재정의하지 않으면 두 리전(australia-southeast1southamerica-east1)에 네트워크 비용이 발생하는 기본 멀티 리전 스냅샷 스토리지 위치가 지정됩니다.

  • 소스 디스크가 australia-southeast1에 있는 경우 기본 스냅샷 스토리지 위치는 asia 멀티 리전입니다. 비용을 줄이려면 이 기본 위치를 재정의하고 australia-southeast1 리전에 스냅샷을 저장하세요.
  • 소스 디스크가 southamerica-east1에 있는 경우 기본 스냅샷 스토리지 위치는 us 멀티 리전입니다. 비용을 줄이려면 이 기본 위치를 재정의하고 southamerica-east1 리전에 스냅샷을 저장하세요.

스냅샷의 스토리지 위치에 포함되지 않은 리전의 디스크로 스냅샷을 복원하는 경우 네트워크 비용이 발생합니다. 예를 들어 asia(멀티 리전 위치)에 저장된 스냅샷에서 australia-southeast1에 새 리전 영구 디스크를 만드는 경우 네트워크 비용이 발생합니다.

스냅샷 생성

영구 디스크 스냅샷을 만드는 방법은 다음과 같습니다.

영역 영구 디스크의 스냅샷 만들기

디스크가 준비되면 스냅샷을 만들 수 있습니다. 영역 영구 디스크의 스냅샷을 만들려면 다음 단계를 따르세요. 사용하려는 영구 디스크가 다중 영역에 있는 경우 리전 영구 디스크의 스냅샷 만들기 지침을 따르세요.

Console

  1. Google Cloud Platform Console에서 스냅샷 만들기 페이지로 이동합니다.
    스냅샷 페이지 만들기로 이동
  2. 스냅샷 이름을 입력합니다.
  3. 원하는 경우 스냅샷에 대한 설명을 입력합니다.
  4. 드롭다운 메뉴에서 소스 디스크를 선택합니다.
  5. 스냅샷 스토리지 위치를 결정합니다. 기본 스토리지 위치 또는 커스텀 스토리지 위치를 사용할 수 있습니다.

    1. 위치에서 스냅샷을 멀티 리전 위치에 저장할지, 아니면 리전 위치에 저장할지 선택합니다.
    2. 사용할 특정 리전 또는 다중 리전을 선택합니다. 소스 디스크에 가장 가까운 리전 또는 멀티 리전을 사용하려면 디스크 위치 기준(기본값)을 선택합니다.
  6. 만들기를 클릭하여 스냅샷을 만듭니다.

gcloud

기본 스토리지 위치 또는 선택한 스토리지 위치에 스냅샷을 만듭니다.

  • 기본 스토리지 위치에 영역 영구 디스크의 스냅샷을 만들려면 gcloud compute disks snapshot 명령어를 사용합니다.

    gcloud compute disks snapshot [DISK_NAME]
    

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

    • [DISK_NAME]은 스냅샷을 만들려는 영역 영구 디스크의 이름입니다.
  • 또는 커스텀 스토리지 위치에 스냅샷을 만들려면 --storage-location 플래그를 사용하여 스냅샷 저장 위치를 지정합니다.

    gcloud compute disks snapshot [DISK_NAME] \
        --storage-location [STORAGE_LOCATION]
    

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

    • [DISK_NAME]은 스냅샷을 만들려는 영역 영구 디스크의 이름입니다.
    • [STORAGE_LOCATION]은 스냅샷을 저장하려는 Cloud Storage 멀티 리전 또는 Cloud Storage 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.

gcloud 명령줄 도구는 작업이 READY 또는 FAILED 상태를 반환할 때까지 기다립니다. 이러한 상태가 반환되지 않고 최대 제한 시간에 도달하면 스냅샷에 대해 마지막으로 알려진 세부정보를 반환합니다.

API

기본 스토리지 위치 또는 선택한 스토리지 위치에 스냅샷을 만듭니다.

  • 기본 스토리지 위치에 스냅샷을 만들려면 disks.createSnapshot 메서드에 대해 POST 요청을 작성합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/createSnapshot
    

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

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 디스크가 있는 영역입니다.
    • [DISK_NAME]은 스냅샷을 만들려는 영역 영구 디스크의 이름입니다.
  • 또는 커스텀 스토리지 위치에 스냅샷을 만들려면 disks.createSnapshot 메서드에 대해 POST 요청을 작성하고 스토리지 위치를 지정합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/createSnapshot
    
    {
      "storageLocations": [STORAGE_LOCATION]
    }
    

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

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 디스크가 있는 영역입니다.
    • [DISK_NAME]은 스냅샷을 만들려는 영역 영구 디스크의 이름입니다.
    • [STORAGE_LOCATION]은 스냅샷을 저장하려는 Cloud Storage 멀티 리전 또는 Cloud Storage 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.

리전 영구 디스크의 스냅샷 만들기

디스크가 준비되면 스냅샷을 만들 수 있습니다. 리전 영구 디스크의 스냅샷을 만들 때 디스크가 있는 리전을 지정해야 합니다.

Console

  1. Google Cloud Platform Console의 스냅샷 페이지로 이동합니다.
    스냅샷 페이지로 이동
  2. 스냅샷 이름을 입력합니다.
  3. 원하는 경우 스냅샷에 대한 설명을 입력합니다.
  4. 소스 디스크에서 스냅샷을 만들려는 기존 디스크를 선택합니다.
  5. 필요한 경우 커스텀 스토리지 위치를 지정할 수 있습니다.

    1. 위치에서 스냅샷을 멀티 리전 위치에 저장할지, 아니면 리전 위치에 저장할지 선택합니다.
    2. 사용할 특정 지역 또는 다중 지역을 선택합니다. 소스 디스크에 가장 가까운 리전 또는 멀티 리전을 사용하려면 디스크 위치 기준을 선택합니다.
  6. 만들기를 클릭하여 스냅샷을 만듭니다.

gcloud

기본 스토리지 위치 또는 선택한 스토리지 위치에 스냅샷을 만듭니다.

  • 기본 스토리지 위치에 리전 영구 디스크의 스냅샷을 만들려면 gcloud compute disks snapshot 명령어를 사용합니다.

    gcloud compute disks snapshot [DISK_NAME] \
        --region [REGION]
    

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

    • [DISK_NAME]은 스냅샷을 만들려는 리전 영구 디스크의 이름입니다.
    • [REGION]은 리전 영구 디스크가 있는 리전입니다.
  • 필요한 경우 커스텀 스토리지 위치를 지정할 수 있습니다.

    gcloud compute disks snapshot [DISK_NAME] --region [REGION] \
        --storage-location [STORAGE_LOCATION]
    

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

    • [DISK_NAME]은 스냅샷을 만들려는 리전 영구 디스크의 이름입니다.
    • [REGION]은 리전 영구 디스크가 있는 리전입니다.
    • [STORAGE_LOCATION]은 스냅샷을 저장하려는 Cloud Storage 멀티 리전 또는 Cloud Storage 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.

    gcloud 명령줄 도구는 작업이 READY 또는 FAILED 상태를 반환할 때까지 기다립니다. 이러한 상태가 반환되지 않고 최대 제한 시간에 도달하면 스냅샷에 대해 마지막으로 알려진 세부정보를 반환합니다.

API

  • 기본 스토리지 위치에 스냅샷을 만들려면 regionDisk.createSnapshot 메서드에 대해 POST 요청을 작성합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot
    

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

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [REGION]은 리전 영구 디스크가 있는 리전입니다.
    • [DISK_NAME]은 스냅샷을 만들 디스크의 이름입니다.
  • 또는 커스텀 스토리지 위치에 스냅샷을 만들려면 regionDisk.createSnapshot 메서드에 대해 POST 요청을 작성하고 스토리지 위치를 지정합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot
    {
     "storageLocations": [STORAGE_LOCATION]
    }
    

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

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [REGION]은 리전 영구 디스크가 있는 리전입니다.
    • [DISK_NAME]은 스냅샷을 만들려는 리전 영구 디스크의 이름입니다.
    • [STORAGE_LOCATION]은 스냅샷을 저장하려는 Cloud Storage 멀티 리전 또는 Cloud Storage 리전입니다. 스토리지 위치는 하나만 지정할 수 있습니다.

다음 단계

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

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

Compute Engine 문서