環境のメンテナンスの時間枠の指定

このページでは、環境のメンテナンス時間枠を定義する方法について説明します。

Cloud Composer 環境は、他の Google Cloud サービスの上に構築されます。こうしたサービスの中には、既存のリソースの構成にパッチを適用する場合など、メンテナンス操作が必要なものがあります。多くの場合、メンテナンス操作は、GKE と Cloud SQL のリソースに必要になります。

メンテナンスの時間枠の使用方法

メンテナンス オペレーションは DAG と Airflow タスクの実行に影響する可能性があるため、次の手順を行うことをおすすめします。

  1. Cloud Composer 環境のメンテナンス時間枠を定義する。

  2. DAG の start_dateschedule_interval パラメータを使用して、指定したメンテナンスの時間枠外で DAG の実行をスケジュールする。

新規または既存の Cloud Composer 環境のメンテナンス時間枠を定義できます。明示的なメンテナンスの時間枠を指定しない場合、メンテナンス オペレーションの時間がは、DAG 実行のスケジュールを考慮することなく自動的に選択されます。

新しい環境のメンテナンス時間枠の指定

コンソール

環境を作成するときにメンテナンスの時間枠を定義するには、以下を実行します。

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

    [環境の作成] に移動

  2. [ネットワーキング、Airflow 構成のオーバーライド、その他の機能] セクションを展開します。

  3. [メンテナンスの時間枠] セクションで、[メンテナンスの時間枠にカスタム時間を設定する] チェックボックスをオンにします。

  4. [開始時刻]、[タイムゾーン]、[日数]、[長さ] を設定し、指定したスケジュールを組み合わせた時間が、少なくとも 12 時間を 7 日間で繰り返す時間枠になるようにします。たとえば、毎週月曜日、水曜日、金曜日の 4 時間に、必要な時間を指定します。

  5. 他のすべての手順を行い、環境を作成します。

gcloud

メンテナンスの時間枠のパラメータは、環境を作成するときに次の引数で定義します。

  • --maintenance-window-start は、メンテナンス時間枠の開始時間を設定します。
  • --maintenance-window-end は、メンテナンス時間枠の終了時間を設定します。
  • --maintenance-window-recurrence は、メンテナンス時間枠の繰り返しを設定します。
gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

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

  • ENVIRONMENT_NAME を環境の名前にする。
  • DATETIME_START を、日付 / 時刻の入力形式の開始日時にする。指定した時刻のみが使用され、指定された日付は無視されます。
  • DATETIME_END を、終了日付 / 時刻入力形式の日時にする。指定した時刻のみが使用され、指定した日付は無視されます。指定する日付と時刻は開始日より後にする必要があります。
  • MAINTENANCE_RECURRENCE を、繰り返しのメンテナンス時間枠の RFC 5545 RRULE にする。Cloud Composer では、次の 2 つの形式がサポートされています。

    • FREQ=DAILY 形式は、毎日の繰り返しを指定します。
    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 形式は、選択した曜日の繰り返しを指定します。

次の例は、日曜日、水曜日、土曜日の 01:00~07:00(UTC)の 6 時間のメンテナンス時間枠を示しています。2021 年 1 月 1 日は無視されます。

gcloud beta composer environments create example-environment \
  --location us-central1 \
  --maintenance-window-start '2021-01-01T01:00:00Z' \
  --maintenance-window-end '2021-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

既存の環境のメンテナンス時間枠の指定

コンソール

既存の環境のメンテナンス時間枠を定義または変更するには、環境を更新します。

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

[環境] に移動

  1. 環境を選択して、詳細を表示します。

  2. [環境の設定] タブに移動します。

  3. [メンテナンスの時間枠] のエントリの横にある [編集] をクリックします。

  4. [メンテナンスの時間枠] ダイアログで、[メンテナンスの時間枠にカスタム時間を設定する] チェックボックスをオンにします。

  5. [開始時刻]、[タイムゾーン]、[日数]、[長さ] を設定し、指定したスケジュールを組み合わせた時間が、少なくとも 12 時間を 7 日間で繰り返す時間枠になるようにします。たとえば、毎週月曜日、水曜日、金曜日の 4 時間に、必要な時間を指定します。

  6. [保存] をクリックして、環境が更新されるまで待ちます。

gcloud

メンテナンスの時間枠のパラメータは、環境を更新するときに次の引数で定義します。

  • --maintenance-window-start は、メンテナンス時間枠の開始時間を設定します。
  • --maintenance-window-end は、メンテナンス時間枠の終了時間を設定します。
  • --maintenance-window-recurrence は、メンテナンス時間枠の繰り返しを設定します。
gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

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

  • ENVIRONMENT_NAME を環境の名前にする。
  • DATETIME_START を、日付 / 時刻の入力形式の開始日時にする。指定した時刻のみが使用され、指定された日付は無視されます。
  • DATETIME_END を、終了日付 / 時刻入力形式の日時にする。指定した時刻のみが使用され、指定した日付は無視されます。指定する日付と時刻は開始日より後にする必要があります。
  • MAINTENANCE_RECURRENCE を、繰り返しのメンテナンス時間枠の RFC 5545 RRULE にする。Cloud Composer では、次の 2 つの形式がサポートされています。

    • FREQ=DAILY 形式は、毎日の繰り返しを指定します。
    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 形式は、選択した曜日の繰り返しを指定します。

次の例は、日曜日、水曜日、土曜日の 01:00~07:00(UTC)の 6 時間のメンテナンス時間枠を示しています。2021 年 1 月 1 日は無視されます。

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --maintenance-window-start '2021-01-01T01:00:00Z' \
  --maintenance-window-end '2021-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

次のステップ