環境をスケーリングする

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

このページでは、Cloud Composer 環境をスケーリングする方法について説明します。

スケーリングに関するほかのページ:

垂直方向と水平方向のスケーリング

水平方向のスケーリングの選択肢:

  • ワーカーの最小数と最大数を調整する。
  • スケジューラ、DAG プロセッサ、triggerer の数を調整する。

垂直方向のスケーリングの選択肢:

  • ワーカー、スケジューラ、triggerer、DAG プロセッサ、ウェブサーバー、スケーリングとパフォーマンスのパラメータを調整する。
  • 環境のサイズを調整する。

リソースの上限

コンポーネント 最小数 最大数 最小 vCPU 最大 vCPU vCPU の最小ステップ 最小メモリ(GB) 最大メモリ(GB) メモリの最小ステップ(GB) 1 vCPU あたりの最小メモリ(GB) 1 vCPU あたりの最大メモリ(GB) 最小ストレージ(GB) 最大ストレージ(GB) ストレージの最小ステップ(GB)
スケジューラ 1 3 0.5 1 0.5 1 8 0.25 1 8 0 100 1
トリガー 0 10 0.5 1 0.5 1 8 0.25 1 8 - - -
ウェブサーバー - - 1(サポートされている最小値) 4 0.5、1、または 2 の倍数 2 32 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

環境のプリセット

Google Cloud コンソールで環境を作成するときは、3 つの環境プリセットのいずれかを選択できます。これらのプリセットでは、環境の初期スケールとパフォーマンス構成が設定されます。環境を作成した後に、プリセットで指定されたすべてのスケールとパフォーマンスのパラメータを変更できます。

次の見積もりに基づいて、プリセットを選択することをおすすめします。

  • 環境にデプロイする予定の DAG の合計数
  • 同時実行 DAG 実行の最大数
  • 同時実行タスクの最大数

環境のパフォーマンスは、環境で実行する特定の DAG の実装によって異なります。次の表に、平均リソース使用量に基づく推定値を示します。DAG でより多くのリソースを使用すると予想される場合は、それに応じて推定値を調整します。

推奨プリセット DAG の合計数 同時実行 DAG 実行の最大数 最大同時タスク数
50 15 18
250 60 100
1000 250 400
Extra Large 3000 750 2250

たとえば、環境で 40 個の DAG を実行する必要があります。すべての DAG を 1 つのアクティブなタスクそれぞれに同時に実行する必要があります。この環境では、同時に実行する DAG の実行とタスクの最大数が Small プリセットの推奨推定値を超えるため、Medium プリセットが使用されます。

ワーカー パラメータを調整する

環境に対するワーカーの最小数と最大数は、設定できます。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
      }
    }

  }
}

スケジューラ パラメータを調整する

ご利用の環境では、同時に複数の Airflow スケジューラを実行できます。複数のスケジューラを使用して複数のスケジューラ インスタンス間で負荷を分散すると、パフォーマンスと信頼性が向上します。

環境には、最大 3 個のスケジューラを設定できます。

スケジューラをスケーリングする場合は、次の点を考慮してください。

  • Cloud Composer 3 環境では、Airflow DAG プロセッサはスケジューラとは別の環境コンポーネントとして実行されます。DAG プロセッサはスケジューラから DAG の解析をオフロードするため、以前に Airflow スケジューラに割り振られたリソースを再分配することをおすすめします。

    Cloud Composer 3 ではスケジューラが DAG を解析しないため、Cloud Composer 2 よりも CPU とメモリのリソース上限が低くなっています。

  • スケジューラの数を増やしても、Airflow のパフォーマンスが常に改善されるとは限りません。

    たとえば、追加のスケジューラが使用されず、全体的なパフォーマンスに寄与せずに環境のリソースを消費した場合に発生する可能性があります。実際のスケジューラのパフォーマンスは、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
      }
    }

  }
}

triggerer パラメータを調整する

triggerer の数はゼロに設定できますが、DAG で遅延可能な演算子を使用するには、環境内に少なくとも 1 つの triggerer インスタンス(または復元力の高い環境では少なくとも 2 つ)が必要です。

環境の復元力モードに応じて、triggerer の数に関して異なる構成があります。

  • 標準的な復元力: 最大 10 個の triggerer を実行できます。
  • 高い復元力: 2 個以上、最大 10 個の triggerer。

triggerer の数が 0 に設定されている場合でも、triggerer Pod 定義が作成され、環境のクラスタに表示されますが、実際の triggerer ワークロードは実行されません。

環境内の Airflow triggerer が使用する CPU 数、メモリ容量、ディスク容量を指定することもできます。このようにして、複数の triggerer による水平スケーリングに加え、環境のパフォーマンスも向上させることができます。

コンソール

  1. Google Cloud コンソールで、[環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [リソース] > [ワークロード構成] 項目で、[編集] をクリックします。

  5. [ワークロード構成] ペインで、Airflow triggerer のパラメータを調整します。

    1. [triggerer] セクションの [triggerer の数] フィールドに、環境内の triggerer の数を入力します。

      環境に少なくとも 1 つの triggerer を設定する場合は、[CPU] フィールドと [メモリ] フィールドを使用して、triggerer のリソース割り当てを構成します。

    2. [CPU] と [メモリ] で、Airflow triggerer の CPU、メモリ、ストレージの数を指定します。各 triggerer は、指定された量のリソースを使用します。

  6. [保存] をクリックします。

gcloud

次の Airflow triggerer パラメータを使用できます。

  • --triggerer-count: 環境内の triggerer の数。

    • 標準復元力の環境では、010 の値を使用します。
    • 復元力の高い環境の場合は、0 または 210 の値を使用します。
  • --triggerer-cpu: Airflow triggerer の CPU 数。

  • --triggerer-memory: Airflow triggerer のメモリ容量。

次の 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 の数。
  • TRIGGERER_CPU: triggerer の CPU 数(vCPU 単位)。
  • TRIGGERER_MEMORY: triggerer のメモリ容量。

例:

  • 4 つの triggerer インスタンスにスケーリングします。
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 4 \
  --triggerer-cpu 1 \
  --triggerer-memory 1
  • triggerer を無効にするには、triggerer 数を 0 に設定します。このオペレーションでは、triggerer に対して CPU またはメモリを指定する必要はありません。
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 0

API

  1. updateMask クエリ パラメータで、config.workloadsConfig.triggerer マスクを指定します。

  2. リクエスト本文で、triggerer の 3 つのパラメータをすべて指定します。

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

以下を置き換えます。

  • TRIGGERER_COUNT: triggerer の数。

    • 標準復元力の環境では、010 の値を使用します。
    • 復元力の高い環境の場合は、0 または 210 の値を使用します。
  • TRIGGERER_CPU: triggerer の CPU 数(vCPU 単位)。

  • TRIGGERER_MEMORY: triggerer のメモリ容量。

例:

  • triggerer を無効にするには、triggerer 数を 0 に設定します。このオペレーションでは、triggerer に対して 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 つの triggerer インスタンスにスケーリングします。
// 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 パラメータを制御します。各 triggerer は、指定された量のリソースを使用します。

  • triggerer.count: 環境内の triggerer の数。

    • 標準復元力の環境では、010 の値を使用します。
    • 復元力の高い環境の場合は、0 または 210 の値を使用します。
  • triggerer.cpu: Airflow triggerer の CPU 数。

  • triggerer.memory_gb: Airflow triggerer のメモリ容量。

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 の数。
  • TRIGGERER_CPU: triggerer の CPU 数(vCPU 単位)。
  • TRIGGERER_MEMORY: triggerer のメモリ容量(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 数、メモリ容量、ディスク容量を指定できます。Cloud Composer 3 環境では、Airflow DAG プロセッサは個別の環境コンポーネントとして実行されます。

環境の復元力モードに応じて、DAG プロセッサの数に関して異なる構成があります。

  • 標準的な復元力: 最大 3 個の DAG プロセッサを実行できます。
  • 高い復元力: 2 個以上、最大 3 個の DAG プロセッサ。

コンソール

  1. Google Cloud コンソールで、[環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [リソース] > [ワークロード構成] 項目で、[編集] をクリックします。

  5. [ワークロード構成] ペインで、Airflow DAG プロセッサのパラメータを調整します。

    • [DAG プロセッサの数] プルダウン リストで、環境内の DAG プロセッサの数を選択します。

      復元性に優れた環境では、少なくとも 2 つの DAG プロセッサが必要です。

    • [CPU]、[メモリ]、[ストレージ] の各フィールドで、Airflow DAG プロセッサの CPU、メモリ、ストレージの数を指定します。各 DAG プロセッサは、指定された量のリソースを使用します。

  6. [保存] をクリックします。

gcloud

次の Airflow DAG プロセッサ パラメータを使用できます。

  • --dag-processor-count: DAG プロセッサの数。

復元性に優れた環境では、少なくとも 2 つの 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_COUNT: DAG プロセッサの数。
  • 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 1 \
  --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 = 1
        cpu = 0.5
        memory_gb = 2
        storage_gb = 1
      }
    }

  }
}

ウェブサーバーのパラメータを調整する

環境内の Airflow ウェブサーバーで使用される CPU 数、メモリ容量、ディスク容量を指定できます。このようにして、Airflow UI のパフォーマンスを、たとえば、多数のユーザーや多数のマネージド DAG からの需要に合わせてスケーリングできます。

コンソール

  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.cpuconfig.workloadsConfig.webServer.memoryGbconfig.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: smallmediumlargeextra-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_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGEENVIRONMENT_SIZE_EXTRA_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_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGEENVIRONMENT_SIZE_EXTRA_LARGE

例:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

次のステップ