翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ゾーンオートシフトを設定する際のベストプラクティス
Amazon Application Recovery Controller (ARC) でゾーンオートシフトを有効にする際は、次のベストプラクティスと考慮事項に注意してください。
ゾーンオートシフトには、オートシフトと練習実行ゾーンシフトの 2 種類のトラフィックシフトがあります。
オートシフト AWS を使用すると、ユーザーに代わってイベント中にアプリケーションリソーストラフィックをアベイラビリティーゾーンから遠ざけることで、復旧までの時間を短縮できます。
練習実行では、ARC がユーザーに代わってゾーンシフトを開始、またはユーザーがゾーンシフトの練習実行を開始します。 AWS 練習実行ゾーンシフトは、リソースのアベイラビリティーゾーンからトラフィックをシフトし、毎週の頻度で再度シフトします。練習実行は、リージョンのアベイラビリティーゾーンの容量を十分にスケールアップして、1 つのアベイラビリティーゾーンが失われてもアプリケーションの正常な動作を確保できます。
オートシフトと練習実行では、ベストプラクティスと考慮すべき点がいくつかあります。ゾーンオートシフトを有効にしたり、リソースの練習実行を設定したりする前に、以下のトピックを確認してください。
トピック
- クライアントがエンドポイントに接続したままになる時間を制限する
-
Amazon Application Recovery Controller (ARC) がゾーンシフトやゾーンオートシフトなどを使用してトラフィックを障害から遠ざける場合、ARC がアプリケーショントラフィックを移動するために使用するメカニズムは DNS 更新です。DNS 更新により、すべての新しい接続が障害のある場所から遠ざけられます。ただし、既存のオープン接続を持つクライアントは、クライアントが再接続するまで、障害が発生したロケーションに対してリクエストを引き続き行う場合があります。迅速な復旧を確保するために、クライアントがエンドポイントに接続し続ける時間を制限することをお勧めします。
Application Load Balancer を使用する場合は、
keepaliveオプションを使用して接続の継続期間を設定できます。アプリケーションの目標復旧時間に合わせて、例えば 300 秒のようにkeepalive値を小さくすることをお勧めします。keepalive時間を設定する際は、一般的に再接続が増えてレイテンシーに影響が出ることと、障害のある AZ やリージョンからすべてのクライアントをより早く切り替えられることとのトレードオフである点を考慮してください。Application Load Balancer の
keepaliveのオプション設定の詳細については、「Application Load Balancer ユーザーガイド」の「 HTTP クライアントのキープアライブ期間」を参照してください。 - リソース容量の事前スケーリングとトラフィックの移行のテスト
-
がゾーン AWS シフトまたはオートシフトのためにトラフィックを 1 つのアベイラビリティーゾーンから遠ざける場合、残りのアベイラビリティーゾーンがリソースのリクエストレートの増加に対応できることが重要です。このパターンは静的安定性と呼ばれます。詳細については、The Amazon Builder's Library のホワイトペーパー「アベイラビリティーゾーンを使用した静的安定性
」を参照してください。 例えば、アプリケーションがクライアントにサービスを提供するために 30 個のインスタンスを必要とする場合、3 つのアベイラビリティーゾーンに 15 個のインスタンスをプロビジョニングして、合計 45 個のインスタンスをプロビジョニングする必要があります。これにより、 がオートシフトまたは練習実行中の 1 つのアベイラビリティーゾーンからトラフィックを遠ざ AWS ける場合でも、2 つのアベイラビリティーゾーンにまたがる残りの 30 個のインスタンスをアプリケーションのクライアントに提供AWS できます。
ARC のゾーンオートシフト機能は、1 つのアベイラビリティーゾーンが失われても正常に動作するように事前にスケーリングされたリソースを持つアプリケーションがある場合に、アベイラビリティーゾーンの AWS イベントから迅速に復旧するのに役立ちます。リソースのゾーンオートシフトを有効にする前に、 AWS リージョン内の設定済みのすべてのアベイラビリティーゾーンのリソース容量をスケーリングしてください。次に、リソースのゾーンシフトを開始して、トラフィックがアベイラビリティーゾーンから遠ざけられても、アプリケーションが正常に動作することをテストします。
ゾーンシフトでテストした後、ゾーンオートシフトを有効にして、アプリケーションリソースの練習実行を設定します。独自のオンデマンド練習実行を実行して、設定が適切にスケールされるようにします。ゾーンオートシフトを使った定期的な練習実行は、容量が引き続き適切にスケーリングされていることを継続的に確認するのに役立ちます。複数のアベイラビリティーゾーンにまたがって十分な容量があれば、アプリケーションはオートシフト中も中断することなくクライアントにサービスを提供し続けることができます。
リソースのゾーンシフトを開始する方法の詳細については、「ARC のゾーンシフト」を参照してください。
- リソースタイプと制約を理解する
ゾーンオートシフトは、ゾーンシフトによってサポートされるすべてのリソースについて、アベイラビリティーゾーン外へのトラフィックのシフトをサポートします。一部の特定のリソースシナリオでは、ゾーンオートシフトではオートシフトのためにアベイラビリティーゾーンからトラフィックがシフトされません。
例えば、アベイラビリティーゾーン内のロードバランサーのターゲットグループにインスタンスが含まれていない場合や、すべてのインスタンスが「異常」である場合、ロードバランサーはフェイルオープン状態になります。がこのシナリオでロードバランサーのオートシフト AWS を開始した場合、ロードバランサーが既にフェイルオープン状態になっているため、ロードバランサーが使用するアベイラビリティーゾーンはオートシフトによって変更されません。これは想定される動作です。Autoshift では、すべてのアベイラビリティーゾーンがオープンに失敗 (異常) AWS リージョン した場合、1 つのアベイラビリティーゾーンが異常になり、トラフィックを の他のアベイラビリティーゾーンにシフトすることはできません。
すべての要件や注意すべき例外など、サポートされているリソースの詳細を確認するには、「サポートされているリソース」を参照してください。
- 練習実行のアラームを指定する
-
ゾーンオートシフトによる練習実行には、少なくとも 1 つのタイプのアラーム (結果アラーム) を設定する必要があります。オプションで、2 番目のタイプのアラーム (ブロッキングアラーム) も設定できます。
リソースの練習実行に対して設定する CloudWatch アラームについて検討するときには、次の点に注意してください。
練習実行設定には、少なくとも 1 つの結果アラームを設定する必要があります。結果アラームについては、リソースまたはアプリケーションのメトリクスが、アベイラビリティーゾーンからトラフィックを遠ざけるとパフォーマンスに悪影響があることを示したときには、CloudWatch アラームを
ALARM状態になるように設定することをお勧めします。例えば、リソースのリクエストレートのしきい値を決定して、そのしきい値を超えたときにはALARM状態になるようにアラームを設定できます。 AWS が練習実行を終了してFAILED結果を返すように、適切なアラームを設定する必要があります。重要業績評価指標 (KPI) を CloudWatch アラームとして実装することを推奨している「AWS Well Architected フレームワーク」に従うことをお勧めします。その場合、これらのアラームを使用して、安全トリガーとして使用する複合アラームを作成し、アプリケーションが KPI を見逃す可能性がある場合には練習実行が開始されないようにすることができます。アラームが
ALARM状態でなくなると、ARC はそのリソースに対して次回の練習実行がスケジュールされている時点で練習実行を開始します。練習実行のブロックアラームでは、1 つ (または複数) を設定することを選択した場合、 AWS 練習実行を開始しないことを示すために使用する特定のメトリクスを追跡することを選択できます。例えば、アラームが進行中のインシデントがあることを示す場合などです。
練習実行アラームでは、各アラームの Amazon リソースネーム (ARN) を指定します。そのため、まず Amazon CloudWatch でアラームを設定する必要があります。指定する CloudWatch アラームは複合アラームでもかまいません。これにより、アラームの
ALARM状態への移行をトリガーできるアプリケーションとリソースの複数のメトリクスとチェックを含めることができます。または、個別のアラームを設定してから、練習実行設定で各タイプの複数のアラームを指定できます。詳細については、「Amazon CloudWatch ユーザーガイド」の「アラームの結合」を参照してください。練習実行について指定する CloudWatch アラームが、練習実行を設定しているリソースと同じリージョンにあることを確認してください。
- 練習実行の結果を評価する
ARC は各練習実行の結果を報告します。練習実行の後、結果を評価し、アクションを実行する必要があるかどうかを判断します。例えば、容量のスケーリングやアラーム設定の調整が必要になる場合があります。
可能な練習実行の結果は以下のとおりです。
SUCCEEDED: 練習実行中に結果アラームが
ALARM状態にならず、練習実行は 30 分間のテスト期間をすべて完了しました。FAILED: 練習実行中に少なくとも 1 つの結果アラームが
ALARM状態になりました。INTERRUPTED: 結果アラームが
ALARM状態になったのではない理由で、練習実行は終了しました。練習実行は、以下のようなさまざまな理由で中断される可能性があります。でオートシフト AWS が開始された AWS リージョン か、リージョンにアラーム条件が発生したため、練習実行が終了しました。
練習実行は、リソースの練習実行設定が削除されたために、終了しました。
練習実行は、練習実行ゾーンシフトでトラフィックが遠ざけられたアベイラビリティーゾーンのリソースについて、顧客開始のゾーンシフトが開始されたために終了しました。
練習実行は、練習実行設定に指定された CloudWatch アラームにアクセスできなくなったために終了しました。
練習実行に指定されたブロッキングアラームが
ALARM状態に入ったため、練習実行は終了しました。練習実行は未知の理由で終了しました。
-
優先されるゾーンオートシフトが開始されたため、練習実行が終了しました。「ゾーンシフトの優先順位」を参照してください。
CAPACITY_CHECK_FAILED: アベイラビリティーゾーン間におけるロードバランシングと Auto Scaling グループリソースとのバランスの取れたキャパシティのチェックに失敗しました。
PENDING: 練習実行はアクティブ (進行中) です。まだ結果は戻されていません。