예약된 스냅샷 구성

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

이 페이지에서는 예약에 따라 스냅샷을 저장하도록 환경을 구성하는 방법을 설명합니다.

환경 스냅샷의 작동 방법과 스냅샷을 수동으로 저장하는 방법은 스냅샷 저장 및 로드를 참조하세요.

예약된 스냅샷 작동 방법

예약된 스냅샷을 사용 설정하면 Cloud Composer가 해당 환경의 스냅샷을 Cloud Storage 버킷에 주기적으로 저장합니다.

스냅샷을 수동으로 만들면 Cloud Composer가 기본적으로 해당 환경의 버킷에 스냅샷을 저장합니다. 예약된 스냅샷의 경우에는 개별 버킷에 스냅샷을 저장하는 것이 좋습니다. 이 방식으로 이 버킷에 대해 권한 및 수명 주기 구성을 설정할 수 있습니다. 하나의 버킷으로 여러 환경의 스냅샷을 저장할 수 있고 리전 간에 중복되는 버킷을 만들 수도 있습니다.

시작하기 전에

  • 스냅샷 요구사항 및 제한사항에 대한 자세한 내용은 스냅샷 저장 및 로드를 참조하세요.

  • Cloud Composer는 2.0.32 이상 버전에서 예약된 스냅샷을 지원합니다. 환경 스냅샷은 2.0.9 이상 버전에서 지원됩니다.

예약된 스냅샷의 버킷 만들기

예약된 스냅샷의 버킷을 만듭니다. 환경 스냅샷을 사용할 방법을 고려합니다. 재해 복구 계획의 일부인 경우 리전 간 중복되는 버킷 또는 다른 리전의 버킷을 사용하면 전체 리전 중단이 발생하더라도 데이터에 액세스할 수 있습니다. 그렇지 않으면 해당 환경과 동일한 리전의 버킷이 더 적합할 수 있고, 이 경우 리전 간 데이터 전송 비용이 줄어듭니다.

버킷에 대한 권한 구성

다음 권한을 구성합니다.

  • 환경의 서비스 계정에 이 버킷에 대한 읽기 및 쓰기 권한이 있어야 합니다. 예를 들어 스토리지 객체 관리자 역할에 그러한 권한이 포함되어 있습니다.

  • Google Cloud Console에서 버킷 콘텐츠를 보려는 경우가 아니면 버킷이 스냅샷을 로드하기 위해 사용자 계정에 추가 권한이 필요하지 않습니다. 이 경우에는 사용자 계정에 버킷에 대해 읽기 권한이 있어야 합니다.

버킷의 수명 주기 구성 설정

스토리지 비용을 절약하기 위해서는 일정 기간 후 환경 스냅샷을 삭제하는 규칙을 구성할 수 있습니다.

예를 들어 다음과 같이 30일이 지난 스냅샷을 자동으로 삭제할 수 있습니다.

  1. 버킷에 대해 수명 주기 구성을 설정합니다.
  2. 객체 삭제 작업을 지정합니다.
  3. 기간을 선택하고 30일을 조건으로 지정합니다.

환경에 대한 스냅샷 일정 사용 설정

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 복구 구성 > 스냅샷 일정에서 수정을 클릭합니다. 스냅샷 일정 창이 열립니다.

  5. 스냅샷 일정 창에서 지정된 일정에 따라 주기적으로 스냅샷 생성을 선택합니다.

  6. 일정 빈도 드롭다운 목록에서 스냅샷에 대해 매일, 매주, 커스텀 기간을 선택합니다.

    unix-cron format으로 커스텀 일정을 지정할 수 있습니다. 예를 들어 30분 간격으로 스냅샷을 저장하려면 */30 * * * *을 지정합니다.

  7. 스냅샷 위치 필드에서 스냅샷을 저장하려는 버킷 폴더를 선택합니다.

gcloud

환경 구성을 업데이트합니다. 다음 인수는 예약된 스냅샷의 매개변수를 정의합니다.

  • --enable-scheduled-snapshot-creation은 예약된 스냅샷을 사용 설정합니다.
  • --snapshot-location은 스냅샷을 저장하려는 버킷 폴더를 지정합니다.
  • --snapshot-creation-scheduleunix-cron 형식으로 환경 스냅샷을 사용할 빈도를 지정합니다. 예를 들어 30분 간격으로 스냅샷을 만들려면 */30 * * * *을 지정합니다.

  • --snapshot-schedule-timezone은 일정의 시간대를 정의합니다. 이 값은 타임스탬프이고 일광 절약 시간에 따른 변경사항을 고려하지 않습니다. 유효한 값은 UTC-12부터 UTC+12까지입니다. 예시: UTC, UTC-01, UTC+03.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://SNAPSHOTS_FOLDER" \
    --snapshot-creation-schedule "CRON_EXPRESSION" \
    --snapshot-schedule-timezone "TIME_ZONE"

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.
  • SNAPSHOTS_FOLDER를 스냅샷을 저장할 버킷 폴더의 URI로 바꿉니다.
  • CRON_EXPRESSIONunix-cron 형식의 일정으로 바꿉니다.
  • TIME_ZONE을 일정의 시간대로 바꿉니다.

예시(매일 4시, UTC+01):

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://example-bucket/environment_snapshots" \
    --snapshot-creation-schedule "0 4 * * *" \
    --snapshot-schedule-timezone "UTC+01"

API

environments.patch API 요청을 생성합니다.

이 요청의 작성 방법:

  1. updateMask 매개변수에서 기존 예약된 스냅샷 구성을 바꾸도록 config.recoveryConfig.scheduledSnapshotsConfig 마스크를 지정합니다.

  2. 요청 본문에서 스냅샷에 대한 구성을 지정합니다.

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": true,
            "snapshot_location": "gs://SNAPSHOTS_FOLDER",
            "snapshot_creation_schedule": "CRON_EXPRESSION",
            "time_zone": "TIME_ZONE"
          }
        }
      }
    }
    

    다음과 같이 바꿉니다.

    • SNAPSHOTS_FOLDER를 스냅샷을 저장할 버킷 폴더의 URI로 바꿉니다.
    • CRON_EXPRESSIONunix-cron 형식의 일정으로 바꿉니다.

    • TIME_ZONE을 일정의 시간대로 바꿉니다. 이 값은 타임스탬프이고 일광 절약 시간에 따른 변경사항을 고려하지 않습니다. 유효한 값은 UTC-12부터 UTC+12까지입니다. 예시: UTC, UTC-01, UTC+03.

    예시(매일 4시, UTC+01):

      // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
      // locations/us-central1/environments/example-environment?updateMask=
      // config.recoveryConfig.scheduledSnapshotsConfig
        {
          "config": {
            "recoveryConfig": {
              "scheduledSnapshotsConfig": {
                "enabled": true,
                "snapshot_location": "gs://example-bucket/environment_snapshots",
                "snapshot_creation_schedule": "0 4 * * *",
                "time_zone": "UTC+01"
              }
            }
          }
        }
    

Terraform

recovery_config 블록의 scheduled_snapshots_config는 예약된 스냅샷의 매개변수를 정의합니다.

  • enabled는 예약된 스냅샷을 사용 설정합니다.
  • snapshot_location은 스냅샷을 저장하려는 버킷 폴더를 지정합니다.
  • snapshot_creation_scheduleunix-cron 형식으로 환경 스냅샷을 사용할 빈도를 지정합니다. 예를 들어 30분 간격으로 스냅샷을 만들려면 */30 * * * *을 지정합니다.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://SNAPSHOTS_FOLDER"
      snapshot_creation_schedule = "CRON_EXPRESSION"
      time_zone = "TIME_ZONE"
    }
  }
}

다음과 같이 바꿉니다.

  • SNAPSHOTS_FOLDER를 스냅샷을 저장할 버킷 폴더의 URI로 바꿉니다.
  • CRON_EXPRESSIONunix-cron 형식의 일정으로 바꿉니다.

  • TIME_ZONE을 일정의 시간대로 바꿉니다. 이 값은 타임스탬프이고 일광 절약 시간에 따른 변경사항을 고려하지 않습니다. 유효한 값은 UTC-12부터 UTC+12까지입니다. 예시: UTC, UTC-01, UTC+03.

예시(매일 4시, UTC+01):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://example-bucket/environment_snapshots"
      snapshot_creation_schedule = "0 4 * * *"
      time_zone = "UTC+01"
    }
  }
}

예약된 스냅샷 사용 중지

예약된 스냅샷을 사용 중지할 경우 이미 수행된 모든 기존 스냅샷은 수정되거나 삭제되지 않습니다. 이렇나 스냅샷은 저장된 위치에 보관됩니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 복구 구성 > 스냅샷 일정에서 수정을 클릭합니다. 스냅샷 일정 창이 열립니다.

  5. 스냅샷 일정 창에서 스냅샷 자동 생성 안함을 선택합니다.

gcloud

환경 구성을 업데이트합니다. --disable-scheduled-snapshot-creation 인수는 예약된 스냅샷을 사용 중지합니다.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-scheduled-snapshot-creation

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.

예:

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --disable-scheduled-snapshot-creation

API

environments.patch API 요청을 생성합니다.

이 요청의 작성 방법:

  1. updateMask 매개변수에서 enabled 필드 값을 바꾸도록 config.recoveryConfig.scheduledSnapshotsConfig.enabled 마스크를 지정합니다.

  2. 요청 본문에서 새 값을 지정합니다.

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": false
          }
        }
      }
    }
    

예:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
  "recoveryConfig": {
    "scheduledSnapshotsConfig": {
      "enabled": false
    }
  }
}
}

Terraform

예약된 스냅샷을 사용 중지하려면 scheduled_snapshots_config 블록의 enabled 필드를 false로 설정합니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
    }
  }
}

예:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
      // Other scheduled snapshots parameters
    }
  }
}

다음 단계