Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 Cloud Composer 환경의 아키텍처를 설명합니다.
환경 아키텍처 구성
Cloud Composer 3 환경에는 네트워킹 유형에 의존하지 않는 단일 구성이 있습니다.
고객 및 테넌트 프로젝트
환경을 만들 때 Cloud Composer는 테넌트와 고객 프로젝트 사이에 환경 리소스를 배포합니다.
- 고객 프로젝트는 환경을 만드는 Google Cloud 프로젝트입니다. 단일 고객 프로젝트에서 2개 이상의 환경을 만들 수 있습니다.
테넌트 프로젝트는 Google에서 관리되는 테넌트 프로젝트입니다. 테넌트 프로젝트는 해당 환경에 통합된 액세스 제어 및 추가적인 데이터 보안 레이어를 제공합니다. 각 Cloud Composer 환경에는 고유 테넌트 프로젝트가 포함됩니다.
환경 구성요소
Cloud Composer 환경은 환경 구성요소로 구성됩니다.
환경 구성요소는 환경의 일부로 Google Cloud에서 실행되는 관리형 Airflow 인프라의 요소입니다. 환경 구성요소는 해당 환경의 테넌트 고객 프로젝트에서 실행됩니다.
환경 버킷
환경 버킷은 DAG, 플러그인, 데이터 종속 항목 및 Airflow 로그를 저장하는 Cloud Storage 버킷입니다. 환경 버킷은 고객 프로젝트에 있습니다.
환경 버킷의 /dags
폴더에 DAG 파일을 업로드하면 Cloud Composer가 해당 환경의 Airflow 구성요소에 DAG를 동기화합니다.
Airflow 웹 서버
Airflow 웹 서버는 환경의 Airflow UI를 실행합니다.
Cloud Composer는 사용자에 대해 정의된 사용자 ID 및 IAM 정책 바인딩을 기반으로 인터페이스에 대한 액세스 권한을 제공합니다.
Airflow 데이터베이스
Airflow 데이터베이스는 해당 환경의 테넌트 프로젝트에서 실행되는 Cloud SQL 인스턴스입니다. 이 데이터베이스는 Airflow 메타데이터 데이터베이스를 호스팅합니다.
Cloud Composer는 환경의 서비스 계정에만 데이터베이스 액세스를 허용하여 민감한 연결 및 워크플로 정보를 보호합니다.
기타 Airflow 구성요소
사용자 환경에서 실행되는 다른 Airflow 구성요소는 다음과 같습니다.
Airflow 스케줄러는 DAG 정의 파일을 파싱하고 일정 간격에 따라 DAG 실행을 예약하고 Airflow 작업자의 실행을 위해 태스크를 큐에 추가합니다.
Airflow 트리거는 환경에서 모든 지연된 태스크를 비동기식으로 모니터링합니다. 환경의 트리거 수를 0 이상으로 설정하는 경우 DAG에서 지연 가능한 연산자를 사용할 수 있습니다.
Airflow DAG 프로세서는 DAG 파일을 처리하고 DAG 객체로 변환합니다. Cloud Composer 3에서 DAG 프로세서는 별도의 환경 구성요소로 실행됩니다.
Airflow 작업자는 Airflow 스케줄러에서 예약된 태스크를 실행합니다. 환경의 최소 및 최대 작업자 수는 큐의 태스크 수에 따라 동적으로 변경됩니다.
Cloud Composer 3 환경 아키텍처
Cloud Composer 3 환경:
- 테넌트 프로젝트는 Airflow 데이터베이스를 사용하여 Cloud SQL 인스턴스를 호스팅합니다.
- 모든 Airflow 리소스는 테넌트 프로젝트에서 실행됩니다.
- 고객 프로젝트는 환경의 버킷을 호스팅합니다.
- 고객 프로젝트의 커스텀 VPC 네트워크 연결을 사용하여 환경을 커스텀 VPC 네트워크에 연결할 수 있습니다. 기존 연결을 사용하거나 Cloud Composer가 요청 시 자동으로 연결을 만들 수 있습니다. VPC 네트워크에서 환경을 분리할 수도 있습니다.
- 고객 프로젝트의 Google Cloud 콘솔, Monitoring, Logging은 환경, DAG 및 DAG 실행을 관리하고 환경의 측정항목 및 로그에 액세스하기 위한 방법을 제공합니다. Airflow UI, Google Cloud CLI, Cloud Composer API, Terraform을 동일한 목적으로 사용할 수도 있습니다.
Cloud Logging 및 Cloud Monitoring과의 통합
Cloud Composer는 Google Cloud 프로젝트의 Cloud Logging 및 Cloud Monitoring과 통합되므로 Airflow 및 DAG 로그를 중앙에서 볼 수 있습니다.
Cloud Monitoring은 Cloud Composer에서 측정항목, 이벤트, 메타데이터를 수집하여 대시보드와 차트를 통해 통계를 생성합니다.
Cloud Logging의 스트리밍 특성으로 인해 환경의 Cloud Storage 버킷에 Airflow 로그가 나타날 때까지 기다리는 대신 Airflow 구성요소에서 내보낸 로그를 즉시 볼 수 있습니다.
Google Cloud 프로젝트의 로그 수를 제한하려면 모든 로그 수집을 중지하면 됩니다. Logging을 중지하지 마세요.