Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 Airflow와 DAG를 간략하게 소개하고 Cloud Composer의 기능을 설명합니다.
Cloud Composer 출시 버전의 새로운 기능에 대한 자세한 내용은 출시 노트를 참조하세요.
Cloud Composer 정보
Cloud Composer는 클라우드 및 온프레미스 데이터 센터 전체의 워크플로 파이프라인을 생성, 예약, 모니터링, 관리할 수 있는 완전 관리형 워크플로 조정 서비스입니다.
Cloud Composer는 인기 있는 Apache Airflow 오픈소스 프로젝트를 기반으로 구축되어 Python 프로그래밍 언어로 작동합니다.
Apache Airflow의 로컬 인스턴스 대신 Cloud Composer를 사용하면 설치 또는 관리 오버헤드 없이 Airflow의 이점을 얻을 수 있습니다. Cloud Composer는 관리형 Airflow 환경을 신속하게 만들고 강력한 Airflow 웹 인터페이스 및 명령줄 도구와 같은 Airflow 전용 도구를 사용하여 인프라가 아닌 워크플로에 집중할 수 있도록 합니다.
Cloud Composer 버전 간의 차이점
Cloud Composer의 주 버전 간 차이점에 대한 자세한 내용은 Cloud Composer 버전 관리 개요를 참조하세요.
Airflow 및 Airflow DAG(워크플로)
데이터 분석에서 워크플로는 데이터 수집, 변환, 분석, 활용을 위한 일련의 태스크를 나타냅니다. Airflow에서 워크플로는 DAG(또는 Directed Acyclic Graph)를 사용하여 생성됩니다.
DAG는 관계 및 종속 항목을 반영하는 방식으로 구성된 예약하고 실행하려는 태스크의 모음입니다. DAG는 코드를 사용하여 DAG 구조를 정의하는 Python 파일에서 생성됩니다. DAG의 목적은 각 태스크가 적절한 시점에 올바른 순서로 실행되도록 하는 것입니다.
DAG의 각 태스크는 거의 모든 것을 나타낼 수 있습니다. 예를 들어 한 태스크는 다음 기능을 수행할 수 있습니다.
- 수집을 위한 데이터 준비
- API 모니터링
- 이메일 보내기
- 파이프라인 실행
일정에 따라 DAG를 실행하는 것 외에도 Cloud Storage 버킷 변경사항과 같은 이벤트에 대한 응답으로 또는 수동으로 DAG를 트리거할 수 있습니다. 자세한 내용은 DAG 트리거를 참조하세요.
DAG 및 태스크에 대한 자세한 내용은 Apache Airflow 문서를 참조하세요.
Cloud Composer 환경
Cloud Composer 환경은 Google Kubernetes Engine에 기반을 둔 독립 실행형 Airflow 배포입니다. Airflow에 기본 제공되는 커넥터를 사용하여 다른 Google Cloud 서비스와 함께 작동합니다. 모든 지원되는 리전의 단일 Google Cloud 프로젝트에서 환경을 한 개 이상 만들 수 있습니다.
Cloud Composer는 워크플로 및 모든 Airflow 구성요소를 실행하는 Google Cloud 서비스를 프로비저닝합니다. 환경의 주요 구성요소는 다음과 같습니다.
GKE 클러스터: Airflow 스케줄러, 트리거, 작업자와 같은 Airflow 구성요소는 환경을 위해 생성된 단일 클러스터에서 GKE 워크로드로 실행되며 처리 및 DAG 실행을 담당합니다.
이 클러스터는 또한 Composer Agent 및 Airflow Monitoring과 같은 다른 Cloud Composer 구성요소를 호스팅하여 Cloud Composer 환경 관리를 돕고, Cloud Logging에 저장할 로그를 수집하고, Cloud Monitoring에 업로드할 측정항목을 수집합니다.
Airflow 웹 서버: 웹 서버는 Apache Airflow UI를 실행합니다.
Airflow 데이터베이스: 데이터베이스에는 Apache Airflow 메타데이터가 저장됩니다.
Cloud Storage 버킷: Cloud Composer는 Cloud Storage 버킷과 환경을 연결합니다. 환경 버킷이라고도 하는 이 버킷은 DAG, 로그, 커스텀 플러그인 및 환경에 대한 데이터를 저장합니다. 환경 버킷에 대한 자세한 내용은 Cloud Storage에 저장된 데이터를 참조하세요.
환경의 구성요소를 자세히 살펴보려면 환경 아키텍처를 참조하세요.
Cloud Composer 인터페이스
Cloud Composer는 환경, 환경 내에서 실행되는 Airflow 인스턴스, 개별 DAG를 관리하기 위한 인터페이스를 제공합니다.
예를 들어 Google Cloud 콘솔, Google Cloud CLI, Cloud Composer API 또는 Terraform에서 Cloud Composer 환경을 만들고 구성할 수 있습니다.
또 다른 예로 Google Cloud 콘솔, 기본 Airflow UI에서 또는 Google Cloud CLI 및 Airflow CLI 명령어를 실행하여 DAG를 관리할 수 있습니다.
Cloud Composer의 Airflow 기능
Cloud Composer를 사용할 때는 다음과 같은 Airflow 기능을 관리하고 사용할 수 있습니다.
Airflow DAG: Google Cloud 콘솔에서 또는 기본 Airflow UI를 사용하여 Airflow DAG를 추가, 업데이트, 삭제 또는 트리거할 수 있습니다.
Airflow 구성 옵션: Airflow 구성 옵션을 Cloud Composer에 사용되는 기본값에서 커스텀 값으로 변경할 수 있습니다. Cloud Composer에서 일부 구성 옵션은 차단되어 있으며, 해당 값을 변경할 수 없습니다.
커스텀 플러그인: 커스텀, 사내 Apache Airflow 연산자, 후크, 센서 또는 인터페이스와 같은 커스텀 Airflow 플러그인을 Cloud Composer 환경에 설치할 수 있습니다.
Python 종속 항목: 환경에 있는 Python 패키지 색인에서 또는 Artifact Registry 저장소를 포함한 비공개 패키지 저장소에서 Python 종속 항목을 설치할 수 있습니다. 종속 항목이 패키지 색인에 없으면 플러그인을 사용할 수도 있습니다.
DAG, Airflow 구성요소, Cloud Composer 환경의 로깅 및 모니터링:
Airflow 웹 인터페이스에서 단일 DAG 태스크와 연결된 Airflow 로그와 환경의 버킷에 있는
logs
폴더를 볼 수 있습니다.Cloud Composer 환경의 Cloud Monitoring 로그 및 환경 측정항목
Cloud Composer의 액세스 제어
Google Cloud 프로젝트 수준에서 보안을 관리하고 개별 사용자가 환경을 수정하거나 만들 수 있도록 IAM 역할을 할당할 수 있습니다. 프로젝트에 액세스할 수 없거나 적절한 Cloud Composer IAM 역할이 할당되지 않은 사용자는 해당 환경에 액세스할 수 없습니다.
IAM 외에도 Apache Airflow 액세스 제어 모델을 기반으로 하는 Airflow UI 액세스 제어를 사용할 수 있습니다.
Cloud Composer의 보안 기능에 대한 자세한 내용은 Cloud Composer 보안 개요를 참조하세요.
환경 네트워킹
Cloud Composer는 환경의 여러 네트워킹 구성을 다양한 구성 옵션과 함께 지원합니다. 예를 들어 비공개 IP 환경에서 DAG 및 Airflow 구성요소는 공개 인터넷으로부터 완전히 격리됩니다.
Cloud Composer의 네트워킹에 대한 자세한 내용은 개별 네트워킹 기능 페이지를 참조하세요.
Cloud Composer의 기타 기능
기타 Cloud Composer 기능은 다음과 같습니다.
자주 묻는 질문(FAQ)
Cloud Composer가 사용하는 Apache Airflow 버전은 무엇인가요?
Cloud Composer 환경은 Cloud Composer 이미지를 기반으로 합니다. 환경을 만들 때 특정 Airflow 버전이 포함된 이미지를 선택할 수 있습니다.
- Cloud Composer 3은 Airflow 2를 지원합니다.
- Cloud Composer 2는 Airflow 2를 지원합니다.
- Cloud Composer 1은 Airflow 1 및 Airflow 2를 지원합니다.
환경의 Apache Airflow 버전을 제어할 수 있습니다. Cloud Composer 이미지의 최신 버전으로 환경을 업그레이드하도록 지정할 수 있습니다. 각 Cloud Composer 출시 버전은 여러 Apache Airflow 버전을 지원합니다.
기본 Airflow UI와 CLI를 사용할 수 있나요?
환경의 Apache Airflow 웹 인터페이스에 액세스할 수 있습니다. 환경마다 고유한 Airflow UI가 있습니다. Airflow UI에 액세스하는 방법에 대한 자세한 내용은 Airflow 웹 인터페이스를 참조하세요.
환경에서 Airflow CLI 명령어를 실행하려면 gcloud
명령어를 사용합니다.
Cloud Composer 환경에서 Airflow CLI 명령어를 실행하는 방법에 대한 자세한 내용은 Airflow 명령줄 인터페이스를 참조하세요.
자체 데이터베이스를 Airflow 데이터베이스로 사용할 수 있나요?
Cloud Composer는 Airflow 데이터베이스에 대해 관리형 데이터베이스 서비스를 사용합니다. 사용자 제공 데이터베이스를 Airflow 데이터베이스로 사용하는 것은 불가능합니다.
자체 클러스터를 Cloud Composer 클러스터로 사용할 수 있나요?
Cloud Composer는 Google Kubernetes Engine 서비스를 사용해서 Airflow 구성요소가 실행되는 환경 클러스터를 만들고, 관리, 삭제할 수 있습니다. 이러한 클러스터는 Cloud Composer에서 완전히 관리됩니다.
자체 관리형 Google Kubernetes Engine 클러스터를 기반으로 Cloud Composer 환경을 빌드할 수는 없습니다.
자체 Container Registry를 사용할 수 있나요?
Cloud Composer는 Artifact Registry 서비스를 사용하여 Cloud Composer 환경에서 사용되는 컨테이너 이미지 저장소를 관리합니다. 이를 사용자가 제공한 Container Registry로 바꿀 수는 없습니다.
Cloud Composer 환경이 영역 또는 리전에 해당하나요?
Cloud Composer 3 및 Cloud Composer 2 환경에는 영역별 Airflow 데이터베이스와 리전별 Airflow 예약 및 실행 레이어가 있습니다. Airflow 스케줄러, 작업자, 웹 서버는 Airflow 실행 레이어에서 실행됩니다.
Cloud Composer 1 환경은 영역에 해당합니다.