このページでは、Fault Injection Testing の除外ウィンドウと、それを使用して重要なビジネス オペレーション中にアプリケーションとサービスを保護する方法について説明します。
除外期間を使用すると、復元性テストのスケジュールをより細かく制御できます。除外時間枠は、新しいフォールト インジェクション テストの開始を禁止する期間です。この機能は、次のような重大なイベントが発生したときにアプリケーションとサービスを保護するのに役立ちます。
- トラフィックのピーク時や販売イベントの大量発生時
- 大規模なシステム移行またはアップグレード
- 重要なメンテナンスの時間枠
除外時間枠が有効な間、Fault Injection Testing は、定義されたスコープ内で新しいテストを開始する試みをブロックします。除外時間枠が有効になる前にすでに実行されていたテストは、完了するまで続行できます。
除外時間枠の仕組み
スコープとターゲティング
除外ウィンドウを構成するときに、特定の Cloud リージョンを選択します。有効にすると、除外時間枠は、使用するテスト テンプレートに関係なく、指定されたリージョン内でのみ新しいテストが開始されないようにします。
有効化と期間
除外時間枠を作成すると、そのパラメータが定義されますが、すぐに有効になるわけではありません。有効にするには、ウィンドウを明示的に開始する必要があります。
有効な除外時間枠がテストのブロックを停止する方法は次の 2 つです。
- 自動有効期限: 各除外ウィンドウは期間で構成されます。有効にすると、この期間が経過するとウィンドウは自動的に無効になります。システムは終了時間(開始時間 + 期間)を計算し、現在の時間がこの終了時間を過ぎると、新しいテストのブロックを停止します。
- 手動停止: アクティブな除外時間枠は、スケジュールされた期間が終了する前に手動で停止できます。これは、クリティカル期間が予想よりも早く終了し、テストをすぐに再開したい場合に便利です。
Google Cloud コンソールで除外時間枠を管理する
続行する前に、roles/faulttesting.operator ロールが必要です。
除外時間枠を作成して構成する
- Google Cloud コンソールで、[Fault Injection Testing 除外ウィンドウ] ページに移動します。
- [除外期間を作成] をクリックします。
- [Cloud Region]、[Duration]、[Description](省略可)を指定します。
- [作成] をクリックします。
除外時間枠を手動で制御する
構成された除外ウィンドウの [開始] アクションと [停止] アクションは、 Google Cloud コンソールから直接手動でトリガーできます。
除外時間枠を自動的に有効にする
たとえば、定期メンテナンスの時間枠や定期的な予定に合わせて調整できます。除外時間枠の有効化を自動化するには:
- 除外ウィンドウを作成したら、UI に表示される
StartExclusionWindowRPC の HTTPS URL をコピーします。 - Cloud Scheduler などのスケジューリング サービスを使用して、選択した時間にこの URL にリクエストを送信するジョブを設定します。
Google Cloud CLI を使用して除外期間を管理する
除外ウィンドウ リソースは、gcloud alpha fault-testing
exclusion-windows コマンドを使用して管理できます。
除外時間枠を作成する
除外ウィンドウを作成するには、create コマンドを使用します。ウィンドウ ID、ターゲット リージョン、期間を指定します。
gcloud alpha fault-testing exclusion-windows create EXCLUSION_WINDOW_ID \
--location=REGION \
--duration=DURATION \
[--description="DESCRIPTION"]
次のように置き換えます。
EXCLUSION_WINDOW_ID: ウィンドウの一意の識別子(例:black-friday-freeze)。REGION: このウィンドウが適用される Google Cloud リージョン(us-central1など)。DURATION: 有効期間(秒単位で指定)。例: 24 時間の場合は86400s。DESCRIPTION: (省略可)ウィンドウの目的の説明。
例:
gcloud alpha fault-testing exclusion-windows create black-friday-freeze \
--location=us-east1 \
--duration=259200s \
--description="Exclusion window for Black Friday to Cyber Monday sales period"
除外時間枠を削除する
除外ウィンドウの定義を削除するには、delete コマンドを使用します。
gcloud alpha fault-testing exclusion-windows delete EXCLUSION_WINDOW_ID \
--location=REGION
除外時間枠を開始する
構成された除外期間を有効にするには、start コマンドを使用します。
gcloud alpha fault-testing exclusion-windows start EXCLUSION_WINDOW_ID \
--location=REGION
除外時間枠を停止する
有効な除外時間枠を手動で早期に無効にするには、stop コマンドを使用します。
gcloud alpha fault-testing exclusion-windows stop EXCLUSION_WINDOW_ID \
--location=REGION
ベスト プラクティス
除外期間を作成する際は、次の点を考慮してください。
- テストの重複を計画する。除外時間枠は、重要なビジネス期間が始まる少し前に開始します。実行中のテストは完了できるため、時間枠を早めに開始することで、重要な期間が始まる前にすべての障害が解消されます。
- わかりやすい識別子を使用する。ウィンドウの目的とスコープを識別するには、明確で意味のある ID(
black-friday-freezeやsystem-migration-us-east1など)を使用します。 - 期間をイベントタイプに合わせます。期間をクリティカル イベントの想定される長さに合わせます。主要なホリデー セールでは、複数日(たとえば 3 日間の場合は
259200s)の期間をおすすめします。 - 自動化を活用する。Cloud Scheduler を使用して、定期的なイベントや計画されたメンテナンスの除外時間枠の有効化を自動化し、手作業の労力と見落としのリスクを軽減します。
- 柔軟性を維持する。
stopコマンドを使用すると、クリティカル期間が予定より早く終了した場合に、ウィンドウを早期に終了して、すぐに復元力テストを再開できます。