環境をスケーリングする

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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

Cloud Composer 1 では、ワーカーやスケジューラなどの Cloud Composer コンポーネントや Airflow コンポーネントに固有の CPU やメモリリソースを定義しません。代わりに、環境のクラスタ内にあるノードのマシンの数とタイプを指定します。

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

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

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

  • Cloud SQL インスタンスのマシンタイプを調整する
  • ウェブサーバーのマシンタイプの調整

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

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

環境で Airflow 2 を使用している場合は、環境内のノード数までのスケジューラ数を指定できます。

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

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

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

  • 2 つのスケジューラを設定した状態で開始し、環境のパフォーマンスをモニタリングすることをおすすめします。

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

コンソール

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

    [環境] に移動

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

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

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

  5. [リソース] > [スケジューラの数] 項目で、[編集] をクリックします。

  6. [スケジューラの構成] ペインの [スケジューラの数] フィールドに、環境のスケジューラの数を指定します。

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

gcloud

次の Airflow スケジューラ パラメータを使用できます。

  • --scheduler-count: 環境内のスケジューラの数。

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

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

以下を置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン。

例:

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

API

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

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

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

    2. リクエスト本文で、環境のスケジューラの数を指定します。

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

以下を置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン。

  • SCHEDULER_COUNT: スケジューラの数。

例:

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

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

Terraform

workloads_config.scheduler ブロックの次のフィールドでは、Airflow スケジューラ パラメータを制御します。各スケジューラは、指定された量のリソースを使用します。

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

  }
}

ノード数を調整する

環境内のノード数は、変更できます。

この数は、環境内の Airflow ワーカーの数に対応します。 Airflow ワーカーの実行に加えて、環境ノードは Airflow スケジューラやその他の環境コンポーネントも実行します。

コンソール

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

    [環境] に移動

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

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

  4. [ワーカーノード] > [ノード数] 項目で、[編集] をクリックします。

  5. [ワーカーノードの構成] ペインの [ノード数] フィールドに、環境内のノード数を指定します。

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

gcloud

環境内のノードの数は、--node-count 引数で制御します。

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --zone NODE_ZONE \
    --node-count NODE_COUNT

以下を置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン。
  • NODE_COUNT: ノード数ノードの最小数は 3 です。
  • NODE_ZONE: 環境 VM の Compute Engine ゾーン。

例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --zone us-central1-a \
    --node-count 6

API

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

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

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

    2. リクエスト本文で、環境のノード数を指定します。

  "config": {
    "nodeCount": NODE_COUNT
  }

以下を置き換えます。

  • NODE_COUNT: ノード数ノードの最小数は 3 です。

例:

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

"config": {
  "nodeCount": 6
}

Terraform

node_config ブロックの node_count フィールドは、環境内のノードの数を指定します。

resource "google_composer_environment" "example" {

  config {
    node_config {
      node_count = NODE_COUNT
    }
}

以下を置き換えます。

  • NODE_COUNT: ノード数

例:

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

  config {

    node_config {
      node_count = 4
    }

}

Cloud SQL インスタンスのマシンタイプを調整する

環境の Airflow データベースを格納する Cloud SQL インスタンスのマシンタイプは変更できます。

コンソール

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

    [環境] に移動

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

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

  4. [リソース] > [Cloud SQL マシンタイプ] 項目で、[編集] をクリックします。

  5. [Cloud SQL の構成] ペインの [Cloud SQL マシンタイプ] プルダウン リストで、環境の Cloud SQL インスタンスのマシンタイプを選択します。

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

gcloud

環境内の Cloud SQL インスタンスのマシンタイプは、--cloud-sql-machine-type 引数で制御します。

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

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --cloud-sql-machine-type SQL_MACHINE_TYPE

以下を置き換えます。

例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --cloud-sql-machine-type db-n1-standard-2

API

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

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

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

    2. リクエスト本文で、Cloud SQL インスタンスのマシンタイプを指定します。

{
  "config": {
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    }
  }
}

以下を置き換えます。

例:

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

{
  "config": {
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    }
  }
}

Terraform

database_config ブロックの machine_type フィールドは、Cloud SQL インスタンスのマシンタイプを指定します。

resource "google_composer_environment" "example" {

  config {
    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }
  }
}

以下を置き換えます。

例:

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

  config {
    database_config {
      machine_type = "db-n1-standard-2"
    }
}

ウェブサーバーのマシンタイプの調整

環境の Airflow ウェブサーバーのマシンタイプは変更できます。

コンソール

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

    [環境] に移動

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

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

  4. [リソース] > [ウェブサーバーのマシンタイプ] の項目で [編集] をクリックします。

  5. [ウェブサーバーの構成] ペインの [ウェブサーバーのマシンタイプ] プルダウン リストで、Airflow ウェブサーバーのマシンタイプを選択します。

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

gcloud

環境内の Airflow ウェブサーバー インスタンスのマシンタイプは、--web-server-machine-type 引数で制御します。

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

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-machine-type WS_MACHINE_TYPE

以下を置き換えます。

例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-machine-type composer-n1-webserver-2

API

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

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

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

    2. リクエスト本文で、ウェブサーバーのマシンタイプを指定します。

{
  "config": {
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

以下を置き換えます。

例:

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

{
  "config": {
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

Airflow ウェブサーバー インスタンスのマシンタイプは、web_server_config ブロックの machine_type フィールドで指定します。

resource "google_composer_environment" "example" {

  config {
    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

以下を置き換えます。

例:

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

  config {
    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
}

次のステップ