환경 확장

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

이 페이지에서는 Cloud Composer 환경을 확장하는 방법을 설명합니다.

확장 관련 다른 페이지:

수직 및 수평 확장

수평 확장 옵션:

  • 최소 및 최대 작업자 수를 조정합니다.
  • 스케줄러, DAG 프로세서, 트리거 수를 조정합니다.

수직 확장 옵션:

  • 작업자, 스케줄러, 트리거, DAG 프로세서, 웹 서버 확장, 성능 매개변수를 조정합니다.
  • 환경 크기를 조정합니다.

리소스 한도

구성요소 최소 수 최대 수 최소 vCPU 최대 vCPU vCPU 최소 단계 최소 메모리(GB) 최대 메모리(GB) 메모리 최소 단계(GB) vCPU 1개당 최소 메모리(GB) vCPU 1개당 최대 메모리(GB) 최소 저장용량(GB) 최대 저장용량(GB) 저장용량 최소 단계(GB)
스케줄러 1 3 0.5 1 0.5 0.5 8 0.25 1 8 0 100 1
트리거 0 10 0.5 1 0.5 0.5 8 0.25 1 8 - - -
웹 서버 - - 0.5 32 0.5, 1 또는 2의 배수 1 256 0.25 1 8 0 100 1
작업자 1 100 0.5 32 0.5, 1 또는 2의 배수 1 256 0.25 1 8 0 100 1
DAG 프로세서 1 3 0.5 32 0.5, 1 또는 2의 배수 1 256 0.25 1 8 0 100 1

작업자 매개변수 조정

환경의 최소 및 최대 작업자 수를 설정할 수 있습니다. Cloud Composer는 설정된 한도 내에서 환경을 자동으로 확장합니다. 이 한도는 언제든지 조정할 수 있습니다.

환경에서 Airflow 작업자가 사용하는 CPU, 메모리, 디스크 공간의 크기를 지정할 수 있습니다. 이러한 방식으로 여러 작업자를 사용하여 제공되는 수평 확장 외에도 환경의 성능을 향상시킬 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 워크로드 구성 창에서 Airflow 작업자의 매개변수를 조정합니다.

    • 최소 작업자 수 필드에 환경에서 항상 실행해야 하는 Airflow 작업자 수를 지정합니다. 더 적은 작업자 수로 부하를 처리할 수 있더라도 사용자 환경의 작업자 수는 정상적인 환경 작동 중에 이 수보다 줄어들지 않습니다.

    • 최대 작업자 수 필드에 환경에서 실행할 수 있는 최대 Airflow 작업자 수를 지정합니다. 더 많은 작업자 수로 부하를 처리해야 하는 경우에도 사용자 환경의 작업자 수는 이 수보다 많지 않습니다.

    • CPU, 메모리, 스토리지 필드에서 Airflow 작업자의 CPU, 메모리, 스토리지 수를 지정합니다. 각 작업자는 지정된 양의 리소스를 사용합니다.

  6. 저장을 클릭합니다.

gcloud

다음과 같은 Airflow 작업자 매개변수를 사용할 수 있습니다.

  • --min-workers: 환경에서 항상 실행해야 하는 Airflow 작업자 수입니다. 더 적은 작업자 수로 부하를 처리할 수 있어도 사용자 환경의 작업자 수는 이 수보다 적지 않습니다.
  • --max-workers: 환경에서 실행할 수 있는 최대 Airflow 작업자 수입니다. 더 많은 작업자 수로 부하를 처리해야 하는 경우에도 사용자 환경의 작업자 수는 이 수보다 많지 않습니다.
  • --worker-cpu: Airflow 작업자의 CPU 수입니다.
  • --worker-memory: Airflow 작업자의 메모리 양입니다.
  • --worker-storage: Airflow 작업자의 디스크 공간 크기입니다.

다음 Google Cloud CLI 명령어를 실행합니다.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX \
  --worker-cpu WORKER_CPU \
  --worker-memory WORKER_MEMORY \
  --worker-storage WORKER_STORAGE

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WORKERS_MIN: 최소 Airflow 작업자 수
  • WORKERS_MAX: 최대 Airflow 작업자 수
  • WORKER_CPU: 작업자의 CPU 수(vCPU 단위)
  • WORKER_MEMORY: 작업자의 메모리 양
  • WORKER_STORAGE: 작업자의 디스크 크기

예를 들면 다음과 같습니다.

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6 \
  --worker-cpu 1 \
  --worker-memory 2 \
  --worker-storage 2

API

  1. environments.patch API 요청을 생성합니다.

  2. 이 요청의 작성 방법:

    1. updateMask 매개변수에서 업데이트할 필드를 지정합니다. 예를 들어 작업자의 모든 매개변수를 업데이트하려면 config.workloadsConfig.worker.cpu,config.workloadsConfig.worker.memoryGb,config.workloadsConfig.worker.storageGB,config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount 마스크를 지정합니다.

    2. 요청 본문에서 새 작업자 매개변수를 지정합니다.

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX,
      "cpu": WORKER_CPU,
      "memoryGb": WORKER_MEMORY,
      "storageGb": WORKER_STORAGE
    }
  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WORKERS_MIN: 최소 Airflow 작업자 수
  • WORKERS_MAX: 최대 Airflow 작업자 수
  • WORKER_CPU: 작업자의 CPU 수(vCPU 단위)
  • WORKER_MEMORY: 작업자의 메모리 양(GB)
  • WORKER_STORAGE: 작업자의 디스크 크기(GB)

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.worker.minCount,
// config.workloadsConfig.worker.maxCount
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGB

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6,
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.worker 블록의 다음 필드는 Airflow 작업자 매개변수를 제어합니다. 각 작업자는 지정된 양의 리소스를 사용합니다.

  • worker.min_count: 환경에서 항상 실행해야 하는 Airflow 작업자 수입니다. 더 적은 작업자 수로 부하를 처리할 수 있어도 사용자 환경의 작업자 수는 이 수보다 적지 않습니다.
  • worker.max_count: 환경에서 실행할 수 있는 최대 Airflow 작업자 수입니다. 더 많은 작업자 수로 부하를 처리해야 하는 경우에도 사용자 환경의 작업자 수는 이 수보다 많지 않습니다.
  • worker.cpu: Airflow 작업자의 CPU 수입니다.
  • worker.memory_gb: Airflow 작업자의 메모리 양입니다.
  • worker.storage_gb: Airflow 작업자의 디스크 공간 크기입니다.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WORKERS_MIN: 최소 Airflow 작업자 수
  • WORKERS_MAX: 최대 Airflow 작업자 수
  • WORKER_CPU: 작업자의 CPU 수(vCPU 단위)
  • WORKER_MEMORY: 작업자의 메모리 양(GB)
  • WORKER_STORAGE: 작업자의 디스크 크기(GB)

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
        cpu = 1
        memory_gb = 2
        storage_gb = 2
      }
    }

  }
}

스케줄러 매개변수 조정

환경에서 동시에 2개 이상의 Airflow 스케줄러를 실행할 수 있습니다. 성능 및 안정성을 높이기 위해 여러 스케줄러를 사용하여 여러 스케줄러 인스턴스 사이에 부하를 분산합니다.

환경에는 최대 3개의 스케줄러를 사용할 수 있습니다.

스케줄러 수를 늘린다고 해서 항상 Airflow 성능이 향상되는 것은 아닙니다. 예를 들어 1개의 스케줄러만 사용하면 2개를 사용할 때보다 더 나은 성능을 제공할 수 있습니다. 스케줄러를 추가해도 전체 성능에 도움을 주지 않고 환경의 리소스만 소비될 때가 여기에 해당합니다. 실제 스케줄러 성능은 Airflow 작업자 수, 환경에서 실행되는 DAG 및 태스크 수, Airflow와 환경의 구성에 따라 다릅니다.

2개의 스케줄러로 시작한 다음 환경의 성능을 모니터링하는 것이 좋습니다. 스케줄러 수를 변경한 후 언제든지 환경을 원래 스케줄러 수로 다시 조정할 수 있습니다.

여러 스케줄러 구성에 대한 자세한 내용은 Airflow 문서를 참조하세요.

환경에서 Airflow 스케줄러가 사용하는 CPU, 메모리, 디스크 공간의 크기를 지정할 수 있습니다. 이러한 방식으로 여러 스케줄러를 사용하여 제공되는 수평 확장 외에도 환경의 성능을 향상시킬 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 워크로드 구성 창에서 Airflow 스케줄러의 매개변수를 조정합니다.

    • 스케줄러 수 드롭다운 목록에서 환경의 스케줄러 수를 선택합니다.

    • CPU, 메모리, 스토리지 필드에서 Airflow 스케줄러의 CPU, 메모리, 스토리지 수를 지정합니다. 각 스케줄러는 지정된 양의 리소스를 사용합니다.

  6. 저장을 클릭합니다.

gcloud

다음과 같은 Airflow 스케줄러 매개변수를 사용할 수 있습니다.

  • --scheduler-count: 환경의 스케줄러 수입니다.

  • --scheduler-cpu: Airflow 스케줄러의 CPU 수입니다.

  • --scheduler-memory: Airflow 스케줄러의 메모리 양입니다.

  • --scheduler-storage: Airflow 스케줄러의 디스크 공간 크기입니다.

다음 Google Cloud CLI 명령어를 실행합니다.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-cpu SCHEDULER_CPU \
  --scheduler-memory SCHEDULER_MEMORY \
  --scheduler-storage SCHEDULER_STORAGE \
  --scheduler-count SCHEDULER_COUNT

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전

  • SCHEDULER_CPU: 스케줄러의 CPU 수(vCPU 단위)입니다.

  • SCHEDULER_MEMORY: 스케줄러의 메모리 양입니다.

  • SCHEDULER_STORAGE: 스케줄러의 디스크 크기입니다.

  • SCHEDULER_COUNT: 스케줄러 수입니다.

예를 들면 다음과 같습니다.

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-cpu 0.5 \
  --scheduler-memory 2.5 \
  --scheduler-storage 2 \
  --scheduler-count 2

API

  1. environments.patch API 요청을 생성합니다.

  2. 이 요청의 작성 방법:

    1. updateMask 매개변수에서 모든 스케줄러 매개변수 또는 스케줄러 수만 업데이트하도록 config.workloadsConfig.scheduler 마스크를 지정합니다. 마스크를 지정하여 count를 제외하고 개별 스케줄러 매개변수를 업데이트할 수도 있습니다. 예를 들면 config.workloadsConfig.scheduler.cpu입니다.

    2. 요청 본문에서 새 스케줄러 매개변수를 지정합니다.

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": SCHEDULER_CPU,
      "memoryGb": SCHEDULER_MEMORY,
      "storageGb": SCHEDULER_STORAGE,
      "count": SCHEDULER_COUNT
    }
  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전

  • SCHEDULER_CPU: 스케줄러의 CPU 수(vCPU 단위)입니다.

  • SCHEDULER_MEMORY: 스케줄러의 메모리 양(GB)입니다.

  • SCHEDULER_STORAGE: 스케줄러의 디스크 크기(GB)입니다.

  • SCHEDULER_COUNT: 스케줄러 수입니다.

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2,
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler 블록의 다음 필드는 Airflow 스케줄러 매개변수를 제어합니다. 각 스케줄러는 지정된 양의 리소스를 사용합니다.

  • scheduler.count: 환경의 스케줄러 수입니다.

  • scheduler.cpu: Airflow 스케줄러의 CPU 수입니다.

  • scheduler.memory_gb: Airflow 스케줄러의 메모리 양입니다.

  • scheduler.storage_gb: 스케줄러의 디스크 공간 크기입니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
    }

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전

  • SCHEDULER_CPU: 스케줄러의 CPU 수(vCPU 단위)입니다.

  • SCHEDULER_MEMORY: 스케줄러의 메모리 양(GB)입니다.

  • SCHEDULER_STORAGE: 스케줄러의 디스크 크기(GB)입니다.

  • SCHEDULER_COUNT: 스케줄러 수입니다.

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      scheduler {
        
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
        
        count = 2
      }
    }

  }
}

트리거 매개변수 조정

트리거 수를 0으로 설정할 수 있지만 환경에는 트리거 인스턴스가 1개 이상(또는 복원력이 우수한 환경에서는 2개 이상)이 있어야 DAG에서 지연 가능한 연산자를 사용할 수 있습니다.

환경의 복원력 모드에 따라 트리거 수에 대한 여러 구성이 가능합니다.

  • 표준 복원력: 최대 10개의 트리거를 실행할 수 있음
  • 높은 복원력: 트리거 최소 2개, 최대 10개

트리거 수를 0으로 설정해도 트리거 포드 정의가 생성되고 환경의 클러스터에 표시되지만 실제 트리거 워크로드는 실행되지 않습니다.

환경에서 Airflow 트리거가 사용하는 CPU, 메모리, 디스크 공간의 크기를 지정할 수도 있습니다. 이러한 방식으로 여러 트리거를 사용하여 제공되는 수평 확장 외에도 환경의 성능을 향상시킬 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 워크로드 구성 창에서 Airflow 트리거의 매개변수를 조정합니다.

    1. 트리거 섹션의 트리거 수 필드에 환경의 트리거 수를 입력합니다.

      환경에 트리거를 최소 하나 이상 설정하는 경우 CPU메모리 필드도 사용하여 트리거에 대한 리소스 할당을 구성합니다.

    2. CPU메모리에서 Airflow 트리거의 CPU, 메모리, 스토리지 수를 지정합니다. 각 트리거는 지정된 양의 리소스를 사용합니다.

  6. 저장을 클릭합니다.

gcloud

다음과 같은 Airflow 트리거 매개변수를 사용할 수 있습니다.

  • --triggerer-count: 환경의 트리거 수입니다.

    • 표준 복원력 환경의 경우 0에서 10 사이의 값을 사용합니다.
    • 복원력이 우수한 환경의 경우 0을 사용하거나 2에서 10 사이의 값을 사용합니다.
  • --triggerer-cpu: Airflow 트리거의 CPU 수입니다.

  • --triggerer-memory: Airflow 트리거의 메모리 양입니다.

다음 Google Cloud CLI 명령어를 실행합니다.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --triggerer-count TRIGGERER_COUNT \
  --triggerer-cpu TRIGGERER_CPU \
  --triggerer-memory TRIGGERER_MEMORY

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • TRIGGERER_COUNT: 트리거 수
  • TRIGGERER_CPU: 트리거의 CPU 수(vCPU 단위)
  • TRIGGERER_MEMORY: 트리거의 메모리 양

예를 들면 다음과 같습니다.

  • 4개의 트리거 인스턴스로 확장합니다.
  gcloud composer environments update example-environment \
    --location us-central1 \
    --triggerer-count 4 \
    --triggerer-cpu 1 \
    --triggerer-memory 1
  ```

- Disable triggerers by setting triggerer count to `0`. This operation
  doesn't require specifying CPU or memory for the triggerers.

```bash
  gcloud composer environments update example-environment \
    --location us-central1 \
    --triggerer-count 0
  ```

API

  1. updateMask 쿼리 매개변수에서 config.workloadsConfig.triggerer 마스크를 지정합니다.

  2. 요청 본문에서 트리거에 대한 세 가지 매개변수를 모두 지정합니다.

"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": TRIGGERER_COUNT,
      "cpu": TRIGGERER_CPU,
      "memoryGb": TRIGGERER_MEMORY
    }
  }
}

다음을 바꿉니다.

  • TRIGGERER_COUNT: 트리거 수

    • 표준 복원력 환경의 경우 0에서 10 사이의 값을 사용합니다.
    • 복원력이 우수한 환경의 경우 0을 사용하거나 2에서 10 사이의 값을 사용합니다.
  • TRIGGERER_CPU: 트리거의 CPU 수(vCPU 단위)

  • TRIGGERER_MEMORY: 트리거의 메모리 양

예를 들면 다음과 같습니다.

  • 트리거 수를 0으로 설정하여 트리거를 사용 중지합니다. 이 작업에서는 트리거의 CPU 또는 메모리를 지정할 필요가 없습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 0
    }
  }
}
  • 4개의 트리거 인스턴스로 확장합니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 4,
      "cpu": 1,
      "memoryGb": 1
    }
  }
}

Terraform

workloads_config.triggerer 블록의 다음 필드는 Airflow 트리거 매개변수를 제어합니다. 각 트리거는 지정된 양의 리소스를 사용합니다.

  • triggerer.count: 환경의 트리거 수입니다.

    • 표준 복원력 환경의 경우 0에서 10 사이의 값을 사용합니다.
    • 복원력이 우수한 환경의 경우 0을 사용하거나 2에서 10 사이의 값을 사용합니다.
  • triggerer.cpu: Airflow 트리거의 CPU 수입니다.

  • triggerer.memory_gb: Airflow 트리거의 메모리 양입니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
    }

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • TRIGGERER_COUNT: 트리거 수
  • TRIGGERER_CPU: 트리거의 CPU 수(vCPU 단위)
  • TRIGGERER_MEMORY: 트리거의 메모리 양(GB)

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
    }

  }
}

DAG 프로세서 파라미터 조정

환경의 DAG 프로세서 수와 각 DAG 프로세서에서 사용하는 CPU, 메모리, 디스크 공간의 크기를 지정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 워크로드 구성 창에서 Airflow DAG 프로세서 파라미터를 조정합니다.

    • DAG 프로세서 수 드롭다운 목록에서 환경의 DAG 프로세서 수를 선택합니다.

    • CPU, 메모리, 스토리지 필드에서 Airflow DAG 프로세서의 CPU, 메모리, 스토리지 수를 지정합니다. 각 DAG 프로세서는 지정된 리소스 양을 사용합니다.

  6. 저장을 클릭합니다.

gcloud

다음과 같은 Airflow DAG 프로세서 파라미터를 사용할 수 있습니다.

  • --dag-processor-count: DAG 프로세서 수
  • --dag-processor-cpu: DAG 프로세서의 CPU 수
  • --dag-processor-memory: DAG 프로세서의 메모리 양
  • --dag-processor-storage: DAG 프로세서의 디스크 공간

다음 Google Cloud CLI 명령어를 실행합니다.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
    --dag-processor-count DAG_PROCESSOR_COUNT \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • DAG_PROCESSOR_CPU: DAG 프로세서의 CPU 수
  • DAG_PROCESSOR_MEMORY: DAG 프로세서의 메모리 양
  • DAG_PROCESSOR_STORAGE: DAG 프로세서의 디스크 공간

예를 들면 다음과 같습니다.

gcloud composer environments update example-environment \
  --location us-central1 \
  --dag-processor-count 2 \
  --dag-processor-cpu 0.5 \
  --dag-processor-memory 2 \
  --dag-processor-storage 1

API

  1. environments.patch API 요청을 생성합니다.

  2. 이 요청의 작성 방법:

    1. updateMask 파라미터에서 config.workloadsConfig.dagProcessor 마스크를 지정하여 DAG 프로세서 수를 포함한 모든 DAG 프로세서 파라미터를 업데이트합니다. 마스크를 지정하여 개별 DAG 프로세서 파라미터를 업데이트할 수도 있습니다. 예를 들면 config.workloadsConfig.dagProcessor.cpu,config.workloadsConfig.dagProcessor.memoryGb,config.workloadsConfig.dagProcessor.storageGb입니다.

    2. 요청 본문에서 새 DAG 프로세서 파라미터를 지정합니다.

"config": {
  "workloadsConfig": {
    "dagProcessor": {
      "count": DAG_PROCESSOR_COUNT,
      "cpu": DAG_PROCESSOR_CPU,
      "memoryGb": DAG_PROCESSOR_MEMORY,
      "storageGb": DAG_PROCESSOR_STORAGE
    }
  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • DAG_PROCESSOR_COUNT: DAG 프로세서 수
  • DAG_PROCESSOR_CPU: DAG 프로세서의 CPU 수(vCPU 단위)
  • DAG_PROCESSOR_MEMORY: DAG 프로세서의 메모리 양(GB)
  • DAG_PROCESSOR_STORAGE: DAG 프로세서의 디스크 공간 크기(GB)

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.dagProcessor

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.dag_processor 블록의 다음 필드에서 Airflow DAG 프로세서 파라미터를 제어합니다. 각 DAG 프로세서는 지정된 리소스 양을 사용합니다.

  • dag_processor.count: 환경의 DAG 프로세서 수
  • dag_processor.cpu: DAG 프로세서의 CPU 수
  • dag_processor.memory_gb: DAG 프로세서의 메모리 양
  • dag_processor.storage_gb: DAG 프로세서의 디스크 공간 크기
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      dag_processor {
        count = DAG_PROCESSOR_COUNT
        cpu = DAG_PROCESSOR_CPU
        memory_gb = DAG_PROCESSOR_MEMORY
        storage_gb = DAG_PROCESSOR_STORAGE
      }
    }

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • DAG_PROCESSOR_COUNT: DAG 프로세서 수
  • DAG_PROCESSOR_CPU: DAG 프로세서의 CPU 수(vCPU 단위)
  • DAG_PROCESSOR_MEMORY: DAG 프로세서의 메모리 양(GB)
  • DAG_PROCESSOR_STORAGE: DAG 프로세서의 디스크 공간 크기(GB)

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      dag_processor {
        count = 2
        cpu = 0.5
        memory_gb = 2
        storage_gb = 1
      }
    }

  }
}

웹 서버 매개변수 조정

환경에서 Airflow 웹 서버가 사용하는 CPU, 메모리, 디스크 공간의 크기를 지정할 수 있습니다. 이러한 방식으로 예를 들어 다수의 사용자 또는 다수의 관리형 DAG로부터 발생하는 수요에 맞게 Airflow UI의 성능을 확장할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 워크로드 구성 창에서 웹 서버의 매개변수를 조정합니다. CPU, 메모리, 스토리지 필드에서 웹 서버의 CPU, 메모리, 스토리지 수를 지정합니다.

  6. 저장을 클릭합니다.

gcloud

다음과 같은 Airflow 웹 서버 매개변수를 사용할 수 있습니다.

  • --web-server-cpu: Airflow 웹 서버의 CPU 수입니다.
  • --web-server-memory: Airflow 웹 서버의 메모리 양입니다.
  • --web-server-storage: Airflow 웹 서버의 디스크 공간 크기입니다.

다음 Google Cloud CLI 명령어를 실행합니다.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-cpu WEB_SERVER_CPU \
  --web-server-memory WEB_SERVER_MEMORY \
  --web-server-storage WEB_SERVER_STORAGE

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WEB_SERVER_CPU: 웹 서버의 CPU 수(vCPU 단위)
  • WEB_SERVER_MEMORY: 웹 서버의 메모리 양
  • WEB_SERVER_STORAGE: 웹 서버의 메모리 양

예를 들면 다음과 같습니다.

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-cpu 1 \
  --web-server-memory 2.5 \
  --web-server-storage 2

API

  1. environments.patch API 요청을 생성합니다.

  2. 이 요청의 작성 방법:

    1. updateMask 매개변수에서 모든 웹 서버 매개변수를 업데이트하도록 config.workloadsConfig.webServer 마스크를 지정합니다. 이러한 매개변수(config.workloadsConfig.webServer.cpu, config.workloadsConfig.webServer.memoryGb, config.workloadsConfig.webServer.storageGb)에 마스크를 지정하여 개별 웹 서버 매개변수를 업데이트할 수도 있습니다.

    2. 요청 본문에서 새 웹 서버 매개변수를 지정합니다.

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": WEB_SERVER_CPU,
      "memoryGb": WEB_SERVER_MEMORY,
      "storageGb": WEB_SERVER_STORAGE
    }
  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WEB_SERVER_CPU: 웹 서버의 CPU 수(vCPU 단위)입니다.
  • WEB_SERVER_MEMORY: 웹 서버의 메모리 양(GB)입니다.
  • WEB_SERVER_STORAGE: 웹 서버의 디스크 크기(GB)입니다.

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.web_server 블록의 다음 필드는 웹 서버 매개변수를 제어합니다.

  • web_server.cpu: 웹 서버의 CPU 수입니다.
  • web_server.memory_gb: 웹 서버의 메모리 양입니다.
  • web_server.storage_gb: 웹 서버의 디스크 공간 크기입니다.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
    }

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • WEB_SERVER_CPU: 웹 서버의 CPU 수(vCPU 단위)입니다.
  • WEB_SERVER_MEMORY: 웹 서버의 메모리 양(GB)입니다.
  • WEB_SERVER_STORAGE: 웹 서버의 디스크 크기(GB)입니다.

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

환경 크기 조정

환경 크기는 예를 들어 Airflow 데이터베이스가 포함된 관리형 Cloud Composer 인프라의 성능 매개변수를 제어합니다.

DAG 및 태스크를 대량으로 실행하려는 경우에는 더 큰 환경 크기를 선택해 보세요.

콘솔

  1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

    환경으로 이동

  2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

  3. 환경 구성 탭으로 이동합니다.

  4. 리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.

  5. 리소스 > 핵심 인프라 항목에서 수정을 클릭합니다.

  6. 핵심 인프라 창의 환경 크기 필드에서 환경 크기를 지정합니다.

  7. 저장을 클릭합니다.

gcloud

--environment-size 인수는 환경 크기를 제어합니다.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • ENVIRONMENT_SIZE: small, medium 또는 large

예를 들면 다음과 같습니다.

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

  1. environments.patch API 요청을 만듭니다.

  2. 이 요청의 작성 방법:

    1. updateMask 매개변수에서 config.environmentSize 마스크를 지정합니다.

    2. 요청 본문에서 환경 크기를 지정합니다.

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

다음을 바꿉니다.

  • ENVIRONMENT_SIZE: 환경 크기(ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM 또는 ENVIRONMENT_SIZE_LARGE)

예를 들면 다음과 같습니다.

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.environmentSize

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

config 블록의 environment_size 필드는 환경 크기를 제어합니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

다음을 바꿉니다.

  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • LOCATION: 환경이 위치한 리전
  • ENVIRONMENT_SIZE: 환경 크기(ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM 또는 ENVIRONMENT_SIZE_LARGE)

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

다음 단계