Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
このページでは、復元性の高い(高可用性)Cloud Composer 環境を設定する方法について説明します。
復元力の高い(高可用性)環境について
復元性に優れた環境はマルチゾーンであり、選択したリージョンの少なくとも 2 つのゾーンで実行されます。Cloud Composer は、環境のコンポーネントをゾーン間で自動的に分散します。
たとえば、ゾーンの停止により、特定のゾーンで実行されている Airflow タスクが中断されます。その後、復元性に優れた環境は復旧し、影響を受けるコンポーネントを別のゾーンで再起動し、そのデータベースをセカンダリ ゾーンに切り替えます。そのため、DAG 実行の履歴やその他の設定を保持した状態で、Airflow により失敗した Airflow タスクを再スケジュール、再起動することができます。
環境の高可用性データベースについて
高可用性の Cloud Composer 環境では、環境のデータベースを保存する Cloud SQL コンポーネントは高可用性モードで実行されます。Cloud SQL のプライマリ インスタンスとスタンバイ インスタンスは、ゾーン間で分散されます。
停止が発生した場合、環境の Cloud SQL インスタンスは、スタンバイ Cloud SQL インスタンスへのデータベースの自動フェイルオーバーを実行します。Cloud Composer 環境で追加の操作を行う必要はありません。プライマリ ゾーンが再び動作するようになると、環境は 2 つのゾーン(プライマリとセカンダリ)を使用する状態に戻ります。一部のケースでは、プライマリ ゾーンとセカンダリ ゾーンを互いに入れ替えることができます。高可用性モードの Cloud SQL インスタンスは、フェイルオーバー後に同じ IP アドレスを使用します。
高可用性 Airflow コンポーネントについて
復元性に優れた環境はマルチゾーンであり、選択したリージョンの少なくとも 2 つのゾーンで実行されます。次のコンポーネントは、個別のゾーンで実行されます。
2 つの Airflow スケジューラ
少なくとも 2 つの triggerer(triggerer の数が 0 に設定されていない場合)
ウェブサーバー 2 台
ワーカーの最小数は 2 に設定され、環境のクラスタはワーカー インスタンスをゾーン間で分散します。ゾーンが停止した場合、影響を受けたワーカー インスタンスが別のゾーンで再スケジュールされます。
復元性に優れた環境のアーキテクチャの詳細については、復元性に優れた環境のアーキテクチャをご覧ください。
始める前に
-
Cloud Composer 2 では、高復元性はプライベート IP 環境でのみ使用できます。
復元性に優れた環境は、通常の環境と比べると増分課金にて提供されます。
復元性に優れた環境は、Cloud Composer バージョン 2.2.0 以降で使用できます。
スタンダード環境を復元性に優れた環境に更新する場合は、次の構成要件を満たしていることを確認してください。環境がこれらの要件を満たしていない場合は、スケールとパフォーマンスのパラメータを更新できます。
- Airflow ワーカーの最小数が 2 つ以上。
2 つの Airflow スケジューラ。
DAG で遅延可能な演算子を使用する場合は、triggerer が 2 つ以上。
復元性に優れた環境を作成する
復元性に優れた環境を作成するには、環境の作成時に高復元性モードを有効にします。
スタンダード環境を高復元性モードに更新する
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブを選択します。
[高復元性モード] セクションで、[編集] をクリックします。
[高復元性] を選択し、[保存] をクリックします。
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-high-resilience
以下を置き換えます。
ENVIRONMENT_NAME
: 環境の名前。LOCATION
: 環境が配置されているリージョン。
API
environments.patch
API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.resilienceMode
マスクを指定します。リクエストの本文で
HIGH_RESILIENCE
を指定して、高復元性モードに切り替えます。
例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "HIGH_RESILIENCE" }
}
}
Terraform
config
ブロックの resilience_mode
フィールドは、復元性モードを指定します。高復元性モードを使用するには、この値を HIGH_RESILIENCE
に設定します。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
}
}
以下を置き換えます。
ENVIRONMENT_NAME
: 環境の名前。LOCATION
: 環境が配置されているリージョン。
例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
}
復元性に優れた環境を標準復元性モードに変更する
環境はいつでも標準復元性モードに変更できます。この操作を実行すると、以下のようになります。
- 環境内のウェブサーバーの数を 1 つに減らします。
- 環境の Airflow データベースの高可用性モードをオフにします。
Airflow ワーカー、スケジューラ、triggerer の最小数の設定は変更しません。
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブを選択します。
[高復元性モード] セクションで、[編集] をクリックします。
[標準復元性(デフォルト)] を選択し、[保存] をクリックします。
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-high-resilience
以下を置き換えます。
ENVIRONMENT_NAME
: Cloud Composer 環境の名前LOCATION
: 環境が配置されているリージョン。
API
environments.patch
API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.resilienceMode
マスクを指定します。リクエストの本文で
RESILIENCE_MODE_UNSPECIFIED
を指定して、標準の復元性モードに切り替えます。
例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
}
}
Terraform
config
ブロックの resilience_mode
フィールドは、復元性モードを指定します。標準の復元性モードを使用するには、この値を STANDARD_RESILIENCE
に設定します。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
}
以下を置き換えます。
ENVIRONMENT_NAME
: 環境の名前。LOCATION
: 環境が配置されているリージョン。
例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
環境が高復元性モードで実行されているかどうかを確認します
コンソール
Google Cloud コンソールで、[環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブを選択します。
[高復元性モード] セクションで、環境の高復元性モードを表示します。
gcloud
ご使用の環境で高復元性モードが有効になっているかどうかを確認するには、次の Google Cloud CLI コマンドを実行します。True
の値は、環境で高復元性モードが有効になっていることを意味します。
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.resilienceMode)"
以下を置き換えます。
ENVIRONMENT_NAME
: Cloud Composer 環境の名前LOCATION
: 環境が配置されているリージョン。
次のステップ
- 復元性に優れた環境のフェイルオーバー テストを実行する。
- 環境のスナップショットを使用した障害復旧