ゾーンオートシフトと練習実行の仕組み - Amazon Application Recovery Controller (ARC)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ゾーンオートシフトと練習実行の仕組み

Amazon Application Recovery Controller (ARC) のゾーンオートシフト機能を使用すると、 は、アベイラビリティーゾーンの顧客に影響を与える可能性のある障害があると が AWS 判断したときに、ユーザーに代わってリソースのトラフィックをアベイラビリティーゾーンから AWS 遠ざけることができます。ゾーンオートシフトは、 のすべてのアベイラビリティーゾーンで事前にスケーリングされたリソース用に設計されているため AWS リージョン、1 つのアベイラビリティーゾーンが失われてもアプリケーションが正常に動作します。

ゾーンオートシフトでは、 がリソースのトラフィックを 1 つのアベイラビリティーゾーンからARC定期的にシフトする練習実行を設定する必要があります。 は、練習実行設定が関連付けられているリソースごとに、毎週練習実行をARCスケジュールします。各リソースの練習実行は個別にスケジュールされます。

練習実行ごとに、 は結果ARCを記録します。練習実行がブロック条件によって中断された場合、練習実行の結果は成功としてマークされません。練習実行の結果の詳細については、「練習実行の結果」を参照してください。

オートシフトと練習実行に関する情報を送信するように Amazon EventBridge 通知を設定できます。詳細については、「Amazon でのゾーンオートシフトの使用 EventBridge」を参照してください。

トピック

がオートシフト AWS を開始および停止するとき

リソースのゾーンオートシフトを有効にすると、 AWS がユーザーに代わってイベント中にアプリケーションのリソーストラフィックをアベイラビリティーゾーンから遠ざけることを承認し、復旧までの時間を短縮できます。

これを実現するために、ゾーンオートシフトは AWS テレメトリを使用して、顧客に影響を与える可能性のあるアベイラビリティーゾーンの障害をできるだけ早く検出します。 AWS がオートシフトを開始すると、設定済みリソースへのトラフィックは、顧客に影響を与える可能性のある障害のあるアベイラビリティーゾーンからただちに遠ざけられます。

ゾーンオートシフトは、 内のすべてのアベイラビリティーゾーンのアプリケーションリソースを事前にスケーリングしたお客様向けに設計された機能です AWS リージョン。オートシフトまたは練習実行が開始されるとき、オンデマンドでのスケーリングに頼るべきではありません。

AWS は、アベイラビリティーゾーンが回復したと判断すると、オートシフトを終了します。

練習実行をARCスケジュール、開始、終了するタイミング

ARC は、リソースの練習実行を毎週約 30 分間スケジュールします。 は、各リソースの練習実行を個別にARCスケジュール、開始、管理します。 ARCは、同じアカウント内のリソースの練習実行をバッチ処理しません。

練習実行が予想された時間だけ中断されずに続行すると、SUCCESSFUL という結果でマークされます。他にも可能性のある結果として、FAILEDINTERRUPTED、および PENDING があります。結果の値と説明は、「練習実行の結果」セクションに記載されています。

が練習実行ARCを中断して終了するシナリオがいくつかあります。例えば、練習実行中にオートシフトが開始された場合、 は練習実行ARCを中断して終了します。別の例として、練習実行に対してリソースが不利な反応を示し、練習実行を監視するために指定したアラームが ALARM 状態になったとします。このシナリオでは、 は練習実行ARCを中断して終了します。

さらに、 がリソースのスケジュール練習実行を開始ARCしないシナリオがいくつかあります。

リソースの中断およびブロックされた練習実行に応じて、 は以下ARCを実行します。

  • リソースの練習実行が進行中の間に中断された場合、 はARC毎週の練習実行が終了と見なし、リソースの新しい練習実行を来週のスケジュールします。このシナリオでは、毎週の練習の結果は FAILED ではなく INTERRUPTED です。練習実行の結果が FAILED に設定されるのは、練習実行を監視する結果アラームが練習実行中に ALARM 状態になった場合のみです。

  • リソースの練習実行の開始がスケジュールされているときにブロック制約がある場合、 は練習実行を開始しません。 ARCは定期的なモニタリングARCを継続し、1 つ以上のブロック制約がまだあるかどうかを判断します。ブロック制約がない場合、 はリソースの練習実行ARCを開始します。

以下は、リソースの練習実行の開始または継続ARCを停止するブロック制約の例です。

  • ARC 進行中の AWS Fault Injection Service 実験がある場合、 は練習実行を開始または続行しません。ARC が練習実行の開始をスケジュールしたときに AWS FIS イベントがアクティブな場合、 ARCは練習実行を開始しません。 ARCは練習実行全体で AWS FIS イベントを含むブロック制約を監視します。練習実行がアクティブな間に AWS FIS イベントが開始された場合、 は練習実行ARCを終了し、リソースに対して次に定期的にスケジュールされている練習実行まで、別の練習実行を開始しようとしません。

  • リージョンに現在の AWS イベントがある場合、 ARCはリソースの練習実行を開始せず、リージョンでアクティブな練習実行を終了します。

練習実行が中断されずに終了すると、 は、通常どおり、次の練習実行を 1 週間でARCスケジュールします。指定した AWS FIS 実験やブロックされた時間枠などのブロック制約のために練習実行が開始されない場合、 は練習実行が開始されるまで練習実行の開始を試みARCます。

練習実行とオートシフトの通知

Amazon 通知を設定することで、リソースの練習実行とオートシフトに関する EventBridge 通知を受け取るように選択できます。オートシフトオブザーバー EventBridge 通知と呼ばれるリソースに対してゾーンオートシフトを有効にしていない場合に通知を設定することもできます。オートシフトオブザーバー通知では、アベイラビリティーゾーンに障害が発生した可能性があるときにARC開始されるすべてのオートシフトについて通知されます。このオプションは、通知 AWS リージョン を受信する各 で設定する必要があることに注意してください。

自動シフトオブザーバー通知を有効にする手順については、「」を参照してください ゾーンオートシフトの有効化と操作。通知オプションとその設定方法については EventBridge、「」を参照してくださいAmazon でのゾーンオートシフトの使用 EventBridge

ゾーンシフト、練習実行、およびオートシフトの優先順位

1 つのリソースに対して有効なトラフィックシフトは一度に 1 つだけです。つまり、そのリソースに対して 1 つの練習実行のゾーンシフト、顧客主導のゾーンシフト、またはオートシフトのみを設定できます。進行中のトラフィックシフトが複数ある場合、 は優先順位ARCに従って、リソースに対して有効なトラフィックシフトを決定します。

優先順位の全体的な原則は、顧客として開始するゾーンシフトがオートシフトよりも優先され、練習実行よりも優先されることです。つまり、顧客が開始したゾーンシフト > オートシフト > 練習実行のゾーンシフトです。

これを説明するために、いくつかのシナリオ例における優先順位の仕組みを以下に示します。

  • アクティブなオートシフトがあるときに、オートシフトが有効になっているリソースのゾーンシフトを開始した場合、開始するゾーンシフトは APPLIED になります。これで、リソースはゾーンシフトが適用されるアベイラビリティーゾーンから移動されます。 AWS がオートシフトを終了する前にゾーンシフトが終了した場合、オートシフトは APPLIED シフトになります。したがって、リソースは、 でオートシフト AWS が進行中のアベイラビリティーゾーンから遠ざけられます。

  • オートシフトが有効になっているリソースに対して開始されたアクティブなゾーンシフトがあり、オートシフト AWS を開始すると、そのリソースにオートシフトが存在します。ただし、ゾーンシフトは APPLIED に設定され、ゾーンシフトが終了するまでオートシフトは NOT APPLIED に設定されます。次に、オートシフトのステータスが に更新APPLIEDされ、オートシフトはオートシフト AWS が終了するまでリソースのトラフィックを遠ざけます。

  • あるリソースについてアクティブな練習実行があり、同じアベイラビリティーゾーンについてリソースのトラフィックを遠ざけるゾーンシフトを開始した場合、練習実行は中断されます。トラフィックを別のアベイラビリティーゾーンから遠ざけるゾーンシフトを開始した場合、練習実行は通常どおり続行されます。

  • リソースにアクティブなゾーンシフトがあり、練習実行を開始するようにスケジュールARCされている場合、練習実行は 1 時間延期されます。その後ARC、 は練習実行を再び開始しようとします。 は練習実行を開始できるまで 1 時間ごとにチェックARCし続けます。

リソースで現在実施されているトラフィックシフトは、適用されたゾーンシフトステータスが APPLIED に設定されています。一度に APPLIED に設定できるシフトは 1 つだけです。進行中の他のシフトは ACTIVE に設定されます。

リソースのアクティブなオートシフトまたは練習実行を停止する

リソースの進行中のオートシフトを停止するには、そのリソースのゾーンオートシフトを無効にします。

ゾーンオートシフトを無効にしても、リソースの練習実行の設定には影響しません。そのリソースについては、これまでと同じスケジュールで定期的に練習実行が行われます。オートシフトを無効にするだけでなく、練習実行も停止したい場合は、リソースに関連付けられている練習実行設定を削除する必要があります。

練習実行設定を削除すると、 は毎週リソースのトラフィックをアベイラビリティーゾーンから遠ざける練習実行の実行を AWS 停止します。さらに、ゾーンオートシフトには練習実行が必要なため、ARCコンソールを使用して練習実行設定を削除すると、このアクションによってリソースのゾーンオートシフトも無効になります。ただし、ゾーンオートシフトを使用して練習実行APIを削除する場合は、まずリソースのゾーンオートシフトを無効にする必要があることに注意してください。

アクティブな練習実行を停止するには、練習実行のゾーンシフトをキャンセルします。詳細については、「練習実行のゾーンシフトのキャンセル」を参照してください。

トラフィックを遠ざける方法

オートシフトおよび練習実行ゾーンシフトの場合、トラフィックは、 が顧客主導のゾーンシフトARCに使用するのと同じメカニズムを使用して、アベイラビリティーゾーンから遠ざけられます。ヘルスチェックが正常でない場合、Amazon Route 53 はリソースの対応する IP アドレスを から取り消しDNS、トラフィックがアベイラビリティーゾーンからリダイレクトされるようにします。新しい接続は、 AWS リージョン 代わりに の他のアベイラビリティーゾーンにルーティングされるようになりました。

オートシフトでは、アベイラビリティーゾーンが回復してオートシフトを終了する AWS と、 はヘルスチェックプロセスをARC逆にして、Route 53 ヘルスチェックの元に戻すようリクエストします。その後、元のゾーン IP アドレスが復元され、ヘルスチェックが引き続き正常であれば、アベイラビリティーゾーンがアプリケーションのルーティングに再び含まれます。

オートシフトは、ロードバランサーまたはアプリケーションの基盤となるヘルスをモニタリングするヘルスチェックに基づいていないことに注意してください。 ARCは、ヘルスチェックを使用してトラフィックをアベイラビリティーゾーンから遠ざけ、ヘルスチェックを異常に設定するようリクエストし、オートシフトまたはゾーンシフトが終了したときにヘルスチェックを再び正常に戻します。

練習実行のアラーム

ゾーンオートシフトでの練習実行には 2 つの CloudWatch アラームを指定できます。最初のアラーム、つまり結果アラームは必須です。30 分間の練習実行中にトラフィックがアベイラビリティーゾーンから遠ざけられるときに、結果アラームを設定して、アプリケーションの状態を監視する必要があります。

練習実行を有効にするには、1 つのアベイラビリティーゾーンの喪失によってアプリケーションに悪影響が及んだときに ALARM状態で応答するリソースまたはアプリケーションのメトリクスをモニタリングする CloudWatch アラームを結果アラームとして指定します。詳細については、「ゾーンオートシフトを設定する際のベストプラクティス」の「練習実行について指定するアラーム」セクションを参照してください。

結果アラームは、練習実行ごとに がARC報告する練習実行結果に関する情報も提供します。アラームが ALARM 状態になると、練習実行は終了し、練習実行の結果は FAILED として返されます。練習実行が予定されている 30 分間のテスト期間を完了しても結果アラームが ALARM 状態にならない場合、結果は SUCCEEDED として返されます。すべての結果値のリストと説明は、「練習実行の結果」セクションに記載されています。

オプションで、2 つ目のアラーム、ブロッキングアラームを指定できます。ブロッキングアラームは、練習実行が ALARM 状態のときに練習実行の開始または続行をブロックします。このアラームは、アラームが ALARM 状態になると、練習実行のトラフィックシフトの開始をブロックし、進行中の練習実行停止します。

例えば、複数のマイクロサービスを使用する大規模なアーキテクチャでは、1 つのマイクロサービスに問題が発生すると、通常、アプリケーション環境内の他のすべての変更を停止する必要があり、これにはブロッキング練習実行も含まれます。

ブロックされた日付とブロックされたウィンドウ (UTC)

では、特定のカレンダーの日付、または特定の時間枠、つまり日時に練習実行をブロックすることができますUTC。

例えば、2024 年 5 月 1 日にアプリケーションの更新を開始する予定があり、その時点で練習実行によってトラフィックが遠ざけられないようにしたい場合は、2024-05-01 をブロック日に設定できます。

または、ビジネスレポートの概要を週に 3 日作成するとします。このシナリオでは、 などで、繰り返し発生する次の日と時刻をブロックウィンドウとして設定できますUTC。 MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30