このページでは、Cloud Data Fusion インスタンスのメンテナンスの時間枠を定義する方法について説明します。
メンテナンス ウィンドウは、バージョン 6.8.0 以降の Cloud Data Fusion インスタンスでサポートされています。
メンテナンスの時間枠について
Cloud Data Fusion のメンテナンスの時間枠とは、メンテナンス オペレーションを実行できる期間です。この期間を設定することで、使用率がピークになる時間帯にサービスの中断が発生するリスクを軽減できます。メンテナンスの時間枠をオフピーク時間帯(アクティビティが少ない時間帯)にスケジュールすると、Cloud Data Fusion インスタンスとパイプラインの実行への影響を最小限に抑えることができます。
メンテナンスの時間枠を構成すると、インスタンスでメンテナンス オペレーションをいつ行うかを制御できます。
- メンテナンスの時間枠が定義されている場合、Cloud Data Fusion は定義された期間内にメンテナンス オペレーションを実行します。
- メンテナンスの時間枠が定義されていない場合、メンテナンスはいつでも実行できます。
メンテナンス オペレーションについて
Cloud Data Fusion は、システムのセキュリティとコンプライアンスを確保するために、定期的なメンテナンス オペレーションを実施します。これらのオペレーションには、脆弱性を軽減し、ユーザーデータを保護するために重要なアップデートとセキュリティ パッチを適用することが含まれます。スケジュールされたメンテナンス時間枠により、アップデートが効率的に適用され、システムの完全性が維持され、インスタンスとパイプラインの実行への停止が最小限に抑えられます。
- メンテナンスの時間枠を構成する場合は、メンテナンス オペレーションに週あたり 12 時間以上を割り当てる必要があります。各ウィンドウは 4 ~ 12 時間の範囲で指定してください。
メンテナンスの時間枠中は、特定のオペレーションに影響が及ぶ可能性があります。メンテナンスの時間枠は、使用率が低い時間帯に設定することをおすすめします。メンテナンス オペレーションは、次の方法で Cloud Data Fusion に影響する可能性があります。
- Cloud Data Fusion Studio インターフェースが一時的に使用できない場合があります。
- パイプラインの実行に影響し、失敗する可能性があります。
- Cloud Data Fusion サービスが一時的に停止し、API 呼び出しが失敗することがあります。
- メンテナンスの時間枠中は、インスタンスが完全に機能しなくなることがあります。パイプラインが実行されていないか、実行がスケジュールされていないときに、メンテナンス ウィンドウを設定することをおすすめします。
インスタンスの作成時にメンテナンスの時間枠を指定する
コンソール
インスタンスの作成時にメンテナンスの時間枠を設定するには、次の手順を行います。
- Cloud Data Fusion の [インスタンス] ページに移動し、[インスタンスを作成] をクリックします。
- インスタンス名とエディションを入力します。各フィールドの詳細については、インスタンスの作成をご覧ください。
- [詳細オプション] セクションを開きます。
- [メンテナンス] セクションを開き、次の操作を行います。
- [メンテナンスの時間枠を有効化] チェックボックスをオンにします。
- [開始時間] フィールドに、サポートされている形式で時刻を入力します。
- [タイムゾーン] リストで、タイムゾーンを選択します。
- [曜日] リストと [期間] リストで、曜日と時間枠の長さを選択します。これらの設定の詳細については、メンテナンス オペレーションについてをご覧ください。
- [作成] をクリックします。
詳細については、メンテナンスの時間枠の開始時刻と間隔の構成(RRULE)をご覧ください。
REST API
instance.create
API を使用してInstance
構成を設定します。
{
"name": string,
"description": string,
…
…
"maintenancePolicy": {
"maintenanceWindow": {
"recurringTimeWindow": {
"window": {
"startTime": "START_TIME",
"endTime": "END_TIME"
},
"recurrence": "MAINTENANCE_RECURRENCE"
}
},
}
}
次のように置き換えます。
START_TIME
: 時間枠の開始時間(RFC 3339 形式)。END_TIME
: 時間枠の終了時間(RFC 3339 形式)。MAINTENANCE_RECURRENCE
: メンテナンス時間枠の繰り返しの RRULE。Cloud Data Fusion は、次の形式のみをサポートしています。FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
またはBYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
これは、選択した曜日に、startTime
から指定した期間、週に 1 回ウィンドウを繰り返すことを指定します。
詳細については、メンテナンスの時間枠の開始時刻と間隔の構成(RRULE)をご覧ください。
次の例では、毎週土曜日と日曜日の午前 10 時~午後 4 時(UTC)の 6 時間のメンテナンスの時間枠でインスタンスを作成します。詳細については、インスタンス API ドキュメントをご覧ください。
// POST https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances?instanceID=example-instance
{
"maintenancePolicy": {
"maintenanceWindow": {
"recurringTimeWindow": {
"window": {
"startTime": "2024-01-01T10:00:00Z",
"endTime": "2024-01-01T16:00:00Z",
},
"recurrence": "FREQ=WEEKLY;BYDAY=SA,SU"
}
},
}
}
gcloud
メンテナンスの時間枠は、インスタンスの作成時に gcloud beta data-fusion instances create
コマンドを使用して指定できます。
メンテナンスの時間枠には、次のパラメータを定義する必要があります。
--maintenance-window-start
は、ウィンドウの開始時間を設定します。--maintenance-window-end
は、ウィンドウの終了時間を設定します。--maintenance-window-recurrence
は、メンテナンス時間枠の繰り返しの RRULE を設定します。
gcloud beta data-fusion instances create INSTANCE_NAME \
--project=PROJECT_NAME \
--location=LOCATION \
--maintenance-window-start=START_TIME \
--maintenance-window-end=END_TIME \
--maintenance-window-recurrence=MAINTENANCE_RECURRENCE
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前。PROJECT_NAME
: プロジェクトの名前。LOCATION
: インスタンスのリージョンの名前。START_TIME
: 日付/時刻の入力形式の期間の開始時間。指定した時刻のみが使用され、指定された日付は無視されます。END_TIME
: 期間の終了時間(日付/時刻入力形式)。指定した時刻のみが使用され、指定した日付は無視されます。指定する日付と時刻は開始日時より後にする必要があります。MAINTENANCE_RECURRENCE
: メンテナンス時間枠の繰り返しの RRULE。Cloud Data Fusion は、次の形式のみをサポートしています。FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
またはBYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
選択した曜日に、--maintenance-window-start
時刻から指定した期間、週に 1 回ウィンドウを繰り返すことを指定します。
詳細については、メンテナンスの時間枠の開始時刻と間隔(RRULE)の構成をご覧ください。
次のコマンドは、毎週土曜日と日曜日の午後 0 時~午後 6 時(UTC)の 6 時間のメンテナンスの時間枠でインスタンスを作成します。
gcloud beta data-fusion instances create example-instance \
--project='example-project' \
--location='us-east1' \
--maintenance-window-start='2024-01-01T12:00:00Z' \
--maintenance-window-end='2024-01-01T18:00:00Z' \
--maintenance-window-recurrence='FREQ=WEEKLY;BYDAY=SA,SU'
インスタンスのメンテナンスの時間枠を更新する
コンソール
Google Cloud コンソールで既存のインスタンスのメンテナンスの時間枠を更新するには、次の手順を行います。
Cloud Data Fusion の [インスタンス] ページに移動します。
インスタンス名をクリックして、インスタンスの詳細を表示します。
[インスタンスの詳細] ページで、[メンテナンスの時間枠] フィールドに移動し、[編集] をクリックします。
メンテナンスの時間枠フィールドが編集モードで開きます。必要に応じて値を更新します。
- [メンテナンスの時間枠を有効化] チェックボックスをオンにします。
- [開始時間] フィールドに、サポートされている形式で時刻を入力します。
- [タイムゾーン] リストで、タイムゾーンを選択します。
- [曜日] リストと [期間] リストで、曜日と期間を選択します。これらの設定の詳細については、メンテナンス オペレーションについてをご覧ください。
[保存] をクリックします。
詳細については、メンテナンスの時間枠の開始時刻と間隔(RRULE)の構成をご覧ください。
REST API
既存のインスタンスのメンテナンス時間枠を更新するには、instances.patch
API リクエストを使用します。既存のメンテナンスの時間枠の構成(存在する場合)はオーバーライドされます。それ以外の場合は、リクエスト本文に記載されているように、新しい構成が設定されます。
次のように API リクエストを作成します。
updateMask
パラメータで、maintenance_policy
マスクを指定します。- リクエスト本文で、メンテナンス ポリシーの構成にメンテナンスの時間枠を指定します。
{
"maintenancePolicy": {
"maintenanceWindow": {
"recurringTimeWindow": {
"window": {
"startTime": "START_TIME",
"endTime": "END_TIME"
},
"recurrence": "MAINTENANCE_RECURRENCE"
}
},
}
}
詳細については、メンテナンスの時間枠の開始時刻と間隔(RRULE)の構成をご覧ください。
次の例は、毎週金曜日、土曜日、日曜日の午前 11 時~午後 3 時(UTC)の 4 時間のメンテナンスの時間枠で、インスタンスのメンテナンス ポリシー構成を更新します。
// PATCH https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances/example-instance?updateMask=maintenance_policy
{
"maintenancePolicy": {
"maintenanceWindow": {
"recurringTimeWindow": {
"window": {
"startTime": "2024-01-01T11:00:00Z",
"endTime": "2024-01-01T15:00:00Z",
},
"recurrence": "FREQ=WEEKLY;BYDAY=FR,SA,SU"
}
},
}
}
gcloud
インスタンスのメンテナンス ウィンドウは、gcloud beta data-fusion instances update
コマンドを使用して更新できます。
メンテナンスの時間枠には、次のパラメータを定義する必要があります。
--maintenance-window-start
は、ウィンドウの開始時間を設定します。--maintenance-window-end
は、ウィンドウの終了時間を設定します。--maintenance-window-recurrence
は、メンテナンス時間枠の繰り返しの RRULE を設定します。
gcloud beta data-fusion instances update INSTANCE_NAME \
--project=PROJECT_NAME \
--location=LOCATION \
--maintenance-window-start=START_TIME \
--maintenance-window-end=END_TIME \
--maintenance-window-recurrence=MAINTENANCE_RECURRENCE
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前。PROJECT_NAME
: プロジェクトの名前。LOCATION
: インスタンスのリージョンの名前。START_TIME
: 日付/時刻の入力形式の期間の開始時間。指定した時刻のみが使用され、指定された日付は無視されます。END_TIME
: 期間の終了時間(日付/時刻入力形式)。指定した時刻のみが使用され、指定した日付は無視されます。指定する日付と時刻は開始日時より後にする必要があります。MAINTENANCE_RECURRENCE
: メンテナンス時間枠の繰り返しの RRULE。Cloud Data Fusion は、次の形式のみをサポートしています。FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
またはBYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
選択した曜日に、--maintenance-window-start
時刻から指定した期間、週に 1 回ウィンドウを繰り返すことを指定します。
次のコマンドは、毎週土曜日と日曜日の午後 0 時~午後 6 時(UTC)の 6 時間のメンテナンスの時間枠でインスタンス example-instance
を更新します。
gcloud beta data-fusion instances update example-instance \
--project='example-project' \
--location='us-east1' \
--maintenance-window-start='2024-01-01T12:00:00Z' \
--maintenance-window-end='2024-01-01T18:00:00Z' \
--maintenance-window-recurrence='FREQ=WEEKLY;BYDAY=SA,SU'
メンテナンスの時間枠の開始時刻と間隔(RRULE)を構成する
メンテナンスの時間枠の開始時間と終了時間を構成する場合、指定されたタイムスタンプの日付コンポーネントは無視されます。考慮されるのは、時刻と開始時間と終了時間の間の所要時間のみです。時刻は UTC で保存されますが、REST API または gcloud CLI を使用してメンテナンスの時間枠をスケジュールする場合は、UTC またはタイムゾーン オフセットを使用できます。
繰り返しを設定する場合は、RRULE は UTC 日付に従うことに注意してください。タイムゾーンが異なる場合は、それに応じて調整してください。たとえば、タイムゾーンが PDT(UTC-7)で、メンテナンスの時間枠を水曜日の 21:00(木曜日の UTC 4:00 に相当)から開始する場合は、RRULE の BYDAY
オプションで WE
ではなく TH
を指定します。
インスタンスのメンテナンスの時間枠を削除する
コンソール
Google Cloud コンソールで既存のインスタンスのメンテナンスの時間枠を削除する手順は次のとおりです。
Cloud Data Fusion の [インスタンス] ページに移動します。
インスタンス名をクリックして、インスタンスの詳細を表示します。
[インスタンスの詳細] ページで、[メンテナンスの時間枠] フィールドに移動し、[編集] をクリックします。
インスタンスからメンテナンスの時間枠を削除するには、[メンテナンスの時間枠を有効化] チェックボックスをオフにします。
[保存] をクリックします。
REST API
インスタンスからメンテナンスの時間枠を削除するには、リクエスト本文に空のメンテナンス ポリシー オブジェクトを渡します。
// PATCH https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances/example-instance?updateMask=maintenance_policy
{
"maintenancePolicy": {}
}
gcloud
インスタンスからメンテナンス時間枠を削除するには、--clear-maintenance-window
フラグを指定して gcloud beta data-fusion instances update
コマンドを使用します。
gcloud beta data-fusion instances update INSTANCE_NAME \
--project=PROJECT_NAME \
--location=LOCATION \
--clear-maintenance-window
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前。PROJECT_NAME
: プロジェクトの名前。LOCATION
: インスタンスのリージョンの名前。
次のステップ
- インスタンス API ドキュメントをご覧ください。