環境をスケーリングする

Cloud Composer 1 | Cloud Composer 2

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

環境をスケールする仕組みについては、環境のスケーリングをご覧ください。

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

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

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

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

ノード数を調整する

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

この数は、環境内の Airflow ワーカーの数に対応します。環境ノードは、Airflow ワーカーを実行するだけでなく、Airflow スケジューラやその他の環境コンポーネントも実行します。

コンソール

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

    [環境] ページに移動

  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
    }

}

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

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

最大で環境内のノード数に相当するスケジューラ数を指定できます。

スケジューラの数を増やしても、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.schedulerCount マスクを指定します。

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

{
  "config": {
    "softwareConfig": {
      "schedulerCount": SCHEDULER_COUNT
    }
}

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

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

例:

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

{
  "config": {
    "softwareConfig": {
      "schedulerCount": 2
    }
}

Terraform

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

このフィールドは、Airflow 2 を使用する Cloud Composer 1 環境でのみ使用できます。

resource "google_composer_environment" "example" {

  config {
    software_config {
      scheduler_count = SCHEDULER_COUNT
    }
  }
}

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

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

例:

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

  config {
    software_config {
      scheduler_count = 2
    }
  }
}

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

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

コンソール

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

    [環境] ページに移動

  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 Console の [環境] ページに移動します。

    [環境] ページに移動

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

次のステップ