Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cloud Composer 2에서는 환경을 만들 때 커스텀 Cloud Storage 버킷을 환경의 버킷으로 지정할 수 있습니다. 사용자 환경은 이 버킷을 기본 환경의 버킷과 동일한 방식으로 사용하며, 기본 환경의 버킷은 생성되지 않습니다.
커스텀 버킷을 사용하면 다음을 수행할 수 있습니다.
- 요구사항을 준수하는 버킷 구성을 사용합니다.
- 주기적인 개발 또는 테스트 목적으로 지속적으로 존재하는 버킷을 사용합니다.
- 이전 환경의 기존 버킷을 재사용하고 CI/CD 및 데이터 통합을 유지합니다.
- 버킷 간에 데이터를 전송하지 않고도 환경을 삭제하고 다시 만들 수 있습니다.
- 커스텀 버킷에 DAG 파일과 같은 필수 데이터를 자동 입력한 다음 환경을 만듭니다.
시작하기 전에
- 이 기능은 Cloud Composer 버전 2.5.0부터 지원됩니다. 이전 버전의 Cloud Composer 2는 이 기능을 지원하지 않습니다.
- 커스텀 버킷은 환경과 동일한 리전에 있어야 합니다. 멀티 리전 및 이중 리전 버킷은 지원되지 않습니다.
- 커스텀 버킷과 환경이 동일한 프로젝트에 있어야 합니다.
- 커스텀 버킷에는 Standard Storage 클래스가 있어야 합니다.
- 커스텀 버킷에 보관 정책 또는 보관 정책 잠금이 적용되지 않아야 합니다.
- 여러 환경에서 동시에 동일한 커스텀 버킷을 사용할 수 없습니다. 지정된 버킷이 이미 다른 환경에서 사용 중인 경우 Cloud Composer에서 오류가 발생합니다. 환경을 삭제한 후 다른 환경에 동일한 버킷을 사용할 수 있습니다.
- 환경을 삭제한 후 다른 환경에 동일한 버킷을 사용하면 새 환경에 Airflow UI의 이전 환경의 Airflow 태스크 로그가 표시되지 않습니다. 로그는 버킷에 남아 있지만 새 환경에서는 로그를 DAG 실행과 연결하지 않습니다.
커스텀 버킷으로 환경 만들기
콘솔
환경을 만들 때 커스텀 Cloud Storage 버킷을 지정하려면 다음 안내를 따르세요.
- 환경 만들기 페이지의 고급 구성 섹션에서 고급 구성 표시를 클릭합니다.
- 커스텀 버킷을 선택합니다.
- 버킷 이름 필드에서 버킷을 지정하거나 선택합니다.
gcloud
환경을 만들 때 --storage-bucket
인수는 환경의 커스텀 버킷을 지정합니다.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--storage-bucket CUSTOM_STORAGE_BUCKET
다음을 바꿉니다.
ENVIRONMENT_NAME
: 환경의 이름LOCATION
: 환경이 위치한 리전CUSTOM_STORAGE_BUCKET
: Cloud Storage 버킷의 이름 버킷 URI를 지정할 수도 있습니다(gs://
프리픽스 포함).
예를 들면 다음과 같습니다.
gcloud composer environments create example-environment \
--location us-cental1 \
--storage-bucket us-central1-example-bucket
API
환경을 만들 때 환경 > StorageConfig 리소스에서 환경의 커스텀 버킷을 지정합니다.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"storageConfig": {
"bucket": "CUSTOM_STORAGE_BUCKET"
}
}
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.LOCATION
: 환경이 위치한 리전입니다.ENVIRONMENT_NAME
: 환경의 이름입니다.CUSTOM_STORAGE_BUCKET
: Cloud Storage 버킷의 이름입니다(gs://
프리픽스 제외).
예를 들면 다음과 같습니다.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"storageConfig": {
"bucket": "us-central1-example-bucket"
}
}
Terraform
환경을 만들 때 storage_config
블록의 bucket
필드는 환경의 커스텀 버킷을 지정합니다.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
storage_config {
bucket = CUSTOM_STORAGE_BUCKET
}
}
다음을 바꿉니다.
ENVIRONMENT_NAME
: 환경의 이름LOCATION
: 환경이 위치한 리전CUSTOM_STORAGE_BUCKET
: Cloud Storage 버킷의 이름 버킷 URI를 지정할 수도 있습니다(gs://
프리픽스 포함).
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
storage_config {
bucket = "gs://us-central1-example-bucket"
}
}