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 のドキュメントをご覧ください。
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[リソース] > [ワークロード構成] 項目で、[編集] をクリックします。
[リソース] > [スケジューラの数] 項目で、[編集] をクリックします。
[スケジューラの構成] ペインの [スケジューラの数] フィールドに、環境のスケジューラの数を指定します。
[保存] をクリックします。
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
environments.patchAPI リクエストを作成します。このリクエストで次のように操作します。
updateMaskパラメータで、config.workloadsConfig.schedulerCountマスクを指定します。リクエスト本文で、環境のスケジューラの数を指定します。
"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 スケジューラやその他の環境コンポーネントも実行します。
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[ワーカーノード] > [ノード数] 項目で、[編集] をクリックします。
[ワーカーノードの構成] ペインの [ノード数] フィールドに、環境内のノード数を指定します。
[保存] をクリックします。
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
environments.patchAPI リクエストを作成します。このリクエストで次のように操作します。
updateMaskパラメータで、config.nodeCountマスクを指定します。リクエスト本文で、環境のノード数を指定します。
"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 インスタンスのマシンタイプは変更できます。
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[リソース] > [Cloud SQL マシンタイプ] 項目で、[編集] をクリックします。
[Cloud SQL の構成] ペインの [Cloud SQL マシンタイプ] プルダウン リストで、環境の Cloud SQL インスタンスのマシンタイプを選択します。
[保存] をクリックします。
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
以下を置き換えます。
ENVIRONMENT_NAME: 環境の名前。LOCATION: 環境が配置されているリージョン。SQL_MACHINE_TYPE: Cloud SQL インスタンスのマシンタイプ。
例:
gcloud composer environments update example-environment \
--location us-central1 \
--cloud-sql-machine-type db-n1-standard-2
API
environments.patchAPI リクエストを作成します。このリクエストで次のように操作します。
updateMaskパラメータで、config.databaseConfig.machineTypeマスクを指定します。リクエスト本文で、Cloud SQL インスタンスのマシンタイプを指定します。
{
"config": {
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
}
}
}
以下を置き換えます。
SQL_MACHINE_TYPE: Cloud SQL インスタンスのマシンタイプ。
例:
// 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"
}
}
}
以下を置き換えます。
SQL_MACHINE_TYPE: Cloud SQL インスタンスのマシンタイプ。
例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
database_config {
machine_type = "db-n1-standard-2"
}
}
ウェブサーバーのマシンタイプの調整
環境の Airflow ウェブサーバーのマシンタイプは変更できます。
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[リソース] > [ウェブサーバーのマシンタイプ] の項目で [編集] をクリックします。
[ウェブサーバーの構成] ペインの [ウェブサーバーのマシンタイプ] プルダウン リストで、Airflow ウェブサーバーのマシンタイプを選択します。
[保存] をクリックします。
gcloud
環境内の Airflow ウェブサーバー インスタンスのマシンタイプは、--web-server-machine-type 引数で制御します。
次の Google Cloud CLI コマンドを実行します。
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--web-server-machine-type WS_MACHINE_TYPE
以下を置き換えます。
ENVIRONMENT_NAME: 環境の名前。LOCATION: 環境が配置されているリージョン。WS_MACHINE_TYPE: Airflow ウェブサーバー インスタンスのマシンタイプ。
例:
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-machine-type composer-n1-webserver-2
API
environments.patchAPI リクエストを作成します。このリクエストで次のように操作します。
updateMaskパラメータで、config.webServerConfig.machineTypeマスクを指定します。リクエスト本文で、ウェブサーバーのマシンタイプを指定します。
{
"config": {
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
以下を置き換えます。
WS_MACHINE_TYPE: Airflow ウェブサーバー インスタンスのマシンタイプ。
例:
// 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"
}
}
}
以下を置き換えます。
WS_MACHINE_TYPE: Airflow ウェブサーバー インスタンスのマシンタイプ。
例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}