翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ゾーンオートシフトと練習実行の仕組み
Amazon Application Recovery Controller (ARC) のゾーンオートシフト機能を使用すると、 がアベイラビリティーゾーンの顧客に影響を与える可能性のある障害がある AWS と判断した場合、ユーザーに代わってリソースのトラフィックをアベイラビリティーゾーンから AWS 遠ざけることができます。ゾーンオートシフトは、 のすべてのアベイラビリティーゾーンで事前にスケーリングされたリソース用に設計されているため AWS リージョン、アプリケーションは 1 つのアベイラビリティーゾーンが失われても正常に動作します。
ゾーンオートシフトでは、ARC がリソースのトラフィックを 1 つのアベイラビリティーゾーンから定期的に移行する練習実行を設定する必要があります。ARC は、練習実行設定が関連付けられているリソースごとに、練習実行を約毎週スケジュールします。各リソースの練習実行は個別にスケジュールされます。
練習実行ごとに、ARC は結果を記録します。練習実行がブロック条件によって中断された場合、練習実行の結果は成功としてマークされません。練習実行の結果の詳細については、「練習実行の結果」を参照してください。
Amazon EventBridge 通知を設定して、オートシフトや練習実行についてアラートを受け取ることができます。詳細については、「Amazon EventBridge でのゾーンオートシフトの使用」を参照してください。
トピック
- がオートシフト AWS を開始および停止するとき
-
リソースのゾーンオートシフトを有効にすると、復旧までの時間を短縮 AWS するために、 がイベント中にアベイラビリティーゾーンからアプリケーションのリソーストラフィックを移行することを許可します。
これを実現するために、ゾーンオートシフトは AWS テレメトリを使用して、顧客に影響を与える可能性のあるアベイラビリティーゾーンの障害をできるだけ早く検出します。 AWS がオートシフトを開始すると、設定済みリソースへのトラフィックは、顧客に影響を与える可能性のある障害のあるアベイラビリティーゾーンからただちに遠ざけられます。
ゾーンオートシフトは、 内のすべてのアベイラビリティーゾーンのアプリケーションリソースを事前にスケーリングしたお客様向けに設計された機能です AWS リージョン。オートシフトまたは練習実行が開始されるとき、オンデマンドでのスケーリングに頼るべきではありません。
AWS は、アベイラビリティーゾーンが回復したと判断されると、オートシフトを終了します。
- ARC が練習実行をスケジュール、開始、終了するとき
-
ARC は、リソースの練習実行を毎週約 30 分間スケジュールします。ARC は、各リソースの練習実行を個別にスケジュール、開始、管理します。ARC は、同じアカウントのリソースの練習実行をバッチ処理しません。
練習実行が予想された時間だけ中断されずに続行すると、
SUCCESSFUL
という結果でマークされます。他にも可能性のある結果として、FAILED
、INTERRUPTED
、および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 はリソースの練習実行を開始せず、リージョンでアクティブな練習実行を終了します。
練習実行が中断されずに終了すると、ARC は通常のように次の練習実行を 1 週間でスケジュールします。指定した AWS FIS 実験やブロックされた時間枠などのブロック制約のために練習実行が開始されない場合、ARC は練習実行が開始されるまで練習実行の開始を試行し続けます。
- 練習実行とオートシフトの通知
-
Amazon EventBridge 通知を設定することで、リソースの練習実行とオートシフトに関する通知を受け取るように選択できます。Autoshift オブザーバー通知と呼ばれるリソースに対してゾーンオートシフトを有効にしていない場合は、EventBridge 通知を設定することもできます。 Autoshift オブザーバー通知では、アベイラビリティーゾーンに障害が発生した可能性があるときに ARC が開始するすべての Autoshift について通知されます。このオプションは、通知 AWS リージョン を受信する各 で設定する必要があることに注意してください。
Autoshift オブザーバー通知を有効にする手順については、「」を参照してください ゾーンオートシフトの有効化と操作。通知オプションの詳細と EventBridge での設定方法については、「」を参照してくださいAmazon EventBridge でのゾーンオートシフトの使用。
- ゾーンシフトの優先順位
-
一度に適用できるゾーンシフトは 1 つのみです。つまり、リソースに対して 1 つの練習実行ゾーンシフト、お客様が開始したゾーンシフト、オートシフト、または AWS FIS 実験のみです。2 番目のゾーンシフトが開始されると、ARC は優先順位に従って、リソースに対して有効なゾーンシフトタイプを決定します。
優先順位の全体的な原則は、顧客として開始するゾーンシフトが他のシフトタイプよりも優先されることです。
これを説明するために、いくつかのシナリオ例における優先順位の仕組みを以下に示します。
ゾーンシフトタイプが適用されました ゾーンシフトタイプが開始されました 結果 AWS FIS 実験 練習実行 AWS FIS 実験が優先されるため、練習実行は開始されません。 AWS FIS 実験 手動ゾーンシフト AWS FIS 実験はキャンセルされ、手動ゾーンシフトが適用されます。 AWS FIS 実験 ゾーンオートシフト AWS FIS 実験はキャンセルされ、ゾーンオートシフトが適用されます。 AWS FIS 実験 AWS FIS 実験 自動 AWS FIS シフトアクションをトリガーした既存の AWS FIS 実験が実行されているため、開始された実験は開始できません。 練習実行 手動ゾーンシフト 練習実行は中断され、 に設定され INTERRUPTED
、ゾーンシフトが適用されます。練習実行 AWS FIS 実験 練習実行は中断され、 に設定され INTERRUPTED
AWS FIS 、実験が適用されます。練習実行 ゾーンオートシフト 練習実行は中断され、 に設定され INTERRUPTED
、ゾーンオートシフトが適用されます。手動ゾーンシフト 練習実行 練習実行は開始できません。 手動ゾーンシフト AWS FIS 実験 AWS FIS 実験は開始に失敗するか、すでに進行中の場合は失敗します。 手動ゾーンシフト ゾーンオートシフト ゾーンオートシフトは リソース APPLIED
にありますACTIVE
が、 にはありません。手動ゾーンシフトが優先されます。ゾーンオートシフト AWS FIS 実験 AWS FIS 実験は開始に失敗するか、進行中の場合は失敗します。 ゾーンオートシフト 手動ゾーンシフト ゾーンオートシフトは リソース APPLIED
にありますACTIVE
が、 にはありません。手動ゾーンシフトが優先されます。ゾーンオートシフト 練習実行 ゾーンオートシフトが優先されるため、練習実行は開始できません。 リソースで現在実施されているトラフィックシフトは、適用されたゾーンシフトステータスが
APPLIED
に設定されています。一度にAPPLIED
に設定できるシフトは 1 つだけです。進行中の他のシフトは に設定されますがNOT_APPLIED
、ACTIVE
ステータスのままです。 - リソースのアクティブなオートシフトまたは練習実行を停止する
リソースの進行中のオートシフトを停止するには、ゾーンシフトをキャンセルする必要があります。
そのリソースについては、これまでと同じスケジュールで定期的に練習実行が行われます。オートシフトを無効にするだけでなく、練習実行も停止したい場合は、リソースに関連付けられている練習実行設定を削除する必要があります。
練習実行設定を削除すると、 はリソースのトラフィックを毎週アベイラビリティーゾーンから遠ざける練習実行の実行を AWS 停止します。さらに、ゾーンオートシフトには練習実行が必要なため、ARC コンソールを使用して練習実行設定を削除すると、このアクションによってリソースのゾーンオートシフトも無効になります。ただし、ゾーンオートシフト API を使用して練習実行を削除する場合は、まずリソースのゾーンオートシフトを無効にする必要があることに注意してください。
詳細については、「ゾーンオートシフトのキャンセル」および「 ゾーンオートシフトの有効化と操作」を参照してください。
- トラフィックを遠ざける方法
自動シフトおよび練習実行ゾーンシフトの場合、トラフィックは、ARC が顧客主導のゾーンシフトに使用するのと同じメカニズムを使用して、アベイラビリティーゾーンから遠ざけられます。ヘルスチェックに異常があると、Amazon Route 53 はリソースの対応する IP アドレスを DNS から取り消し、トラフィックがアベイラビリティーゾーンからリダイレクトされるようにします。新しい接続は、 AWS リージョン 代わりに の他のアベイラビリティーゾーンにルーティングされるようになりました。
オートシフトでは、アベイラビリティーゾーンが回復してオートシフトを終了する AWS と、ARC はヘルスチェックプロセスを元に戻して、Route 53 ヘルスチェックの元に戻すようリクエストします。その後、元のゾーン IP アドレスが復元され、ヘルスチェックが引き続き正常であれば、アベイラビリティーゾーンがアプリケーションのルーティングに再び含まれます。
オートシフトは、ロードバランサーやアプリケーションの基本的な状態を監視するヘルスチェックに基づくものではないことに注意することが重要です。ARC は、ヘルスチェックを異常に設定するようリクエストすることで、ヘルスチェックを使用してトラフィックをアベイラビリティーゾーンから遠ざけ、オートシフトまたはゾーンシフトが終了したときにヘルスチェックを再び正常に戻します。
- 練習実行のアラーム
ゾーンオートシフトの練習実行について 2 つの CloudWatch アラームを指定できます。最初のアラーム、つまり結果アラームは必須です。30 分間の練習実行中にトラフィックがアベイラビリティーゾーンから遠ざけられるときに、結果アラームを設定して、アプリケーションの状態を監視する必要があります。
練習実行を効果的に実行するには、リソースまたはアプリケーションのメトリクスを監視する CloudWatch アラームを結果アラームとして指定します。このアラームは、1 つのアベイラビリティーゾーンが失われたことでアプリケーションが悪影響を受けたときに
ALARM
状態を返します。詳細については、「ゾーンオートシフトを設定する際のベストプラクティス」の「練習実行について指定するアラーム」セクションを参照してください。結果アラームは、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
)。