복원력이 우수한 환경 설정

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

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

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

예를 들어 영역 서비스 중단은 특정 영역에서 실행되는 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로 설정되며 환경 클러스터에서 영역 간에 작업자 인스턴스를 분산합니다. 영역 서비스 중단이 발생하면 영향을 받는 작업자 인스턴스가 다른 영역에서 다시 예약됩니다.

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

시작하기 전에

  • 복원력이 우수한 환경은 비공개 IP 환경에서만 사용할 수 있습니다.

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

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

  • 표준 환경을 복원력이 우수한 환경으로 업데이트하려면 다음 구성 요구사항을 충족하는지 확인합니다. 환경이 이러한 요구사항을 충족하지 않으면 확장 및 성능 매개변수를 업데이트할 수 있습니다.

    • 최소 Airflow 작업자 수는 2개 이상입니다.
    • Airflow 스케줄러 수는 정확히 2개입니다.
    • DAG에서 지연 가능한 연산자를 사용하는 경우 트리거가 최소 2개 이상 있습니다.

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

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

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

콘솔

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

    환경으로 이동

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

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

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

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

gcloud

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

다음을 바꿉니다.

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

API

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

  2. 이 요청의 작성 방법:

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

    2. 요청 본문에서 HIGH_RESILIENCE를 지정하여 높은 복원력 모드로 전환합니다.

예를 들면 다음과 같습니다.

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

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

Terraform

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

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

다음을 바꿉니다.

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

예를 들면 다음과 같습니다.

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

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

  2. 이 요청의 작성 방법:

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

    2. 요청 본문에서 RESILIENCE_MODE_UNSPECIFIED를 지정하여 표준 복원력 모드로 전환합니다.

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?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"

  }
}

다음을 바꿉니다.

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

예를 들면 다음과 같습니다.

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: 환경이 위치한 리전

다음 단계