복원력이 우수한 Cloud Composer 환경 설정

Cloud Composer 1 | Cloud Composer 2

이 페이지에서는 복원력이 우수한 Cloud Composer 환경을 설정하는 방법을 설명합니다.

Cloud Composer의 영역 장애에 대한 복원력 정보

복원력이 우수한 Cloud Composer 환경은 기본 제공되는 중복성 및 장애 조치 메커니즘을 사용하여 영역 장애와 단일 장애점 서비스 중단에 대한 환경 민감성을 줄이는 Cloud Composer 2 환경입니다.

예를 들어 영역 서비스 중단은 특정 영역에서 실행되는 Airflow 태스크를 중단합니다. 그런 다음 복원력이 우수한 환경이 복구되고 다른 영역에서 영향을 받는 구성요소를 다시 시작하며 데이터베이스를 보조 영역으로 전환합니다. 따라서 실패한 Airflow 태스크를 재예약하고 Airflow에서 다시 시작할 수 있으며 동시에 DAG 실행과 기타 설정 기록을 보존할 수 있습니다.

복원력이 우수한 환경은 선택한 리전의 최소 두 개 이상의 영역에서 실행됩니다. Cloud Composer는 영역 간에 환경 구성요소를 자동으로 배포합니다.

중요한 비즈니스 프로세스에 복원력이 우수한 Cloud Composer 환경을 사용할 수 있습니다.

환경의 고가용성 데이터베이스 정보

가용성이 높은 Cloud Composer 환경에서 환경의 데이터베이스를 저장하는 Cloud SQL 인스턴스는 고가용성 모드로 실행됩니다. 고가용성을 위해 구성된 Cloud SQL 인스턴스는 리전 인스턴스라고도 하며 구성된 리전 내의 기본 및 보조 영역에 배치됩니다. 리전 인스턴스 내에서의 구성은 기본 인스턴스와 대기 인스턴스로 이루어집니다.

서비스 중단이 발생하면 환경의 Cloud SQL 인스턴스가 대기 Cloud SQL 인스턴스로 자동 데이터베이스 장애 조치를 수행합니다. Cloud Composer 환경에서는 추가 작업을 수행할 필요가 없습니다. 기본 영역이 다시 작동하면 환경이 두 영역(기본 및 보조)을 사용하도록 다시 전환됩니다. 경우에 따라 기본 영역과 보조 영역을 바꿀 수 있습니다. 고가용성 모드의 Cloud SQL 인스턴스는 장애 조치 후 동일한 IP 주소를 사용합니다.

가용성이 높은 Airflow 구성요소 정보

가용성이 높은 Cloud Composer 환경은 영역 간에 분산된 Airflow 구성요소를 실행합니다.

환경은 트리거가 사용 설정된 경우 항상 정확히 Airflow 스케줄러 2개, 웹 서버 2개, 트리거 2개 이상(10개 이하)을 실행합니다. 이러한 구성요소 쌍은 별도의 영역에서 실행됩니다. 최소 작업자 수가 2로 설정되고 환경 클러스터가 영역 간에 작업자 인스턴스를 분산합니다. 영역별 서비스 중단이 발생하면 영향을 받는 작업자 인스턴스가 다른 영역에서 다시 예약됩니다.

복원력이 높은 환경의 아키텍처에 대한 자세한 내용은 복원력이 우수한 환경 아키텍처를 참조하세요.

시작하기 전에

  • 복원력이 우수한 환경은 Cloud Composer 버전 2.2.0 이상에서 사용할 수 있습니다.

  • 복원력이 우수한 환경은 Cloud Composer 2가 포함된 비공개 IP 환경에서만 제공됩니다.

  • 복원력이 우수한 Cloud Composer 환경은 일반 환경과 비교할 때 증분 비용으로 제공됩니다.

  • 표준 환경을 복원력이 우수한 환경으로 업데이트하려면 해당 환경이 다음 구성을 충족하는지 확인합니다.

    • 최소 2개 이상으로 설정된 Airflow 작업 수
    • 정확히 2개의 Airflow 스케줄러
    • DAG에서 지연 가능한 연산자를 사용해야 하는 경우 트리거가 최소 2개(10개 이하)입니다.

    환경이 이러한 요구사항을 충족하지 않으면 해당 설정을 먼저 업데이트할 수 있습니다. 환경 확장을 참조하세요.

복원력이 우수한 Cloud Composer 환경 만들기

복원력이 우수한 환경을 만들려면 환경을 만들 때 복원력이 우수한 모드를 사용 설정합니다.

표준 환경을 복원력이 우수한 모드로 업데이트

콘솔

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

    환경으로 이동

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

  3. 환경 구성 탭을 선택합니다.

  4. 복원 모드 섹션에서 수정을 클릭합니다.

  5. 높은 복원력을 선택하고 저장을 클릭합니다.

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-high-resilience

다음을 바꿉니다.

  • ENVIRONMENT_NAME: Cloud Composer 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전입니다.

API

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

  • URL에서 updateMask=config.resilienceMode 쿼리 문자열을 사용하여 요청으로 업데이트된 필드를 표시합니다.

  • 요청 본문에서 JSON 파일을 사용해서 resilienceMode 필드를 Environment 리소스의 HIGH_RESILIENCE로 설정합니다.

예:

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?updateMask=config.resilienceMode

{
 "config": {
   "resilience_mode": { "HIGH_RESILIENCE" }
   }
 }

Terraform

`config 블록에서 resilience_mode 필드를 설정하면 높은 복원력 모드가 사용 설정됩니다.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

예:

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

복원력이 우수한 환경을 표준 복원력 모드로 변경

언제든지 환경을 표준 복원력 모드로 변경할 수 있습니다. 이 작업은 다음을 수행합니다.

  • 환경의 웹 서버 수를 1로 줄입니다.
  • 해당 환경의 Airflow 데이터베이스의 고가용성 모드를 해제합니다.
  • Airflow 작업자, 스케줄러, 트리거의 최소 개수에 대한 설정을 변경하지 않습니다.

콘솔

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

    환경으로 이동

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

  3. 환경 구성 탭을 선택합니다.

  4. 복원 모드 섹션에서 수정을 클릭합니다.

  5. 표준 복원력(기본값)을 선택하고 저장을 클릭합니다.

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-high-resilience

다음을 바꿉니다.

  • ENVIRONMENT_NAME: Cloud Composer 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전입니다.

API

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

  • URL에서 updateMask=config.resilienceMode 쿼리 문자열을 사용하여 요청으로 업데이트된 필드를 표시합니다.

  • 요청 본문에서 JSON 파일을 사용해서 resilienceMode 필드를 Environment 리소스의 RESILIENCE_MODE_UNSPECIFIED로 설정합니다.

예:

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?updateMask=config.resilienceMode

{
 "config": {
   "resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
   }
 }

Terraform

config 블록의 resilience_mode 필드는 복원력 모드를 지정합니다. 표준 복원력 모드를 사용하려면 이 값을 STANDARD_RESILIENCE로 설정합니다.

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

예:

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

환경이 높은 복원력 모드로 실행되는지 확인합니다.

콘솔

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

    환경으로 이동

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

  3. 환경 구성 탭을 선택합니다.

  4. 복원 모드 섹션에서 환경의 복원력 모드를 확인합니다.

gcloud

환경에서 높은 복원력 모드가 사용 설정되었는지 확인하려면 다음 Google Cloud CLI 명령어를 실행합니다. True 값은 해당 환경에서 높은 복원력 모드가 사용 설정되었음을 의미합니다.

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.resilienceMode)"

다음을 바꿉니다.

  • ENVIRONMENT_NAME: Cloud Composer 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전입니다.

다음 단계