環境を更新する

Cloud Composer 1 | Cloud Composer 2

このページでは、環境を更新する方法について説明します。

更新オペレーションについて

新しいスケーリング パラメータやパフォーマンス パラメータの指定、カスタム PyPI パッケージのインストールを行うなど、環境のパラメータを変更すると、環境が更新されます。

このオペレーションが完了すると、環境で変更が利用可能になります。

単一の Cloud Composer 環境では、一度に 1 つの更新オペレーションしか開始できません。別の環境オペレーションを開始する前に、更新オペレーションが完了するまで待つ必要があります。

トリガーの CPU 上限

バージョン 2.4.4 の Cloud Composer では、すべての Cloud Composer 2 バージョンに適用される Airflow トリガー コンポーネントに異なるパフォーマンス スケーリング アプローチが導入されます。

バージョン 2.4.4 より前の Cloud Composer 環境では、最大 1 つまたは 2 つのトリガーを使用していました。 変更後、環境ごとに最大 10 個のトリガーを設定できますが、各トリガーは最大 1 個の vCPU に制限されます。

環境がトリガーごとに 1 つ以上の vCPU で構成されている場合、環境更新オペレーションは失敗します。他のコンポーネントで更新を実行するには、1 vCPU の上限を満たすように構成を調整する必要があります。

詳しくは以下をご覧ください。

更新による Airflow タスクの実行への影響

カスタム PyPI パッケージのインストールなど、更新オペレーションを実行すると、環境内のすべての Airflow スケジューラとワーカーが再起動し、現在実行中のタスクはすべて終了します。更新オペレーションが完了すると、DAG の再試行の構成方法に応じて、Airflow によってこれらのタスクの再試行がスケジュールされます。

Terraform を使用した更新

terraform apply の前に terraform plan を実行して、Terraform が環境を更新せずに新しい環境を作成するかどうかを確認します。

始める前に

  • ご使用のアカウント、環境のサービス アカウント、およびプロジェクトの Cloud Composer サービス エージェント アカウントに必要な権限があることを確認します。

  • オペレーションが完了すると、gcloud composer environments update コマンドは終了します。--async フラグを使用すると、オペレーションの完了を待つ必要がなくなります。

環境を更新する

環境の更新の詳細については、特定の更新オペレーションに関する他のドキュメント ページをご覧ください。例:

環境の詳細を表示する

Console

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

    [環境] に移動

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

gcloud

次の gcloud コマンドを実行します。

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。

API

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

例:

GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment

Terraform

環境のリソースに対して terraform state show コマンドを実行します。

環境の Terraform リソースの名前は、環境の名前と異なる場合があります。

terraform state show google_composer_environment.RESOURCE_NAME

次のように置き換えます。

  • RESOURCE_NAME は、環境のリソースの名前に置き換えます。

更新の変更のロールバック

まれに、(タイムアウトなどの理由で)更新オペレーションが中断され、リクエストされた変更がすべての環境コンポーネント(Airflow ウェブサーバーなど)でロールバックされないことがあります。

たとえば、更新オペレーションでは、追加の PyPI モジュールのインストールまたは削除、新しい Airflow 環境変数や Cloud Composer 環境変数の再定義や定義、Airflow 関連のパラメータの変更などが考えられます。

このような状況は、Cloud Composer クラスタの自動スケーリングやメンテナンス オペレーションなど、他のオペレーションの進行中に更新オペレーションがトリガーされた場合に発生することがあります。

このような場合は、オペレーションを繰り返すことをおすすめします。

更新またはアップグレード オペレーションの期間

ほとんどの更新またはアップグレード オペレーションでは、Airflow スケジューラ、ワーカー、ウェブサーバーなどの Airflow コンポーネントを再起動する必要があります。

コンポーネントを再起動したら、初期化する必要があります。初期化中に、Airflow スケジューラとワーカーは環境のバケットから /dags フォルダと /plugins フォルダの内容をダウンロードします。ファイルを Airflow スケジューラやワーカーに同期するプロセスは即時ではなく、これらのフォルダ内のすべてのオブジェクトの合計サイズと数によって異なります。

DAG ファイルとプラグイン ファイルのみを /dags フォルダと /plugins フォルダにそれぞれ保持し、他のファイルはすべて削除することをおすすめします。/dags フォルダと /plugins フォルダのデータが多すぎると Airflow コンポーネントの初期化が遅くなり、場合によっては初期化ができなくなる可能性があります。

/dags フォルダと /plugins フォルダに保持するデータは 30 MB 未満にし、100 MB を超えないようにすることをおすすめします。

詳細については、次の情報もご覧ください。

次のステップ