커스텀 환경 버킷 사용

Managed Airflow (3세대) | Managed Airflow (2세대) | Managed Airflow (기존 1세대)

환경을 만들 때 커스텀 Cloud Storage 버킷을 환경의 버킷으로 지정할 수 있습니다. 사용자 환경은 이 버킷을 기본 환경의 버킷과 동일한 방식으로 사용하며, 기본 환경의 버킷은 생성되지 않습니다.

커스텀 버킷을 사용하면 다음을 수행할 수 있습니다.

  • 요구사항을 준수하는 버킷 구성을 사용합니다.
  • 주기적인 개발 또는 테스트 목적으로 지속적으로 존재하는 버킷을 사용합니다.
  • 이전 환경의 기존 버킷을 재사용하고 CI/CD 및 데이터 통합을 유지합니다.
  • 버킷 간에 데이터를 전송하지 않고도 환경을 삭제하고 다시 만들 수 있습니다.
  • 커스텀 버킷에 DAG 파일과 같은 필수 데이터를 자동 입력한 다음 환경을 만듭니다.

시작하기 전에

  • 커스텀 버킷은 환경과 동일한 리전에 있어야 합니다. 멀티 리전 및 이중 리전 버킷은 지원되지 않습니다.
  • 커스텀 버킷과 환경이 동일한 프로젝트에 있어야 합니다.
  • 커스텀 버킷에는 Standard Storage 클래스가 있어야 합니다.
  • 커스텀 버킷에 보관 정책 또는 보관 정책 잠금 이 적용되지 않아야 합니다.
  • 커스텀 버킷에 계층적 네임스페이스 가 사용 설정되어 있지 않아야 합니다.
  • 여러 환경에서 동시에 동일한 커스텀 버킷을 사용할 수 없습니다. 지정된 버킷이 이미 다른 환경에서 사용 중인 경우 Managed Airflow에서 오류가 발생합니다. 환경을 삭제한 후 다른 환경에 동일한 버킷을 사용할 수 있습니다.

  • 관리형 Airflow는 환경을 만드는 데 사용될 때 Cloud Storage 버킷에 누락된 IAM 권한을 추가하지 않습니다. 환경의 서비스 계정에 버킷에 대한 Composer 작업자 역할의 권한이 있는지 확인합니다.

커스텀 버킷으로 환경 만들기

콘솔

환경을 만들 때 커스텀 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" {
  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" {
  name = "example-environment"
  region = "us-central1"

  storage_config {

    bucket = "gs://us-central1-example-bucket"

  }
}

다음 단계