このページでは、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 の [インスタンス] ページに移動し、[インスタンスを作成] をクリックします。
- [インスタンス名] と [エディション] を入力します。各フィールドの詳細については、インスタンスを作成するをご覧ください。
- [詳細オプション] セクションを開きます。
- [メンテナンス] セクションを開き、次の手順を行います。
- [メンテナンスの時間枠を有効化] チェックボックスをオンにします。
- [開始時間] フィールドに、サポートされている形式で時間を入力します。
- [TimeZone] リストで、タイムゾーンを選択します。
- [Days] リストと [Length] リストで、曜日と時間枠の長さを選択します。これらの設定の詳細については、メンテナンス オペレーションについてをご覧ください。
- [作成] をクリックします。
詳細については、メンテナンスの時間枠の開始時刻と間隔の構成(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
から指定した期間のウィンドウの繰り返しが指定されます。
詳細については、メンテナンスの時間枠の開始時刻と間隔の構成(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
時刻から開始し、指定した期間で毎週時間枠を繰り返すことを指定します。
詳細については、メンテナンスの時間枠の開始時刻と間隔(RRULE)の構成をご覧ください。
次のコマンドは、毎週土曜日と日曜日の午後 12 時~午後 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 の [インスタンス] ページに移動します。
インスタンス名をクリックして、インスタンスの詳細を表示します。
[インスタンスの詳細] ページで、[メンテナンスの時間枠] フィールドに移動し、[編集] をクリックします。
メンテナンスの時間枠フィールドが編集モードで開きます。必要に応じて値を更新します。
- [メンテナンスの時間枠を有効化] チェックボックスをオンにします。
- [開始時間] フィールドに、サポートされている形式で時間を入力します。
- [TimeZone] リストで、タイムゾーンを選択します。
- [Days] リストと [Length] リストで、曜日と期間を選択します。これらの設定の詳細については、メンテナンス オペレーションについてをご覧ください。
[保存] をクリックします。
詳細については、メンテナンスの時間枠の開始時刻と間隔(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
時刻から開始し、指定した期間で毎週時間枠を繰り返すことを指定します。
次のコマンドは、毎週土曜日と日曜日の午後 12 時~午後 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 ドキュメントをご覧ください。