커스텀 환경 버킷 사용

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 버킷을 지정하려면 다음 안내를 따르세요.

  1. 환경 만들기 페이지의 고급 구성 섹션에서 고급 구성 표시를 클릭합니다.
  2. 커스텀 버킷을 선택합니다.
  3. 버킷 이름 필드에서 버킷을 지정하거나 선택합니다.

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"

  }
}

다음 단계