환경을 만들 때 Cloud Composer는 테넌트와 고객 프로젝트 사이에 환경 리소스를 배포합니다.
고객 프로젝트는 환경을 만드는 Google Cloud 프로젝트입니다. 단일 고객 프로젝트에서 2개 이상의 환경을 만들 수 있습니다.
테넌트 프로젝트는 Google에서 관리하는 테넌트 프로젝트이며 Google.com 조직에 속합니다. 테넌트 프로젝트는 해당 환경에 통합된 액세스 제어 및 추가적인 데이터 보안 레이어를 제공합니다. 각 Cloud Composer 환경에는 자체 테넌트 프로젝트가 있습니다.
환경 구성요소
Cloud Composer 환경은 환경 구성요소로 구성됩니다.
환경 구성요소는 환경의 일부로 Google Cloud에서 실행되는 관리형 Airflow 인프라의 요소입니다. 환경 구성요소는 해당 환경의 테넌트 고객 프로젝트에서 실행됩니다.
환경 버킷
환경 버킷은 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 작업자의 실행을 위해 태스크를 큐에 추가합니다.
Airflow 트리거는 환경에서 지연된 모든 태스크를 비동기식으로 모니터링합니다. 환경의 트리거 수를 0 이상으로 설정하는 경우 DAG에서 지연 가능한 연산자를 사용할 수 있습니다.
Airflow DAG 프로세서는 DAG 파일을 처리하고 DAG 객체로 변환합니다.
Cloud Composer 3에서는 DAG 프로세서가 별도의 환경 구성요소로 실행됩니다.
Airflow 작업자는 Airflow 스케줄러에서 예약된 태스크를 실행합니다.
환경의 최소 및 최대 작업자 수는 큐의 태스크 수에 따라 동적으로 변경됩니다.
Cloud Composer 3 환경 아키텍처
그림 1. Cloud Composer 3 환경 아키텍처(확대하려면 클릭)
Cloud Composer 3 환경에서는 다음이 적용됩니다.
테넌트 프로젝트는 Airflow 데이터베이스가 있는 Cloud SQL 인스턴스를 호스팅합니다.
모든 Airflow 리소스는 테넌트 프로젝트에서 실행됩니다.
고객 프로젝트는 환경의 버킷을 호스팅합니다.
고객 프로젝트의 커스텀 VPC 네트워크 연결을 사용하여 환경을 커스텀 VPC 네트워크에 연결할 수 있습니다. 기존 연결을 사용하거나 Cloud Composer에서 요청 시 자동으로 연결을 만들 수 있습니다. VPC 네트워크에서 환경을 분리할 수도 있습니다.
Google Cloud 콘솔, 고객 프로젝트의 모니터링 및 로깅은 환경, DAG, DAG 실행을 관리하고 환경의 측정항목과 로그에 액세스하는 방법을 제공합니다. Airflow UI, Google Cloud CLI, Cloud Composer API, Terraform을 같은 목적으로 사용할 수도 있습니다.
복원력이 우수한 Cloud Composer 3 환경에서는 다음이 적용됩니다.
환경의 Cloud SQL 인스턴스는 고가용성으로 구성됩니다 (리전 인스턴스). 리전 인스턴스 내에서의 구성은 기본 인스턴스와 대기 인스턴스로 이루어집니다.
환경에서 다음 Airflow 구성요소를 별도의 영역에서 실행합니다.
Airflow 스케줄러 2개
웹 서버 2개
DAG 프로세서 2개 이상 (총 10개까지)
트리거를 사용하는 경우 트리거가 최소 2개 (최대 10개)
최소 작업자 수는 2로 설정되며 환경 클러스터에서 영역 간에 작업자 인스턴스를 분산합니다. 영역 서비스 중단이 발생하면 영향을 받는 작업자 인스턴스가 다른 영역에서 다시 예약됩니다.
Cloud Logging 및 Cloud Monitoring과의 통합
Cloud Composer는 Google Cloud 프로젝트의 Cloud Logging 및 Cloud Monitoring과 통합되므로 Airflow 및 DAG 로그를 중앙에서 볼 수 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-03(UTC)"],[[["\u003cp\u003eCloud Composer 3 environments distribute resources between a customer project, where environments are created, and a Google-managed tenant project, which provides access control and data security.\u003c/p\u003e\n"],["\u003cp\u003eAn environment's bucket, located in the customer project, stores DAGs, plugins, data dependencies, and Airflow logs, and synchronizes uploaded DAGs with the environment's Airflow components.\u003c/p\u003e\n"],["\u003cp\u003eAirflow components, including the web server, schedulers, triggerers, DAG processors, and workers, run within the tenant project in Cloud Composer 3, with the Airflow database hosted in a Cloud SQL instance within the same tenant project.\u003c/p\u003e\n"],["\u003cp\u003eCloud Composer 3 integrates with Cloud Logging and Cloud Monitoring in the customer project to centralize Airflow and DAG logs and provide insights through dashboards and charts.\u003c/p\u003e\n"],["\u003cp\u003eThe customer project in Cloud Composer 3 hosts the environment's bucket and provides access to manage the environment through Google Cloud Console, Monitoring, and Logging, while also allowing the attachment of a custom VPC network for the environment.\u003c/p\u003e\n"]]],[],null,["# Environment architecture\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\n**Cloud Composer 3** \\| [Cloud Composer 2](/composer/docs/composer-2/environment-architecture \"View this page for Cloud Composer 2\") \\| [Cloud Composer 1](/composer/docs/composer-1/environment-architecture \"View this page for Cloud Composer 1\")\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nThis page describes the architecture of Cloud Composer environments.\n\nEnvironment architecture configurations\n---------------------------------------\n\nCloud Composer 3 environments have a single configuration that doesn't\ndepend on the networking type:\n\n- [Cloud Composer 3 architecture](#composer-3-architecture)\n\nCustomer and tenant projects\n----------------------------\n\nWhen you create an environment, Cloud Composer distributes the\nenvironment's resources between a tenant and a customer project:\n\n- *Customer project* is a Google Cloud project where you create your\n environments. You can create more than one environment in a single customer\n project.\n\n- *Tenant project* is a Google-managed [tenant project](/service-infrastructure/docs/glossary#tenant) and\n belongs to the Google.com organization. The tenant project provides unified\n access control and an additional layer of data security to your\n environment. Each Cloud Composer environment has its own tenant\n project.\n\nEnvironment components\n----------------------\n\nA Cloud Composer environment consists of environment components.\n\nAn *environment component* is an element of a managed Airflow infrastructure\nthat runs on Google Cloud, as a part of your environment. Environment\ncomponents run either in the tenant or in the customer project of\nyour environment.\n\n### Environment's bucket\n\n*Environment's bucket* is a [Cloud Storage bucket](/composer/docs/composer-3/cloud-storage)\nthat stores DAGs, plugins, data dependencies, and Airflow logs. Environment's\nbucket is located in the customer project.\n\nWhen you [upload your DAG files](/composer/docs/composer-3/manage-dags) to the `/dags` folder in your\nenvironment's bucket, Cloud Composer synchronizes the DAGs to Airflow components of your environment.\n\n### Airflow web server\n\n*Airflow web server* runs the Airflow UI of your environment.\n\nCloud Composer provides access to the interface based on user\nidentities and IAM policy bindings defined for users.\n\n\n### Airflow database\n\n*Airflow database* is a [Cloud SQL instance](/sql/docs/introduction)\nthat runs in the tenant project of your environment. It hosts the Airflow\nmetadata database.\n\nTo protect sensitive connection and workflow information,\nCloud Composer allows database access only to\nthe [service account](/composer/docs/composer-3/access-control#service-account) of your environment.\n\n### Other airflow components\n\nOther Airflow components that run in your environment are:\n\n- *Airflow schedulers* parse DAG definition files, schedule DAG runs\n based on the schedule interval, and queues tasks for execution by\n Airflow workers.\n\n- *Airflow triggerers* asynchronously monitor all deferred tasks in your\n environment. If you set the number of triggerers in your environment above\n zero, then you can use\n [deferrable operators in your DAGs](/composer/docs/composer-3/use-deferrable-operators).\n\n- *Airflow DAG processors* process DAG files and turns them into\n DAG objects.\n In Cloud Composer 3, DAG processors run as separate environment\n components.\n\n- *Airflow workers* execute tasks that are scheduled by Airflow\n schedulers.\n\n The minimum and maximum number of workers in your environment changes\n dynamically depending on the number of tasks in the queue.\n\nCloud Composer 3 environment architecture\n-----------------------------------------\n\n[](/static/composer/docs/images/composer-3-architecture.png) **Figure 1.** Cloud Composer 3 environment architecture (click to enlarge)\n\nIn Cloud Composer 3 environments:\n\n- The tenant project hosts a Cloud SQL instance with the Airflow database.\n- All Airflow resources run in the tenant project.\n- The customer project hosts the environment's bucket.\n- A custom VPC network attachment in the customer project can be used to attach the environment to a custom VPC network. You can use an existing attachment or Cloud Composer can create it automatically on demand. It is also possible to detach an environment from a VPC network.\n- Google Cloud console, Monitoring, and Logging in the customer project provide ways to manage the environment, DAGs and DAG runs, and to access environment's metrics and logs. You can also use Airflow UI, Google Cloud CLI, Cloud Composer API and Terraform for the same purposes.\n\nIn highly-resilient Cloud Composer 3 environments:\n\n- The Cloud SQL instance of your environment is configured for high\n availability (is a regional instance). Within a regional instance, the\n configuration is made up of a primary instance and a standby instance.\n\n- Your environment runs the following Airflow components in separate zones:\n\n - Two Airflow schedulers\n - Two web servers\n - At least two DAG processors (up to 10 total)\n - If triggerers are used, at least two triggerers (up to 10 total)\n\n - The minimum number of workers is set to two, and your environment's cluster\n distributes worker instances between zones. In case of a zonal outage,\n affected worker instances are rescheduled in a different zone.\n\nIntegration with Cloud Logging and Cloud Monitoring\n---------------------------------------------------\n\nCloud Composer integrates with Cloud Logging and\nCloud Monitoring of your Google Cloud project, so that you have a\ncentral place to view [Airflow and DAG logs](/composer/docs/composer-3/view-logs).\n\nCloud Monitoring collects and ingests metrics, events, and metadata\nfrom Cloud Composer to\n[generate insights through dashboards and charts](/composer/docs/composer-3/monitor-environments).\n\nBecause of the streaming nature of Cloud Logging, you can view logs emitted by Airflow components immediately instead of waiting for Airflow logs to appear in the Cloud Storage bucket of your environment.\n\nTo limit the number of logs in your Google Cloud project,\nyou can [stop all logs ingestion](/logging/docs/exclusions#stop-logs). Do not\ndisable Logging.\n\nWhat's next\n-----------\n\n- [Create an environment](/composer/docs/composer-3/create-environments)\n- [Versioning overview](/composer/docs/composer-versioning-overview)"]]