영구 디스크의 스냅샷 일정 만들기


이 문서에서는 영역리전 영구 디스크에 대해 정기적으로 자동 백업을 수행하도록 스냅샷 일정을 만드는 방법을 설명합니다. Compute Engine 워크로드 백업 권장사항은 스냅샷 일정을 사용하는 것입니다.

스냅샷 일정을 만들 때 하나 이상의 영구 디스크에 적용할 수 있는 리소스 정책을 만듭니다. 다음과 같은 방법으로 스냅샷 일정을 만들 수 있습니다.

스냅샷 일정에는 다음 속성이 포함됩니다.

  • 일정 이름
  • 일정 설명
  • 스냅샷 빈도(시간, 일, 주 단위)
  • 스냅샷 보관 일수를 결정하는 스냅샷 보관 정책
  • 스냅샷 시작 시간
  • 스냅샷 일정이 사용 가능한 리전
  • 소스 디스크가 삭제된 경우 자동 생성된 스냅샷 처리를 위한 소스 디스크 삭제 정책
  • 스냅샷 일정에 따라 생성된 스냅샷의 보관 기간을 정의하는 보관 정책

시작하기 전에

제한사항

  • 영구 디스크에는 한 번에 스냅샷 일정 하나만 연결될 수 있습니다.
  • 리전당 현재 사용 중인 스냅샷 일정을 최대 1,000개까지 만들 수 있습니다.
  • 리전에서 추가 리소스가 필요한 경우 Console을 통해 리소스 할당량 증가를 요청해야 할 수 있습니다.
  • 디스크에 연결되어 있는 스냅샷 일정은 삭제할 수 없습니다. 모든 디스크에서 일정을 분리한 다음 일정을 삭제해야 합니다.
  • 스냅샷 일정을 만든 후에는 편집할 수 없습니다. 스냅샷 일정을 업데이트하려면 해당 일정을 삭제하고 새 일정을 만들어야 합니다.
  • 현재 고객 제공 암호화 키(CSEK)를 사용하는 영구 디스크의 스냅샷 일정을 만들 수 없습니다.
  • 고객 관리 암호화 키(CMEK)를 사용하는 영구 디스크의 스냅샷 일정을 만드는 경우 스냅샷은 동일한 키로 자동 암호화됩니다.

스냅샷 일정 빈도

스냅샷 일정을 만들기 전에 시작 시간 및 스냅샷 빈도를 선택합니다. 시작 시간은 스냅샷 일정을 시작할 시간입니다. 빈도는 시간, 일 또는 주 단위로 정의됩니다.

스냅샷 일정은 지정된 시작 시간의 해당 시각 내에 시작합니다. 예를 들어 일정 시작 시간이 12:00이면 스냅샷은 12:00~12:59 사이에 시작됩니다. 일정은 UTC 표준시를 사용합니다.

  • 시간 단위 일정 설정: 시간 단위 일정을 설정하려면 시작 시간을 선택하고 1~23 사이의 정수를 사용하여 스냅샷 간격을 선택합니다. 스냅샷 간격은 스냅샷 생성 빈도를 정의합니다. 간격을 설정할 때 한 가지 옵션은 24로 균등하게 나누어지는 숫자를 선택하는 것입니다. 예를 들어 시작 시간을 9:00로 설정하고 간격을 6으로 설정하면 스냅샷 일정이 9:00에 시작되고 스냅샷 간격 6시간마다 실행됨을 의미합니다.

  • 일 단위 일정 설정: 스냅샷이 하루에 한 번 발생하도록 하려면 빈도를 일 단위로 설정합니다. 예를 들어 스냅샷이 매일 9:00에 생성되도록 스냅샷 일정을 설정할 수 있습니다.

  • 주 단위 일정 설정: 주중 여러 요일에 스냅샷을 수행하려면 주 단위로 설정합니다. 예를 들어 시작 시간을 9:00로 설정하고 주 단위 일정을 월요일, 목요일, 일요일로 설정하면 스냅샷 일정이 매주 월요일, 목요일, 일요일 9:00에 실행됨을 의미합니다. 주 단위 일정을 주중 다른 요일로도 설정할 수 있습니다. 예를 들어 주 단위 일정을 매주 월요일 14:00 및 목요일 10:00로 설정할 수 있습니다.

스냅샷 보관 정책

스냅샷 보관 정책은 스냅샷 보관 기간을 정의합니다.

스냅샷 보관 정책을 설정하는 경우 스냅샷 일정의 일부로 설정해야 합니다. gcloud 도구 또는 Cloud Console을 사용하는 경우 스냅샷 일정을 만들 때 항상 보관 정책을 설정해야 합니다. API에 직접 요청을 수행하면 해당 필드를 생략할 수 있으며 스냅샷은 무기한 보관됩니다.

API에 요청을 수행하고 자동 생성된 모든 스냅샷을 수동으로 삭제할 때까지 영구적으로 보관하는 기본 옵션을 선택하면 해당 스냅샷을 수동으로 삭제할 때까지 보관하기 위한 스토리지 비용이 발생합니다.

장기간의 스냅샷 스토리지 비용을 최소화하도록 보관 정책을 설정하는 것이 좋습니다.

  • 최소 1일 이상의 보관 일수로 스냅샷 보관 정책을 지정해야 합니다.
  • 스냅샷 보관 정책은 자동 생성된 스냅샷에만 적용되며 수동으로 만든 스냅샷에는 적용되지 않습니다.
  • 보관 정책을 소급해서 적용할 수 없습니다. 보관 정책 없이 스냅샷 일정을 만든 다음 보관 정책이 있는 스냅샷 일정으로 전환하면 보관 정책은 새 스냅샷에만 적용됩니다.
  • 보관 정책에 관계없이 자동 및 수동으로 생성된 스냅샷을 언제든지 수동으로 삭제할 수 있습니다.

소스 디스크 삭제 규칙

스냅샷 일정을 만들 때 소스 디스크 삭제 규칙을 설정할 수도 있습니다. 소스 디스크 삭제 규칙을 통해 소스 디스크가 삭제된 경우 스냅샷 처리 방식을 제어합니다. 기본적으로 소스 디스크가 삭제되면 스냅샷 일정에서 자동으로 생성된 스냅샷은 수동으로 삭제하기 전까지 무기한 유지됩니다. 이 동작은 사용자가 별도로 지정하지 않는 한 설정한 원래 보관 정책과 관계없습니다.

또는 소스 디스크가 삭제되면 스냅샷 보관 정책이 스냅샷에 적용되도록 규칙을 설정할 수 있습니다. 예를 들어 소스 디스크가 삭제된 후 1주일 동안 스냅샷을 유지하는 보관 정책을 적용할 수 있습니다.

예를 들어 3일의 보관 정책으로 스냅샷 일정을 만들었지만 소스 디스크 삭제 시 보관 정책을 적용하지 않도록 선택한 경우를 가정합니다. 정책을 영구 디스크에 적용하면 Compute Engine이 자동으로 스냅샷을 만들지만 보관 정책에 따라 3일 후에 스냅샷이 자동으로 삭제됩니다. 그러나 소스 디스크가 삭제되는 경우가 발생하면 보관 정책이 적용되지 않고 이 스냅샷 일정을 통해 만들어진 기존의 스냅샷이 모두 무기한 보관됩니다.

Windows 인스턴스의 스냅샷 일정

Windows VM 인스턴스에 연결된 디스크에 스냅샷 일정을 적용하는 경우 guest-flush 옵션을 사용하여 스냅샷의 섀도 복사본을 생성하도록 VSS를 설정하세요. Windows 스냅샷에 대한 자세한 내용은 Windows 영구 디스크 스냅샷 만들기를 참조하세요.

스냅샷 지역 규칙 및 스냅샷 라벨

수동으로 생성된 스냅샷의 경우와 유사하게 자동 생성된 스냅샷에 대해서도 리소스 라벨을 적용하고 스토리지 위치를 선택할 수 있습니다. 스냅샷 일정에 이러한 사항을 설정하면 이 일정을 통해 자동 생성된 모든 스냅샷에 해당 속성이 적용됩니다. 예를 들어 스냅샷 지역을 US로 설정하면 이 일정을 통해 생성된 모든 스냅샷은 US에 저장됩니다. 이러한 옵션 설정에 대한 세부정보는 아래 사례를 검토하세요.

예약된 스냅샷 이름

스냅샷 일정의 일부로 캡처된 스냅샷에는 이름이 자동으로 생성됩니다. 스냅샷 이름은 다음 패턴에 따라 생성됩니다.

[disk-name-prefix]-[scope-name]-[timestamp]-[random-chars]
  • disk-name-prefix: 소스 디스크의 이름입니다. 최대 20자(영문 기준)까지 입력할 수 있습니다.
  • scope-name: 소스 디스크의 영역 또는 리전 이름입니다.
  • timestamp: YYYYMMDDHHMMSS 형식의 UTC 생성 타임스탬프입니다.
  • random-chars: 다른 스냅샷과 이름이 충돌하지 않도록 무작위로 생성된 영숫자 문자입니다.

스냅샷 일정 만들기

Google Cloud Console, gcloud 명령줄 도구 또는 Compute Engine API를 사용하여 영구 디스크의 스냅샷 일정을 만듭니다. 영구 디스크가 있는 리전과 동일한 리전에 스냅샷 일정을 만들어야 합니다. 예를 들어 영구 디스크가 us-west1-a 영역에 있다면 스냅샷 일정은 us-west1 리전에 있어야 합니다. 자세한 내용은 스냅샷의 스토리지 위치 선택을 참조하세요.

Console

스냅샷 일정을 만들려면 다음을 수행하세요.

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

    스냅샷 페이지로 이동

  2. 페이지 상단에서 스냅샷 일정 만들기를 클릭합니다.
  3. 일정 이름을 입력합니다.
  4. 스냅샷 일정의 리전을 선택합니다. 영구 디스크가 스냅샷 일정이 포함된 리전 내의 영역에 존재해야 합니다.
  5. 필요에 따라 스냅샷 위치를 선택하거나 기본 선택사항을 사용합니다.
  6. 일정 빈도를 선택합니다.
  7. 다음 기간 경과 후 스냅샷 자동 삭제에 일수를 입력합니다.
  8. 소스 디스크가 삭제된 경우 스냅샷 처리 방식을 결정하는 삭제 규칙을 선택합니다.
  9. 이 일정으로 생성된 스냅샷의 보관 일수를 선택합니다.
  10. Windows를 사용하는 경우 VSS 사용 설정을 선택할 수 있습니다.
  11. 필요에 따라 이러한 스냅샷에 적용할 관련 라벨을 지정합니다.
  12. 만들기를 클릭하여 스냅샷 일정을 만듭니다.

gcloud

영구 디스크의 스냅샷 일정을 만들려면 compute resource-policies create snapshot-schedulegcloud 명령어를 사용합니다. 일정 빈도를 시간, 일 또는 주 단위로 설정합니다.

  gcloud compute resource-policies create snapshot-schedule [SCHEDULE_NAME] \
      --description "[SCHEDULE_DESCRIPTION]" \
      --max-retention-days [MAX_RETENTION_DAYS] \
      --start-time [START_TIME] \
      --hourly-schedule [SNAPSHOT_INTERVAL] \
      --daily-schedule \
      --weekly-schedule [SNAPSHOT_INTERVAL] \
      --weekly-schedule-from-file [FILE_NAME] \
      --on-source-disk-delete [DELETION_OPTION]

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

  • [SCHEDULE_NAME]은 새 스냅샷 일정의 이름입니다.
  • "[SCHEDULE_DESCRIPTION]"은 스냅샷 일정의 설명입니다. 설명을 따옴표를 사용하여 묶습니다.
  • [MAX_RETENTION_DAYS]은 스냅샷 보관 일수입니다. 예를 들어 3으로 설정하면 스냅샷이 3일 동안 보관된 후 삭제됩니다. 보관 정책은 최소 1일로 설정해야 합니다.
  • [START_TIME]은 UTC 시작 시간입니다. 시작 시간은 정시에 시작해야 합니다. 예를 들면 다음과 같습니다.
    • 태평양 표준시(PST 기준) 오후 2시는 22:00입니다.
    • 시작 시간을 22:13으로 설정하면 오류가 발생합니다.
  • [SNAPSHOT_INTERVAL]은 스냅샷 실행 간격을 정의합니다. 1~23 사이의 정수를 사용하여 시간 단위 일정을 설정합니다. 24로 균등하게 나누어지는 시간 단위 숫자를 선택하세요. 예를 들어 --hourly-schedule을 12로 설정하면 스냅샷이 12시간마다 생성됩니다. 주간 단위 일정의 경우 스냅샷을 만들 요일을 정의합니다. 요일을 정확히 입력해야 하며 대소문자를 구분하지 않습니다. 스냅샷 빈도 플래그 hourly-schedule, daily-schedule, weekly-schedule을 함께 사용할 수 없습니다. 스냅샷 일정으로 한 가지만 선택해야 합니다.

  • [FILE_NAME]은 스냅샷 일정이 포함된 파일 이름입니다(이 형식으로 일정을 제공하려는 경우). 파일을 사용하여 다른 요일과 다른 시간으로 주 단위 일정을 지정할 수 있지만 명령줄에서 여러 주 단위 일정을 직접 지정할 수는 없습니다. 예를 들어 파일에 다음과 같이 월요일과 수요일에 스냅샷 일정을 지정할 수 있습니다([{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}]). 파일에 시작 시간을 포함하면 --start-time 플래그를 설정하지 않아도 됩니다. 일정은 UTC 표준시를 사용합니다.

  • [DELETION_OPTION]을 통해 소스 디스크가 삭제된 경우 스냅샷 처리 방식을 결정합니다. 이 플래그를 생략하여 기본 keep-auto-snapshots을 선택하거나 apply-retention-policy를 사용하여 보관 정책을 적용하세요.

다음은 스냅샷 일정을 설정하는 추가 예제입니다. 모든 예시에는 다음 사항이 적용됩니다.

  • 디스크 삭제 규칙이 포함됩니다. --on-source-disk-delete 플래그가 기본 keep-auto-snapshots으로 설정되어 자동 생성된 모든 스냅샷을 무기한 유지합니다. 다른 방법으로는 이 플래그를 apply-retention-policy로 설정하여 스냅샷 보관 정책을 사용합니다.
  • 스토리지 위치가 US로 설정되어 생성된 모든 스냅샷이 US 멀티 리전에 저장됩니다.
  • env=devmedia=images 라벨이 생성된 모든 스냅샷에 적용됩니다.
  • 보관 정책이 10일로 설정됩니다.

시간 단위 일정:이 예시에서 스냅샷 일정은 UTC 22:00에 시작하고 4시간마다 발생합니다.

  gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
      --description "MY HOURLY SNAPSHOT SCHEDULE" \
      --max-retention-days 10 \
      --start-time 22:00 \
      --hourly-schedule 4 \
      --region us-west1 \
      --on-source-disk-delete keep-auto-snapshots \
      --snapshot-labels env=dev,media=images \
      --storage-location US

일 단위 일정:이 예시에서 스냅샷 일정은 UTC 22:00에 시작하고 매일 동시에 발생합니다. --daily-schedule 플래그는 있어야 하지만 아무것도 설정되지 않아야 합니다.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY DAILY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --daily-schedule \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

주 단위 일정: 이 예시에서 스냅샷 일정은 UTC 22:00에 시작하고 매주 화요일과 목요일에 발생합니다.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY WEEKLY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --weekly-schedule tuesday,thursday \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

API

API에서 스냅샷 일정을 만들려면 resourcePolicies.insert에 대한 POST 요청을 작성합니다. 최소한 스냅샷 일정 이름, 스냅샷 스토리지 리전 위치, 스냅샷 빈도는 포함되어야 합니다.

기본적으로 onSourceDiskDelete 매개변수가 keepAutoSnapshots으로 설정됩니다. 즉, 소스 디스크가 삭제되면 해당 디스크의 자동 생성된 스냅샷이 무기한 보관됩니다. 또는 플래그를 applyRetentionPolicy로 설정하여 보관 정책을 적용할 수 있습니다.

다음 예시는 UTC 12:00에 시작하여 매일 반복되는 일 단위 스냅샷 일정을 설정합니다. 또한 이 예시에서는 보관 정책을 5일로 설정하여 스냅샷이 5일 후에 자동으로 삭제됩니다.

요청에 스냅샷 지역 옵션스냅샷 라벨을 포함하여 스냅샷이 원하는 위치에 저장되도록 할 수도 있습니다.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies

{
 "name": "[SCHEDULE_NAME]",
 "description": "[SCHEDULE_DESCRIPTION]",
 "snapshotSchedulePolicy": {
   "schedule": {
     "dailySchedule": {
       "startTime": "12:00",
       "daysInCycle": "1"
     }
   },
   "retentionPolicy": {
     "maxRetentionDays": "5"
   },
   "snapshotProperties": {
     "guestFlush": "False",
     "labels": {
       "env": "dev",
       "media": "images"
     },
     "storageLocations": ["US"]
   }
 }
}

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [REGION]은 스냅샷 일정 리소스 정책의 위치입니다.
  • [SCHEDULE_DESCRIPTION]은 스냅샷 일정의 설명입니다.
  • [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.

이와 유사하게 주 단위나 월 단위로 일정을 만들 수 있습니다. 주 단위 또는 월 단위 일정에 대한 자세한 내용은 API 참조를 확인하세요.

예를 들어 다음 요청은 화요일 9:00와 목요일 2:00에 실행하는 주 단위 일정을 만듭니다.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies

{
 "name": "[SCHEDULE_NAME]",
 "description": "[SCHEDULE_DESCRIPTION]",
 "snapshotSchedulePolicy": {
   "schedule": {
     "weeklySchedule": {
       "dayOfWeeks": [
       {
         "day": "Monday",
         "startTime": "9:00"
       },
       {
         "day": "Thursday",
         "startTime": "2:00"
       }
       ]
     }
   },
  "retentionPolicy": {
    "maxRetentionDays": "5"
  },
  "snapshotProperties": {
    "guestFlush": "False",
    "labels": {
      "production": "webserver"
    },
    "storageLocations": ["US"]
  }
 }
}

디스크에 스냅샷 일정 연결

일정이 준비되면 이를 기존 디스크에 연결합니다. Console, gcloud 명령어 또는 Compute Engine API 메서드를 사용하세요.

Console

기존 디스크에 스냅샷 일정을 연결합니다.

  1. Google Cloud Console에서 디스크 페이지로 이동합니다.

    디스크 페이지로 이동

  2. 스냅샷 일정을 연결할 디스크의 이름을 클릭합니다. 이렇게 하면 디스크 세부정보 페이지가 열립니다.
  3. 디스크 세부정보 페이지 상단에서 수정을 클릭합니다.
  4. 스냅샷 일정 드롭다운 메뉴를 사용하여 디스크에 일정을 추가하거나 새 일정을 만듭니다.
  5. 새 일정을 만드는 경우 만들기를 클릭합니다.
  6. 저장을 클릭하여 작업을 완료합니다.

gcloud

스냅샷 일정을 디스크에 첨부하려면 disks add-resource-policies gcloud 명령어를 사용합니다.

gcloud compute disks add-resource-policies [DISK_NAME] \
    --resource-policies [SCHEDULE_NAME] \
    --zone [ZONE]

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

  • [DISK_NAME]은 기존 디스크의 이름입니다.
  • [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.
  • [ZONE]은 디스크의 위치입니다.

API

API에서 스냅샷 일정을 기존 디스크에 연결하려면 disks.addResourcePolicies에 대한 POST 요청을 작성합니다.

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

{
  "resourcePolicies": [
    "regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
  ]
}

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [ZONE]은 디스크의 위치입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.
  • [DISK_NAME]은 디스크 이름입니다.
  • [SCHEDULE_NAME]은 이 디스크에 적용할 해당 리전의 스냅샷 일정의 이름입니다.

스냅샷 일정이 있는 디스크 만들기

Cloud Console 및 gcloud에서만 디스크와 스냅샷 일정을 동시에 만들 수 있습니다.

Console

  1. Google Cloud Console에서 디스크 페이지로 이동합니다.

    디스크 페이지로 이동

  2. 페이지 상단에서 디스크 만들기를 클릭합니다.
  3. 필수 입력란을 모두 완료하여 영역(zone) 또는 리전 디스크를 만듭니다.
  4. 스냅샷 일정과 동일한 리전에 디스크를 만듭니다.
  5. 스냅샷 일정의 필드를 채웁니다.
  6. 드롭다운 메뉴를 사용하고 필드에 모두 입력하여 일정을 만듭니다.
  7. 만들기를 클릭하여 일정을 만듭니다.
  8. 만들기를 클릭하여 디스크를 만듭니다.

gcloud

disks create gcloud 명령어를 사용하여 영역 또는 리전 영구 디스크를 만들어 스냅샷 일정을 연결합니다.

gcloud compute disks create [DISK_NAME] \
    --resource-policies [SCHEDULE_NAME] \
    --zone [ZONE]

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

  • [DISK_NAME]은 새 디스크의 이름입니다.
  • [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.
  • [ZONE]은 디스크를 만들 위치입니다. 디스크는 스냅샷 일정의 리전 내 영역에 있어야 합니다.

스냅샷 일정 보기

스냅샷 일정 목록을 가져오려면 Console, gcloud 명령어 또는 Compute Engine API 메서드를 사용합니다. 이 요청을 수행하면 프로젝트 내의 모든 스냅샷 일정의 이름, 설명, 리전이 표시됩니다.

Console

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

    스냅샷 페이지로 이동

  2. 페이지 상단의 스냅샷 일정을 클릭합니다.
  3. 스냅샷 일정 필터링 검색창을 사용하여 지정된 스냅샷 일정을 검토합니다.
  4. 스냅샷 일정을 클릭하여 관련 세부정보를 봅니다.

gcloud

스냅샷 일정 목록을 보려면 resource-policies list gcloud 명령어를 사용합니다.

gcloud compute resource-policies list

특정 스냅샷 일정에 대한 설명을 보려면 resource-policies describe gcloud 명령어를 사용합니다.

gcloud compute resource-policies describe [SCHEDULE_NAME]

여기서 [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.

API

프로젝트의 스냅샷 일정 목록을 반환하려면 resourcepolicies.aggregatedList에 대한 GET 요청을 수행합니다.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/resourcePolicies

여기서 [PROJECT_ID]는 프로젝트 이름입니다.

리전별 스냅샷 일정 보기

특정 리전의 스냅샷 일정을 보려면 Console, gcloud 명령어 또는 Compute Engine API 메서드를 사용합니다.

Console

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

    스냅샷 페이지로 이동

  2. 페이지 상단의 스냅샷 일정을 클릭합니다.
  3. 스냅샷 일정 필터링 검색창을 사용하여 지정된 스냅샷 일정을 리전별로 검토합니다.

gcloud

특정 리전의 스냅샷 일정을 보려면 resource-policies list gcloud 명령어를 사용합니다.

gcloud compute resource-policies list [PROJECT_ID] \
    --filter [REGION]

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [REGION]은 리소스 정책의 위치입니다.

API

리전에서 만들어진 스냅샷 일정을 검색하려면 resourcePolicies.get에 대한 요청을 수행합니다.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.
  • [SCHEDULE_NAME]은 보려는 스냅샷 일정의 이름입니다.

스냅샷 일정 변경

스냅샷 일정은 수정할 수 없습니다. 이미 디스크에 연결된 일정을 변경하려면 먼저 디스크에서 일정을 연결 해제한 후 삭제해야 합니다. 그런 다음 새 일정을 만들어 디스크에 연결할 수 있습니다. Console, gcloud 명령어 또는 Compute Engine API 메서드를 사용하여 스냅샷 일정을 변경하세요.

분리된 스냅샷 일정에서 생성된 스냅샷은 신규 정책에서 관리되지 않습니다. 이러한 스냅샷은 삭제될 때까지 무기한 보관됩니다.

Console

  1. Google Cloud Console에서 디스크 페이지로 이동합니다.

    디스크 페이지로 이동

  2. 연결 해제하려는 일정이 있는 디스크를 선택합니다.
  3. 페이지 상단의 수정을 클릭합니다.
  4. 스냅샷 일정 드롭다운 메뉴를 엽니다.
  5. 일정 없음을 클릭하여 디스크에서 일정을 연결 해제합니다.
  6. 새 일정을 만들거나 디스크 옵션을 수정하는 동안 일정을 바꿀 수 있습니다.
  7. 저장을 클릭하여 작업을 완료합니다.

gcloud

disks remove-resource-policies gcloud 명령어를 사용하여 변경하려는 일정이 있는 디스크에서 스냅샷 일정을 연결 해제합니다.

gcloud compute disks remove-resource-policies [DISK_NAME] \
    --resource-policies [SCHEDULE_NAME] \
    --region [REGION] \
    --zone [ZONE]

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

  • [DISK_NAME]은 스냅샷 일정이 연결된 디스크의 이름입니다.
  • [SCHEDULE_NAME]은 디스크에서 연결 해제하려는 스냅샷 일정의 이름입니다.
  • [REGION]은 스냅샷 일정이 있는 곳입니다.
  • [ZONE]은 영역 디스크가 있는 영역입니다.

그런 다음, disks add-resource-policies 명령어를 사용하여 디스크에 업데이트된 스냅샷 일정을 추가합니다.

 gcloud compute disks add-resource-policies [DISK_NAME] \
     --resource-policies [SCHEDULE_NAME] \
     --zone [ZONE]

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

  • [DISK_NAME]은 스냅샷 일정 리소스 정책이 있는 디스크의 이름입니다.
  • [SCHEDULE_NAME]은 디스크에 추가하려는 스냅샷 일정의 이름입니다.
  • [ZONE]은 디스크가 있는 영역입니다.

API

디스크에서 일정을 연결 해제하려면 disks.removeResourcePolicies에 대한 POST 요청을 작성합니다.

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

{
  "resourcePolicies": [
    "regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
  ]
}

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [ZONE]은 디스크가 있는 영역입니다.
  • [DISK_NAME]은 연결된 스냅샷 일정이 있는 디스크의 이름입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.
  • [SCHEDULE_NAME]은 디스크에서 삭제하려는 스냅샷 일정의 이름입니다.

API에서 스냅샷 일정을 기존 디스크에 연결하려면 disks.addResourcePolicies에 대한 POST 요청을 작성합니다.

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

{
  "resourcePolicies": [
    "regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
  ]
}

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [ZONE]은 디스크의 위치입니다.
  • [DISK_NAME]은 디스크 이름입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.
  • [SCHEDULE_NAME]은 이 디스크에 적용할 해당 리전의 스냅샷 일정의 이름입니다.

스냅샷 일정 삭제

스냅샷 일정을 삭제하면 스냅샷 일정과 관련된 모든 자동 생성 스냅샷이 무기한 유지됩니다. 그러나 일정을 삭제하면 더 이상 스냅샷을 생성할 수 없습니다.

보관 정책은 스냅샷 일정의 일부입니다. 일정이 삭제되면 보관 정책이 더 이상 적용되지 않습니다. 이미 생성된 스냅샷은 수동으로 삭제할 때까지 무기한 유지됩니다.

기존 스냅샷 일정을 삭제하려면 Google Cloud Console, gcloud 명령 줄 도구 또는 Compute Engine API 메서드를 사용합니다. 일정이 이미 디스크에 연결되어 있는 경우 먼저 디스크에서 일정을 연결 해제한 다음 일정을 삭제하세요. 디스크에 연결된 스냅샷 일정은 삭제할 수 없습니다.

Console

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

    스냅샷 페이지로 이동

  2. 스냅샷 일정을 선택하여 일정 목록을 표시합니다.
  3. 디스크에 연결되지 않은 일정을 선택합니다.
  4. 페이지 상단에 있는 삭제를 클릭합니다.

gcloud

지정된 스냅샷 일정을 삭제하려면 resource-policies deletegcloud 명령어를 사용합니다.

gcloud compute resource-policies delete [SCHEDULE_NAME] \
    --region [REGION]

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

  • [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.

API

스냅샷 일정을 삭제하려면 resourcepolicies.delete에 대한 요청을 수행합니다. 스냅샷 일정이 이미 특정 디스크에 연결되어 있으면 오류가 발생합니다.

DELETE https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]

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

  • [PROJECT_ID]는 프로젝트 이름입니다.
  • [REGION]은 스냅샷 일정의 위치입니다.
  • [SCHEDULE_NAME]은 스냅샷 일정의 이름입니다.

로깅 및 모니터링

디스크에 연결된 모든 스냅샷 일정은 시스템 이벤트를 계속해서 생성하며 시스템 이벤트는 항상 모니터링 및 로깅됩니다. 시스템 이벤트 감사 로그는 항상 사용 설정되어 있습니다.

이러한 로그는 연결된 디스크 각각에 대한 예약된 스냅샷의 행동 정보를 제공합니다. Console의 Cloud Logging 메뉴에서 로그를 볼 수 있습니다.

  1. Cloud Console에서 로그 뷰어 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 감사를 받은 리소스 드롭다운 목록에서 디스크를 가리키고 All disk_id(모든 disk_id)를 선택합니다.

  3. All logs(모든 로그) 드롭다운 목록에서 cloudaudit.googleapis.com/system_event를 선택하고 확인을 클릭합니다.

  4. 모든 로그 수준 드롭다운 목록에서 로그 유형을 선택합니다.

로그 뷰어 UI

예약된 스냅샷에 대한 알림 설정

커스텀 측정항목을 만들어 예약된 스냅샷 관련 문제를 해결하기 위해 알림을 생성하거나 필요한 정보를 제공할 수 있습니다.

예를 들어 예약된 스냅샷 오류에 대한 경고를 설정하려면 다음 프로시져를 사용합니다.

  1. 로그 필터 만들기를 실행하여 예약된 스냅샷 이벤트를 캡처합니다.
  2. 예약된 스냅샷 실패를 계산하는 로그 필터를 기반으로 측정항목 만들기를 실행합니다.
  3. 예약된 스냅샷 오류가 발생할 때 알림을 전송하려면 알림 정책 만들기를 실행합니다.

로그 필터 만들기

  1. Cloud Console에서 Cloud Logging > 로그 뷰어 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 라벨 또는 텍스트 검색 기준 필터링 목록에서 고급 필터로 전환을 선택합니다.

    고급 필터로 전환

  3. 필터 텍스트 상자를 다음 텍스트로 바꾸고 project-id를 프로젝트 ID로 바꿉니다.

    resource.type="gce_disk"
    logName="projects/project-id/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="ScheduledSnapshots"
    severity>"INFO"
    
  4. 필터 제출을 클릭합니다.

측정항목 만들기

  1. 로그 뷰어의 페이지 상단에서 측정항목 만들기를 클릭합니다.

  2. 측정항목 편집기에서 다음을 입력합니다.

    • 이름: scheduled_snapshot_failure_count.
    • 설명: count of scheduled snapshot failures.
    • 유형: Counter
  3. 라벨에서 항목 추가를 클릭하고 다음을 입력합니다.

    • 이름: status
    • 설명: status of scheduled snapshot request
    • 라벨 유형: String
    • 필드 이름: protoPayload.response.status
  4. 완료를 클릭합니다.

  5. 측정항목 만들기를 클릭합니다.

알림 정책 만들기

  1. Cloud Console에서 Cloud Logging > 로그 기반 측정항목 페이지로 이동합니다.

    로그 기반 측정항목 페이지로 이동

  2. 사용자 정의 측정항목에서 user/scheduled_snapshot_failure_count라는 이름의 새 측정항목을 찾습니다.

  3. 이 행에서 더보기 메뉴 버튼을 클릭하고 측정항목에서 알림 만들기를 선택합니다. 알림 정책 조건 생성 페이지가 열립니다.

    사용자 정의 측정항목.

  4. 타겟 패널의 애그리게이터에서 없음을 선택합니다.

  5. 필터에서

    1. 필터 추가를 클릭합니다.
    2. 목록에서 상태를 선택합니다.
    3. 필드에 DONE을 입력합니다.
    4. 적용을 클릭합니다.

      알림 필터 상태입니다.

  6. 고급 옵션 표시를 클릭합니다.

  7. 고급 집계 창에서 정렬기 목록을 클릭하고 합계를 선택합니다.

  8. 구성 패널에서 다음 값들을 선택합니다.

    • 다음과 같은 경우에 조건 트리거: Any time series violates
    • 조건: is above
    • 기준: 1
    • 대상: most recent value

      구성 패널.

  9. 저장을 클릭합니다.

  10. 새 알림 정책 만들기 페이지에서 정책 이름을 입력합니다. 선택적으로 이 정책에 대한 알림 채널 및 문서를 추가할 수 있습니다.

  11. 저장을 클릭합니다.

다음 단계