Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 Cloud Composer 환경 아키텍처를 설명합니다.
환경 아키텍처 구성
Cloud Composer 2 환경에서 가능한 아키텍처 구성은 다음과 같습니다.
고객 및 테넌트 프로젝트
환경을 만들 때 Cloud Composer는 테넌트와 고객 프로젝트 사이에 환경 리소스를 배포합니다.
- 고객 프로젝트는 환경을 만드는 Google Cloud 프로젝트입니다. 단일 고객 프로젝트에서 2개 이상의 환경을 만들 수 있습니다.
테넌트 프로젝트는 Google에서 관리되는 테넌트 프로젝트입니다. 테넌트 프로젝트는 해당 환경에 통합된 액세스 제어 및 추가적인 데이터 보안 레이어를 제공합니다. 각 Cloud Composer 환경에는 고유 테넌트 프로젝트가 포함됩니다.
환경 구성요소
Cloud Composer 환경은 환경 구성요소로 구성됩니다.
환경 구성요소는 환경의 일부로 Google Cloud에서 실행되는 관리형 Airflow 인프라의 요소입니다. 환경 구성요소는 해당 환경의 테넌트 고객 프로젝트에서 실행됩니다.
환경 클러스터
환경 클러스터는 해당 환경에 대한 Autopilot 모드의 VPC 기반 Google Kubernetes Engine 클러스터입니다.
기본적으로 Cloud Composer는 보안 취약점으로로부터 환경 클러스터를 보호하기 위해 노드 자동 업그레이드 및 노드 자동 복구를 사용 설정합니다. 이러한 작업은 환경에 대해 지정한 유지보수 기간에 수행됩니다.
환경 버킷
환경 버킷은 DAG, 플러그인, 데이터 종속 항목 및 Airflow 로그를 저장하는 Cloud Storage 버킷입니다. 환경 버킷은 고객 프로젝트에 있습니다.
환경 버킷의 /dags
폴더에 DAG 파일을 업로드하면 Cloud Composer가 DAG를 해당 환경의 Airflow 구성요소에 동기화합니다.
Airflow 웹 서버
Airflow 웹 서버는 환경의 Airflow UI를 실행합니다.
Cloud Composer는 사용자에 대해 정의된 사용자 ID 및 IAM 정책 바인딩을 기반으로 인터페이스에 대한 액세스 권한을 제공합니다.
Airflow 데이터베이스
Airflow 데이터베이스는 해당 환경의 테넌트 프로젝트에서 실행되는 Cloud SQL 인스턴스입니다. 이 데이터베이스는 Airflow 메타데이터 데이터베이스를 호스팅합니다.
Cloud Composer는 환경의 서비스 계정에만 데이터베이스 액세스를 허용하여 민감한 연결 및 워크플로 정보를 보호합니다.
기타 Airflow 구성요소
환경에서 실행되는 다른 Airflow 구성요소는 다음과 같습니다.
Airflow 스케줄러는 DAG 정의 파일을 파싱하고 일정 간격에 따라 DAG 실행을 예약하고 Airflow 작업자의 실행을 위해 태스크를 큐에 추가합니다. Cloud Composer 2에서 Airflow DAG 프로세서는 스케줄러 구성요소의 일부로 실행됩니다.
Airflow 트리거는 환경에서 지연된 모든 태스크를 비동기식으로 모니터링합니다. 환경의 트리거 수를 0 이상으로 설정하는 경우 DAG에서 지연 가능한 연산자를 사용할 수 있습니다.
Airflow 작업자는 Airflow 스케줄러에서 예약된 태스크를 실행합니다. 환경의 최소 및 최대 작업자 수는 큐의 태스크 수에 따라 동적으로 변경됩니다.
공개 IP 환경 아키텍처
Cloud Composer 2의 공개 IP 환경 아키텍처:
- 테넌트 프로젝트는 Cloud SQL 인스턴스 및 Cloud SQL 스토리지를 호스팅합니다.
- 고객 프로젝트는 해당 환경의 다른 모든 구성요소를 호스팅합니다.
- 고객 프로젝트의 Airflow 스케줄러 및 작업자는 고객 프로젝트에 있는 Cloud SQL 프록시 인스턴스를 통해 Airflow 데이터베이스와 통신합니다.
비공개 IP 환경 아키텍처
기본적으로 Cloud Composer 2는 Private Service Connect를 사용하므로 비공개 IP 환경은 VPC 피어링을 사용하지 않고도 내부적으로 통신합니다. 해당 환경에서 Private Service Connect 대신 VPC 피어링을 사용할 수도 있습니다. 이는 기본값이 아닌 옵션입니다.
비공개 IP 환경 아키텍처에서는 다음과 같습니다.
- 테넌트 프로젝트는 Cloud SQL 인스턴스 및 Cloud SQL 스토리지를 호스팅합니다.
- 고객 프로젝트는 해당 환경의 다른 모든 구성요소를 호스팅합니다.
- Airflow 스케줄러와 작업자는 구성된 PSC 엔드포인트를 통해 Airflow 데이터베이스에 연결합니다.
복원력이 우수한 비공개 IP 아키텍처
복원력이 우수한 Cloud Composer 환경은 기본 제공되는 중복성 및 장애 조치 메커니즘을 사용하여 영역 장애와 단일 장애점 서비스 중단에 대한 환경 민감성을 줄이는 Cloud Composer 2 환경입니다.
이 유형의 비공개 IP 환경에서는 다음을 수행합니다.
- 환경의 Cloud SQL 인스턴스는 고가용성으로 구성됩니다(리전 인스턴스). 리전 인스턴스 내에서의 구성은 기본 인스턴스와 대기 인스턴스로 이루어집니다.
- 환경은 2개의 Airflow 스케줄러, 2개의 웹 서버, 트리거를 사용하는 경우 최소 2개(최대 10개)의 트리거를 실행합니다. 이러한 구성요소 쌍은 두 개의 개별 영역에서 실행됩니다.
- 최소 작업자 수는 2로 설정되며 환경 클러스터에서 영역 간에 작업자 인스턴스를 분산합니다. 영역 서비스 중단이 발생하면 영향을 받는 작업자 인스턴스가 다른 영역에서 다시 예약됩니다.
Cloud Logging 및 Cloud Monitoring과의 통합
Cloud Composer는 Google Cloud 프로젝트의 Cloud Logging 및 Cloud Monitoring과 통합되므로 Airflow 및 DAG 로그를 중앙에서 볼 수 있습니다.
Cloud Monitoring은 Cloud Composer에서 측정항목, 이벤트, 메타데이터를 수집하여 대시보드와 차트를 통해 통계를 생성합니다.
Cloud Logging의 스트리밍 특성으로 인해 Airflow 로그가 사용자 환경의 Cloud Storage 버킷에 나타날 때까지 기다리는 대신 Airflow 구성요소에서 내보낸 로그를 즉시 볼 수 있습니다.
Google Cloud 프로젝트의 로그 수를 제한하려면 모든 로그 수집을 중지하면 됩니다. Logging을 중지하지 마세요.