Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 환경을 업데이트하는 방법을 설명합니다.
업데이트 작업 정보
새로운 확장 및 성능 매개변수 지정 또는 커스텀 PyPI 패키지 설치와 같이 환경 매개변수를 변경하면 환경이 업데이트됩니다.
이 작업이 완료된 후 변경사항이 환경에 제공됩니다.
단일 Cloud Composer 환경에서는 한 번에 하나만 업데이트 작업을 시작할 수 있습니다. 다른 환경 작업을 시작하려면 업데이트 작업이 완료될 때까지 기다려야 합니다.
트리거 CPU 한도
버전 2.4.4의 Cloud Composer는 모든 Cloud Composer 2 버전에 적용되는 Airflow 트리거 구성요소에 대한 다른 성능 확장 방식을 도입합니다.
버전 2.4.4 이전에는 Cloud Composer 환경에서 트리거를 최대 1~2개까지 사용할 수 있었습니다. 변경 후에는 환경당 트리거를 최대 10개까지 포함할 수 있지만 트리거마다 vCPU는 최대 1개로 제한됩니다.
환경이 트리거당 vCPU 2개 이상으로 구성된 경우 환경 업데이트 작업이 실패합니다. 다른 구성요소에서 업데이트를 수행하려면 vCPU 1개 제한이 충족되도록 구성을 조정해야 합니다.
자세한 내용은 다음을 참고하세요.
업데이트가 Airflow 태스크 실행에 미치는 영향
업데이트 작업을 실행하면 환경의 Airflow 스케줄러 및 작업자를 다시 시작해야 할 수 있습니다. 이 경우 현재 실행 중인 모든 태스크가 종료됩니다. 업데이트 작업이 완료되면 Airflow가 DAG에 대한 재시도를 구성하는 방법에 따라 이러한 태스크를 재시도하도록 예약합니다.
다음과 같은 변경사항은 Airflow 태스크 종료를 유발합니다.
- 환경을 새 버전으로 업그레이드
- 커스텀 PyPI 패키지 추가, 변경 또는 삭제
- Cloud Composer 환경 변수 변경
- Airflow 구성 옵션 재정의를 추가, 삭제 또는 해당 값 변경
- Airflow 작업자의 CPU, 메모리 또는 스토리지 변경
- 새 값이 현재 실행 중인 작업자 수보다 낮으면 최대 Airflow 작업자 수 감소. 예를 들어 환경에서 현재 3명의 작업자를 실행하고 최댓값이 2로 감소하는 경우입니다.
- 환경의 복원력 모드 변경
다음 변경사항으로 인해 Airflow 태스크가 종료되지 않습니다.
- DAG 생성, 업데이트 또는 삭제(업데이트 작업 아님)
- DAG 일시중지 또는 재개(업데이트 작업 아님)
- Airflow 변수 변경(업데이트 작업 아님)
- Airflow 연결 변경(업데이트 작업 아님)
- Dataplex 데이터 계보 통합 사용 설정 또는 사용 중지
- 환경 크기 변경
- 스케줄러 수 변경
- Airflow 스케줄러의 CPU, 메모리 또는 스토리지 변경
- 트리거 수 변경
- Airflow 트리거의 CPU, 메모리 또는 스토리지 변경
- Airflow 웹 서버의 CPU, 메모리 또는 스토리지 변경
- 최소 작업자 수 증가 또는 감소
- 최대 Airflow 작업자 수를 줄입니다. 예를 들어 환경에서 현재 2명의 작업자를 실행하고 최댓값이 3으로 감소하는 경우입니다.
- 유지보수 기간 변경
- 예약된 스냅샷 설정 변경
- 환경 라벨 변경
Terraform을 사용한 업데이트
Terraform이 업데이트 대신 새 환경을 만드는지 확인하려면 terraform apply
전에 terraform plan
을 실행합니다.
시작하기 전에
계정, 환경의 서비스 계정, 프로젝트의 Cloud Composer 서비스 에이전트 계정에 필요한 권한이 있는지 확인합니다.
계정에 환경 업데이트 작업을 트리거 가능한 역할이 있어야 합니다.
환경의 서비스 계정에는 업데이트 작업을 수행할 수 있는 충분한 권한이 있는 역할이 있어야 합니다.
Cloud Composer 서비스 에이전트 계정에는 환경의 서비스 계정과 환경 클러스터의 Kubernetes 서비스 계정 간에 바인딩을 만들 수 있는 권한이 있어야 합니다.
작업이 완료되면
gcloud composer environments update
명령어가 종료됩니다. 작업이 완료될 때까지 기다리지 않으려면--async
플래그를 사용하면 됩니다.
환경 업데이트
환경 업데이트에 대한 자세한 내용은 특정 업데이트 작업에 대한 다른 문서 페이지를 참조하세요. 예를 들면 다음과 같습니다.
환경 세부정보 보기
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
gcloud
다음 gcloud
명령어를 실행합니다.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.
API
environments.get
API 요청을 생성합니다.
예를 들면 다음과 같습니다.
GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment
Terraform
환경 리소스에 대해 terraform state show
명령어를 실행합니다.
환경의 Terraform 리소스 이름은 해당 환경의 이름과 다를 수 있습니다.
terraform state show google_composer_environment.RESOURCE_NAME
다음과 같이 바꿉니다.
RESOURCE_NAME
을 환경의 리소스 이름으로 바꿉니다.
업데이트 변경사항 롤백
드물지만 시간 초과 등으로 인해 업데이트 작업이 중단되고 Airflow 웹 서버와 같이 모든 환경 구성요소에서 요청된 변경사항이 롤백될 수 있습니다.
예를 들어 업데이트 작업에 따라 추가 PyPI 모듈을 설치 또는 제거하거나, 새로운 Airflow 또는 Cloud Composer 환경 변수를 다시 정의 또는 정의하거나, 일부 Airflow 관련 매개변수를 변경할 수 있습니다.
이러한 상황은 Cloud Composer 클러스터의 자동 확장 또는 유지보수 작업과 같은 다른 작업이 진행 중일 때 업데이트 작업이 트리거된 경우에 발생할 수 있습니다.
이러한 경우에는 작업을 반복하는 것이 좋습니다.
업데이트 또는 업그레이드 작업 기간
대부분의 업데이트 또는 업그레이드 작업에서는 Airflow 스케줄러, 작업자, 웹 서버와 같은 Airflow 구성요소를 다시 시작해야 합니다.
구성요소가 다시 시작된 경우 이를 초기화해야 합니다. 초기화 중에 Airflow 스케줄러와 작업자는 환경 버킷에서 /dags
및 /plugins
폴더 콘텐츠를 다운로드합니다. Airflow 스케줄러와 작업자에 파일을 동기화하는 프로세스는 즉시 수행되지 않으며 이러한 폴더에 있는 모든 객체의 총 크기와 개수에 따라 달라집니다.
각각 /dags
및 /plugins
폴더에 있는 DAG 및 플러그인 파일만 유지하고 다른 모든 파일은 삭제하는 것이 좋습니다. /dags
및 /plugins
폴더에 데이터가 너무 많으면 Airflow 구성요소 초기화가 느려지고 일부 경우에 초기화가 불가능해질 수 있습니다.
/dags
및 /plugins
폴더에서 데이터를 30MB 미만으로 유지하고 데이터가 100MB를 초과하지 않도록 하는 것이 좋습니다.
자세한 내용은 다음을 참조하세요.