유지보수 기간 지정

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

이 페이지에서는 환경 유지보수 기간을 정의하는 방법을 설명합니다.

유지보수 기간 정보

유지보수 기간은 Cloud Composer가 유지보수 작업을 수행하도록 허용하는 기간입니다. 예를 들어 DAG 일정 시간 이외의 유지보수 기간을 지정하여 중요한 태스크 실행이 중단되지 않게 할 수 있습니다.

유지보수 기간을 사용하면 사용자 환경에 유지보수가 수행되는 기간을 제어할 수 있습니다.

  • 환경의 커스텀 유지보수 기간을 정의하면 Cloud Composer가 정의된 기간 동안 유지보수를 수행합니다.

  • 환경에 커스텀 유지보수 기간을 정의하지 않거나 빈 값을 지정하면 Cloud Composer에서 기본 유지보수 기간 동안 유지보수를 수행합니다.

유지보수 기간 중 발생 사항

유지보수 기간을 지정할 때는 일주일 동안 최소 12시간의 유지보수 작업 시간을 제공합니다.

  • 유지보수 기간 중에도 환경을 계속 사용할 수 있습니다. 유지보수 작업이 진행되면 환경의 일부 구성요소를 일시적으로 사용하지 못할 수 있습니다.

  • Cloud Composer가 모든 유지보수 작업을 예약하고 수행하는 데 필요한 시간을 충분히 확보하려면 12시간이 필요합니다. 그렇다고 해서 유지보수 작업이 12시간 내내 이루어지거나 매주 진행된다는 의미는 아닙니다.

일부 태스크가 중단되고 재시도될 수 있는 한 유지보수 기간 동안 DAG를 계속 실행할 수 있습니다. 유지보수 기간 중에 DAG를 실행하는 경우 태스크 재시도를 사용 설정해야 합니다. Airflow 구성, DAG 또는 태스크 수준에서 태스크 재시도를 구성할 수 있습니다.

유지보수 작업은 환경에 다음과 같은 영향을 미칩니다.

  • Airflow UI를 일시적으로 사용하지 못할 수 있습니다.

  • 업그레이드가 가능한 경우 Cloud Composer에서 자동 인프라 업그레이드 작업을 수행할 수 있습니다.

  • 일부 환경 매개변수를 일시적으로 변경하지 못할 수 있습니다.

  • 일부 Airflow 태스크가 중단될 수 있습니다. 유지보수 작업이 완료되면 Airflow가 이러한 태스크에 대한 재시도를 예약합니다(별도로 구성되지 않은 경우).

기본 유지보수 기간

Cloud Composer 3의 기본 유지보수 기간은 다음과 같은 방식으로 정의됩니다.

  • 모든 시간은 환경이 위치한 리전의 현지 시간대이지만 일광 절약 시간은 무시됩니다.
  • 화요일, 수요일, 목요일, 금요일 유지보수 기간은 00:00:00~02:00:00입니다.
  • 토요일, 일요일, 월요일 유지보수 기간은 00:00:00~04:00:00입니다.

유지보수 기간 사용 방법

유지보수 작업이 DAG 및 Airflow 태스크 실행에 영향을 미칠 수 있으므로 다음을 수행하는 것이 좋습니다.

  1. Cloud Composer 환경의 유지보수 기간을 정의하세요.

  2. DAG에서 start_dateschedule_interval 매개변수를 사용하여 지정된 유지보수 기간 외에 DAG가 실행되도록 예약하세요.

새 환경 유지보수 기간 지정

환경을 만들 때 유지보수 기간을 지정할 수 있습니다. 자세한 내용은 환경 만들기를 참조하세요.

기존 환경 유지보수 기간 지정

콘솔

기존 환경의 유지보수 기간을 정의하거나 변경하려면 환경을 업데이트하세요.

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

    환경으로 이동

  2. 환경을 선택합니다.

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

  4. 유지보수 기간 항목 옆에 있는 수정을 클릭합니다.

  5. 유지보수 기간 대화상자에서 유지보수 기간에 커스텀 시간 설정 체크박스를 선택합니다.

  6. 시작 시간, 시간대, , 길이를 설정하여 지정한 일정의 총 기간이 7일 순환 기간 동안 최소 12시간이 되도록 합니다. 예를 들어 매주 월요일, 수요일, 금요일마다 4시간이면 필요한 시간을 제공합니다.

  7. 저장을 클릭하고 환경이 업데이트될 때까지 기다립니다.

gcloud

환경을 업데이트할 때 다음 인수들이 유지보수 기간 매개변수를 정의합니다.

  • --maintenance-window-start는 유지보수 기간의 시작 시간을 설정합니다.
  • --maintenance-window-end는 유지보수 기간의 종료 시간을 설정합니다.
  • --maintenance-window-recurrence유지보수 기간 반복을 설정합니다.
gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • DATETIME_START날짜/시간 입력 형식의 시작 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다.
  • DATETIME_END날짜/시간 입력 형식의 종료 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다. 지정한 날짜와 시간은 시작일 이후여야 합니다.
  • MAINTENANCE_RECURRENCE를 유지보수 기간 반복을 위한 RFC 5545 RRULE로 바꿉니다. Cloud Composer는 다음 두 가지 형식을 지원합니다.

  • FREQ=DAILY 형식은 일일 반복을 지정합니다.

  • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 형식은 선택한 요일의 반복을 지정합니다.

다음 예시에서는 수요일, 토요일, 일요일 01:00~07:00(UTC) 사이에서 유지보수 기간 6시간을 지정합니다. 2023년 1월 1일 날짜는 무시됩니다.

gcloud composer environments update example-environment \
  --location us-central1 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

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

  2. 이 요청의 작성 방법:

    1. updateMask 매개변수에서 config.maintenanceWindow 마스크를 지정합니다.

    2. 요청 본문에서 유지보수 기간 매개변수를 지정합니다.

{
  "config": {
    "maintenanceWindow": {
      "startTime": "DATETIME_START",
      "endTime": "DATETIME_END",
      "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

다음과 같이 바꿉니다.

  • DATETIME_START날짜/시간 입력 형식의 시작 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다.
  • DATETIME_END날짜/시간 입력 형식의 종료 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다. 지정한 날짜와 시간은 시작일 이후여야 합니다.
  • MAINTENANCE_RECURRENCE를 유지보수 기간 반복을 위한 RFC 5545 RRULE로 바꿉니다. Cloud Composer는 다음 두 가지 형식을 지원합니다.

    • FREQ=DAILY 형식은 일일 반복을 지정합니다.
    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 형식은 선택한 요일의 반복을 지정합니다.

다음 예시에서는 수요일, 토요일, 일요일 01:00~07:00(UTC) 사이에서 유지보수 기간 6시간을 지정합니다. 2023년 1월 1일 날짜는 무시됩니다.

  // PATCH https://composer.googleapis.com/v1/projects/example-project/
  // locations/us-central1/environments/example-environment?updateMask=
  // config.maintenanceWindow

  {
    "config": {
      "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
      }
    }
  }

Terraform

maintenance_window 블록은 환경의 유지보수 기간을 지정합니다.

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

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.
  • DATETIME_START날짜/시간 입력 형식의 시작 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다.
  • DATETIME_END날짜/시간 입력 형식의 종료 날짜 및 시간으로 바꿉니다. 지정한 시간만 사용되며 날짜는 무시됩니다. 지정한 날짜와 시간은 시작일 이후여야 합니다.
  • MAINTENANCE_RECURRENCE를 유지보수 기간 반복을 위한 RFC 5545 RRULE로 바꿉니다. Cloud Composer는 다음 두 가지 형식을 지원합니다.

    • FREQ=DAILY 형식은 일일 반복을 지정합니다.
    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 형식은 선택한 요일의 반복을 지정합니다.

다음 예시에서는 수요일, 토요일, 일요일 01:00~07:00(UTC) 사이에서 유지보수 기간 6시간을 지정합니다. 2023년 1월 1일 날짜는 무시됩니다.

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

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

다음 단계