環境をスケーリングする

Cloud Composer 1 | Cloud Composer 2

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

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

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

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

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

ワーカーの最小数と最大数を調整する

環境に対するワーカーの最小数と最大数は、設定できます。Cloud Composer では、設定された制限内で環境が自動的にスケーリングされます。これらの制限値は、いつでも調整できます。

コンソール

  1. Google Cloud Console の [環境] ページに移動します。

    [環境] ページに移動

  2. 環境を選択します。

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

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

  5. [ワークロードの構成] ダイアログの [ワーカーの自動スケーリング] セクションで、Airflow ワーカーの制限値を調整します。

    • [ワーカーの最小数] フィールドに、環境で常に実行される必要がある Airflow ワーカーの数を指定します。環境内のワーカー数は、より少ないワーカー数で負荷を処理できる場合でもこの数を下回りません。

    • [最大ワーカー数] フィールドに、環境で実行できる Airflow ワーカーの最大数を指定します。環境内のワーカー数は、負荷に対処するためにさらに多くのワーカー数が必要な場合でも、この数を超えることはありません。

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

gcloud

次の Google Cloud CLI コマンドを実行します。

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • WORKERS_MIN は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、より少ないワーカー数で負荷を処理できる場合でもこの数を下回りません。
  • WORKERS_MAX は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、負荷に対処するためにさらに多くのワーカー数が必要な場合でも、この数を超えることはありません。

例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6

API

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount マスクを指定します。

    2. リクエストの本文の minCount フィールドと maxCount フィールドに、新しいワーカー制限値を指定します。

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX
    }
  }
}

以下のように置き換えます。

  • WORKERS_MIN は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、より少ないワーカー数で負荷を処理できる場合でもこの数を下回りません。
  • WORKERS_MAX は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、負荷に対処するためにさらに多くのワーカー数が必要な場合でも、この数を超えることはありません。

例:

// 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": {
      "minCount": 2,
      "maxCount": 6
    }
  }
}

Terraform

workloadsConfig.worker ブロックの min_count フィールドと max_count フィールドは、環境内のワーカーの最小数と最大数を指定します。

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
      }
    }

  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • WORKERS_MIN は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、より少ないワーカー数で負荷を処理できる場合でもこの数を下回りません。
  • WORKERS_MAX は、環境で実行できる Airflow ワーカーの最大数に置き換えます。環境内のワーカー数は、負荷に対処するためにさらに多くのワーカー数が必要な場合でも、この数を超えることはありません。

例:

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
      }
    }

  }
}

スケジューラの数を調整する

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

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

スケジューラの数を増やしても、Airflow のパフォーマンスが常に改善されるとは限りません。たとえば、スケジューラが 1 つだけでも、2 つの場合よりも良いパフォーマンスの場合があります。これは、追加のスケジューラが使用されないため、全体的なパフォーマンスに寄与せずに環境のリソースを消費した場合に発生する可能性があります。実際のスケジューラのパフォーマンスは、Airflow ワーカーの数、環境内で実行される DAG とタスクの数、Airflow と環境の両方の構成によって異なります。

2 つのスケジューラを設定した状態で開始し、環境のパフォーマンスをモニタリングすることをおすすめします。スケジューラの数を変更する場合は、いつでも環境を元のスケジューラ数にスケールダウンできます。

複数のスケジューラの構成の詳細については、Airflow のドキュメントをご覧ください。

環境のスケジューラの数を変更するには、次のようにします。

コンソール

  1. Google Cloud Console の [環境] ページに移動します。

    [環境] ページに移動

  2. 環境を選択します。

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

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

  5. [ワークロードの構成] ダイアログの [スケジューラの数] プルダウン リストで、環境のスケジューラの数を設定します。

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

gcloud

次の Google Cloud CLI コマンドを実行します。

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-count SCHEDULER_COUNT

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • SCHEDULER_COUNT は、スケジューラの数に置き換えます。

例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-count 2

API

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

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

    2. リクエスト本文の count フィールドに、スケジューラの数を指定します。

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": SCHEDULER_COUNT
    }
  }
}

以下のように置き換えます。

  • SCHEDULER_COUNT は、スケジューラの数に置き換えます。

例:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler ブロックの count フィールドは、環境内のスケジューラの数を指定します。

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

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • SCHEDULER_COUNT は、スケジューラの数に置き換えます。

例:

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

  config {

    workloads_config {

      scheduler {
        count = 2
      }

    }
  }
}

トリガーの数を調整する

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

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

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

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

triggerer が 0 個を超える場合は、他の環境コンポーネントと同様に Cloud Composer コンピューティング SKU で課金されます。

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

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

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

  4. [リソース] > [ワークロードの構成] 項目で、[編集] をクリックします。 [ワークロードの構成] ペインが開きます。

  5. [トリガラー] セクションで、[トリガラーの数] フィールドを使用して、環境内の triggerer の数を入力します。

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

  6. [保存] をクリックして、環境が更新されるまで待ちます。

gcloud

次の 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 は、トリガーの数に置き換えます。

    • 標準復元力の環境では、010 の値を使用します。
    • 復元力の高い環境の場合、0 または 210 の値を使用します。
  • TRIGGERER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。 このフラグは省略可能です。指定しない場合は、デフォルト値の 0.5 vCPU が使用されます。使用できる値: 0.50.751

  • TRIGGERER_MEMORY は、ワーカーのメモリ容量に置き換えます。 このフラグは省略可能です。指定しない場合は、デフォルト値の 0.5 GB が使用されます。

    必要な最小メモリは、triggerer に割り当てられた CPU 数と同じです。最大許容値は、triggerer CPU 数に 6.5 を掛けた数と同じです。

    たとえば、--triggerer-cpu フラグを 1 に設定した場合、--triggerer-memory最小値1 で、最大値6.5 です。

例:

  • triggerer を無効にするには、triggerer 数を 0 に設定します。このオペレーションでは、triggerer に対して CPU またはメモリを指定する必要はありません。

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 0
    
  • 複数の triggerer インスタンスへのスケーリング:

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 4 \
      --triggerer-cpu 1 \
      --triggerer-memory 1GB
    

API

  1. environments.patch API リクエストを作成します。

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

  3. リクエストの本文で、次のオブジェクトを使用します

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

以下のように置き換えます。

  • TRIGGERER_COUNT は、トリガーの数に置き換えます。

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

      triggerer を少なくとも 1 つ使用する場合は、TRIGGERER_CPUTRIGGERER_MEMORY の値も指定する必要があります。

      • TRIGGERER_CPU は、triggerer の CPU 数(vCPU 単位)に設定します。使用できる値: 0.50.751

      • TRIGGERER_MEMORY を triggerer のメモリ容量に設定します。必要な最小メモリは、triggerer に割り当てられた CPU 数と同じです。最大許容値は、triggerer CPU 数に 6.5 を掛けた数と同じです。

        たとえば、TRIGGERER_CPU1 に設定した場合、TRIGGERER_MEMORY最小値1 で、最大値6.5 です。

例:

  • triggerer を無効にするには、triggerer 数を 0 に設定します。このオペレーションでは、triggerer に対して CPU またはメモリを指定する必要はありません。

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 0
        }
      }
    }
    
  • 複数の triggerer インスタンスへのスケーリング:

    // PATCH https://composer.googleapis.com/v1beta1/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 ブロックの count フィールドは、環境内のトリガーの数を指定します。

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
      }
    }

  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • TRIGGERER_COUNT は、トリガーの数に置き換えます。

例:

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

  config {

    workloads_config {

      triggerer {
        count = 1
      }

    }
  }
}

ワーカー、スケジューラ、ウェブサーバーのスケールとパフォーマンス パラメータを調整する

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

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

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

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

  4. [リソース] > [ワークロードの構成] 項目で、[編集] をクリックします。 [ワークロードの構成] ペインが開きます。

  5. [スケジューラの数] と [トリガーの数] プルダウン リストで、環境内のスケジューラとトリガーの数を選択します。

  6. [ワークロードの構成] ペインの [CPU]、[メモリ]、[ストレージ] フィールドで、CPU、メモリ、Airflow スケジューラのストレージ、ウェブサーバー、ワーカーの数を指定します。

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

gcloud

次の引数により、Airflow スケジューラ、ウェブサーバー、ワーカーの CPU、メモリ、ディスク容量のパラメータが制御されます。各スケジューラとワーカーは、指定された量のリソースを使用します。

  • --scheduler-cpu では、Airflow スケジューラの CPU の数を指定します。
  • --scheduler-memory では、Airflow スケジューラのメモリ容量を指定します。
  • --scheduler-storage では、Airflow スケジューラのディスク容量を指定します。
  • --triggerer-cpu では、Airflow ワーカーの CPU 数を指定します。 使用できる値: 0.50.751。triggerer CPU を調整する場合は、--triggerer-memory フラグと --triggerer-count フラグも必要です。
  • --triggerer-memory では、Airflow ワーカーのメモリ容量を指定します。 triggerer のメモリを調整する場合は、--triggerer-cpu フラグと --triggerer-count フラグも必要です。

    必要な最小メモリは、triggerer に割り当てられた CPU 数と同じです。最大許容値は、triggerer CPU 数に 6.5 を掛けた数と同じです。

    たとえば、--triggerer-cpu フラグを 1 に設定した場合、--triggerer-memory最小値1 で、最大値6.5 です。

  • --web-server-cpu では、Airflow ウェブサーバーの CPU 数を指定します。

  • --web-server-memory では、Airflow ウェブサーバーのメモリ容量を指定します。

  • --web-server-storage では、Airflow ウェブサーバーのディスク容量を指定します。

  • --worker-cpu では、Airflow ワーカーの CPU 数を指定します。

  • --worker-memory では、Airflow ワーカーのメモリ容量を指定します。

  • --worker-storage では、Airflow ワーカーのディスク容量を指定します。

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • SCHEDULER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。
  • SCHEDULER_MEMORY は、スケジューラのメモリ容量に置き換えます。
  • SCHEDULER_STORAGE は、スケジューラのディスクサイズに置き換えます。
  • TRIGGERER_COUNT は、トリガーの数に置き換えます。 この値は、現在の triggerer の数を変更せず、CPU またはメモリの割り当てを調整する場合でも必要です。
  • TRIGGERER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。
  • TRIGGERER_MEMORY は、ワーカーのメモリ容量に置き換えます。
  • WEB_SERVER_CPU は、ウェブサーバーの CPU 数(vCPU 単位)に置き換えます。
  • WEB_SERVER_MEMORY は、ウェブサーバーのメモリ容量に置き換えます。
  • WEB_SERVER_STORAGE は、ウェブサーバーのメモリ容量に置き換えます。
  • WORKER_CPU は、ワーカーの CPU 数(vCPU 単位)に置き換えます。
  • WORKER_MEMORY は、ワーカーのメモリ容量に置き換えます。
  • WORKER_STORAGE は、ワーカーのディスクサイズに置き換えます。

例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB\
    --scheduler-storage 2GB \
    --triggerer-count 2 \
    --triggerer-cpu 1 \
    --triggerer-memory 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB

API

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、更新するフィールドを指定します。たとえば、スケジューラのすべてのパラメータを更新するには、config.workloadsConfig.scheduler.cpu,config.workloadsConfig.scheduler.memoryGb,config.workloadsConfig.scheduler.storageGB マスクを指定します。

    triggerer パラメータを更新する場合は、config.workloadsConfig.triggerer マスクを指定します。triggerer の個々のパラメータにマスクを指定することはできません。

    1. リクエスト本文で、スケールとパフォーマンスのパラメータを指定します。
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE
      }
    }
  }

次のように置き換えます。

  • SCHEDULER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。
  • SCHEDULER_MEMORY は、スケジューラのメモリ容量(GB)に置き換えます。
  • SCHEDULER_STORAGE は、スケジューラのディスクサイズ(GB)に置き換えます。
  • TRIGGERER_COUNT は、トリガーの数に置き換えます。 このパラメータは、現在の triggerer の数を変更せず、CPU またはメモリの割り当てのみを調整する場合に必要です。
  • TRIGGERER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。 使用できる値: 0.50.751
  • TRIGGERER_MEMORY は、ワーカーのメモリ容量に置き換えます。

    必要な最小メモリは、triggerer に割り当てられた CPU 数と同じです。最大許容値は、triggerer CPU 数に 6.5 を掛けた数と同じです。

    たとえば、TRIGGERER_CPU1 に設定した場合、TRIGGERER_MEMORY最小値1 で、最大値6.5 です。

  • WEB_SERVER_CPU は、ウェブサーバーの CPU 数(vCPU 単位)に置き換えます。

  • WEB_SERVER_MEMORY は、ウェブサーバーのメモリ容量(GB)に置き換えます。

  • WEB_SERVER_STORAGE は、ウェブサーバーのディスクサイズ(GB)に置き換えます。

  • 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.scheduler.cpu,
// config.workloadsConfig.scheduler.memoryGB,
// config.workloadsConfig.scheduler.storageGb,
// config.workloadsConfig.triggerer
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb,
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGb

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "triggerer": {
      "count": 1,
      "cpu": 1,
      "memoryGb": 1
    },
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "worker": {
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloadsConfig ブロックの次のブロックは、Airflow スケジューラ、ウェブサーバー、トリガー、ワーカーの CPU、メモリ、ディスク容量のパラメータを制御します。各スケジューラ、トリガー、ワーカーは、指定された量のリソースを使用します。

  • scheduler.cpu フィールドでは、Airflow スケジューラの CPU の数を指定します。
  • scheduler.memory_gb フィールドでは、Airflow スケジューラのメモリ容量を指定します。
  • scheduler.storage_gb フィールドでは、スケジューラのディスク容量を指定します。
  • triggerer.cpu フィールドでは、Airflow トリガーの CPU 数を指定します。
  • triggerer.memory_gb フィールドでは、Airflow トリガーのメモリ容量を指定します。
  • web_server.cpu フィールドでは、Airflow ウェブサーバーの CPU 数を指定します。
  • web_server.memory_gb フィールドでは、Airflow ウェブサーバーのメモリ容量を指定します。
  • web_server.storage_gb フィールドでは、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 {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
      }
      triggerer {
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
        count = 1
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • SCHEDULER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。
  • SCHEDULER_MEMORY は、スケジューラのメモリ容量(GB)に置き換えます。
  • SCHEDULER_STORAGE は、スケジューラのディスクサイズ(GB)に置き換えます。
  • TRIGGERER_CPU は、スケジューラの CPU 数(vCPU 単位)に置き換えます。
  • TRIGGERER_MEMORY は、ワーカーのメモリ容量(GB)に置き換えます。
  • WEB_SERVER_CPU は、ウェブサーバーの CPU 数(vCPU 単位)に置き換えます。
  • WEB_SERVER_MEMORY は、ウェブサーバーのメモリ容量(GB)に置き換えます。
  • WEB_SERVER_STORAGE は、ウェブサーバーのディスクサイズ(GB)に置き換えます。
  • 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 {

      scheduler {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      triggerer {
        cpu = 0.5
        memory_gb = 0.5
        count = 1
      }
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      worker {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

環境のサイズを調整する

環境のサイズによって、Airflow データベースを含むマネージド Cloud Composer インフラストラクチャのパフォーマンス パラメータが制御されます。多数の DAG とタスクを実行する場合は、大きめの環境サイズの選択を検討してください。

コンソール

  1. Google Cloud Console の [環境] ページに移動します。

    [環境] ページに移動

  2. 環境を選択します。

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

  4. [リソース] > [コア インフラストラクチャ] 項目で、[編集] をクリックします。

  5. [コア インフラストラクチャ] ダイアログで、[環境のサイズ] フィールドに環境のサイズを指定します。

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

gcloud

環境のサイズは、--environment-size 引数でコントロールします。

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

以下のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • ENVIRONMENT_SIZEsmallmedium、または 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_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_SMALLENVIRONMENT_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"

    }
  }
}

次のステップ