Cloud Composer 1 | Cloud Composer 2
このページでは、Cloud Composer 1 で Cloud Composer 環境をスケールする方法について説明します。
環境をスケールする仕組みについては、環境のスケーリングをご覧ください。
垂直方向と水平方向のスケーリング
Cloud Composer 1 では、ワーカーやスケジューラなどの Cloud Composer コンポーネントや Airflow コンポーネントに固有の CPU やメモリリソースを定義しません。代わりに、環境のクラスタ内にあるノードのマシンの数とタイプを指定します。
水平方向のスケーリングの選択肢:
垂直方向のスケーリングの選択肢:
ノード数を調整する
環境内のノード数は、変更できます。
この数は、環境内の Airflow ワーカーの数に対応します。環境ノードは、Airflow ワーカーを実行するだけでなく、Airflow スケジューラやその他の環境コンポーネントも実行します。
コンソール
Google Cloud Console の [環境] ページに移動します。
環境を選択します。
[環境の設定] タブに移動します。
[ワーカーノード] > [ノード数] 項目で、[編集] をクリックします。
[ワーカーノードの構成] ダイアログの [ノード数] フィールドに、環境内のノード数を指定します。
[保存] をクリックします。
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.patch
API リクエストを作成します。このリクエストで次のように操作します。
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
}
}
スケジューラの数を調整する
ご利用の環境では、同時に複数の Airflow スケジューラを実行できます。複数のスケジューラを使用して複数のスケジューラ インスタンス間で負荷を分散すると、パフォーマンスと信頼性が向上します。
最大で環境内のノード数に相当するスケジューラ数を指定できます。スケジューラの数を増やしても、Airflow のパフォーマンスが常に改善されるとは限りません。たとえば、スケジューラが 1 つだけでも、2 つの場合よりも良いパフォーマンスの場合があります。これは、追加のスケジューラが使用されないため、全体的なパフォーマンスに寄与せずに環境のリソースを消費した場合に発生する可能性があります。実際のスケジューラのパフォーマンスは、Airflow ワーカーの数、環境内で実行される DAG とタスクの数、Airflow と環境の両方の構成によって異なります。
2 つのスケジューラを設定した状態で開始し、環境のパフォーマンスをモニタリングすることをおすすめします。スケジューラの数を変更する場合は、いつでも環境を元のスケジューラ数にスケールダウンできます。
複数のスケジューラの構成の詳細については、Airflow のドキュメントをご覧ください。
コンソール
Google Cloud Console の [環境] ページに移動します。
環境を選択します。
[環境の設定] タブに移動します。
[リソース] > [スケジューラの数] 項目で、[編集] をクリックします。
[スケジューラの構成] ダイアログの [スケジューラの数] フィールドに、環境のスケジューラの数を指定します。
[保存] をクリックします。
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
environments.patch
API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.softwareConfig.schedulerCount
マスクを指定します。リクエスト本文で、環境のノード数を指定します。
{
"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 インスタンスのマシンタイプは変更できます。
コンソール
Google Cloud Console の [環境] ページに移動します。
環境を選択します。
[環境の設定] タブに移動します。
[リソース] > [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.patch
API リクエストを作成します。このリクエストで次のように操作します。
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 Console の [環境] ページに移動します。
環境を選択します。
[環境の設定] タブに移動します。
[リソース] > [ウェブサーバーのマシンタイプ] の項目で [編集] をクリックします。
[ウェブサーバーの構成] ダイアログで、[ウェブサーバーのマシンタイプ] プルダウン リストから 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.patch
API リクエストを作成します。このリクエストで次のように操作します。
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"
}
}