ゾーンオートシフトを設定する際のベストプラクティス - Amazon Route 53 Application Recovery Controller

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

ゾーンオートシフトを設定する際のベストプラクティス

Amazon Route 53 Application Recovery Controller でゾーンオートシフトを有効にするときは、次のベストプラクティスと考慮事項に注意してください。

ゾーンオートシフトには、オートシフトと練習実行ゾーンシフトの 2 種類のトラフィックシフトが含まれます。

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

  • 練習実行では、Route 53 ARC がユーザーに代わってゾーンシフトを開始します。ゾーンシフトは、リソースのアベイラビリティーゾーンからトラフィックを遠ざけ、毎週の頻度で再びトラフィックをシフトします。練習実行は、リージョンのアベイラビリティーゾーンの容量を十分にスケールアップして、1 つのアベイラビリティーゾーンが失われてもアプリケーションの正常な動作を確保できます。

オートシフトと練習実行に留意すべきベストプラクティスと考慮事項がいくつかあります。ゾーンオートシフトを有効にしたり、リソースの練習実行を設定したりする前に、以下のトピックを確認してください。

トピック

クライアントがエンドポイントに接続し続ける時間を制限する

Amazon Route 53 Application Recovery Controller がゾーンシフトやゾーンオートシフトなどを使用してトラフィックを障害から遠ざける場合、Route 53 ARC がアプリケーショントラフィックを移動するために使用するメカニズムは DNS 更新です。DNS を更新すると、すべての新しい接続が障害が発生した場所から遠ざけられます。ただし、既存のオープン接続を持つクライアントは、クライアントが再接続するまで、障害が発生したロケーションに対して引き続きリクエストを行う場合があります。迅速な復旧を確保するために、クライアントがエンドポイントに接続したままになる時間を制限することをお勧めします。

Application Load Balancer を使用する場合は、 keepaliveオプションを使用して接続の継続時間を設定できます。300 秒など、アプリケーションの目標復旧時間に合わせてkeepalive値を小さくすることをお勧めします。keepalive 時間を選択するときは、この値が一般的に再接続の頻度が高いことによるトレードオフであり、レイテンシーに影響を与える可能性があり、すべてのクライアントを障害のある AZ またはリージョンからより迅速に移動することによるトレードオフであると見なしてください。

Application Load Balancer の keepaliveオプションの設定の詳細については、Application Load Balancer ユーザーガイドの HTTP クライアントのキープアライブ期間を参照してください。 Application Load Balancer

リソース容量をプリスケーリングし、トラフィックのシフトをテストする

がゾーン AWS シフトまたはオートシフトのためにトラフィックを 1 つのアベイラビリティーゾーンから遠ざける場合、残りのアベイラビリティーゾーンがリソースの増加したリクエストレートに対応できることが重要です。このパターンは静的安定性と呼ばれます。詳細については、The Amazon Builder's Library のホワイトペーパー「アベイラビリティーゾーンを使用した静的安定性」を参照してください。

例えば、アプリケーションがクライアントにサービスを提供するために 30 個のインスタンスを必要とする場合、3 つのアベイラビリティーゾーンに 15 個のインスタンスをプロビジョニングして、合計 45 個のインスタンスをプロビジョニングする必要があります。これにより、 がオートシフトまたは練習実行中に AWS トラフィックを 1 つのアベイラビリティーゾーンから遠ざける場合でも、2 つのアベイラビリティーゾーンにまたがる残りの 30 個のインスタンスをアプリケーションのクライアントに提供AWS できます。

Route 53 ARC のゾーンオートシフト機能は、1 つのアベイラビリティーゾーンが失われても正常に動作するように事前にスケーリングされたリソースを持つアプリケーションがある場合に、アベイラビリティーゾーンの AWS イベントから迅速に復旧するのに役立ちます。リソースのゾーンオートシフトを有効にする前に、 AWS リージョン内の設定済みのすべてのアベイラビリティーゾーンのリソース容量をスケーリングしてください。次に、リソースのゾーンシフトを開始して、トラフィックがアベイラビリティーゾーンから遠ざけられても、アプリケーションが正常に動作することをテストします。

ゾーンシフトでテストした後、ゾーンオートシフトを有効にして、アプリケーションリソースの練習実行を設定します。ゾーンオートシフトを使った定期的な練習実行は、容量が引き続き適切にスケーリングされていることを継続的に確認するのに役立ちます。複数のアベイラビリティーゾーンにまたがって十分な容量があれば、アプリケーションはオートシフト中も中断することなくクライアントにサービスを提供し続けることができます。

リソースのゾーンシフトを開始する方法の詳細については、「Amazon Route 53 Application Recovery Controller のゾーンシフト」を参照してください。

リソースタイプと制限に注意する

ゾーンオートシフトは、ゾーンシフトによってサポートされるすべてのリソースについて、アベイラビリティーゾーン外へのトラフィックのシフトをサポートします。一般に、クロスゾーン負荷分散がオフになっている Network Load Balancer と Application Load Balancer はサポートされます。一部の特定のリソースシナリオでは、ゾーンオートシフトではオートシフトのためにアベイラビリティーゾーンからトラフィックがシフトされません。

例えば、アベイラビリティーゾーン内のロードバランサーのターゲットグループにインスタンスが含まれていない場合や、すべてのインスタンスが「異常」である場合、ロードバランサーはフェイルオープン状態になります。このシナリオで がロードバランサーのオートシフト AWS を開始した場合、ロードバランサーが既にフェイルオープン状態になっているため、オートシフトはロードバランサーが使用するアベイラビリティーゾーンを変更しません。これは想定される動作です。オートシフトでは、すべてのアベイラビリティーゾーンがオープンに失敗 (異常) AWS リージョン した場合、1 つのアベイラビリティーゾーンが異常になり、 内の他のアベイラビリティーゾーンにトラフィックをシフトすることはできません。

2 つ目のシナリオは、 でアクセラレーターのエンドポイントである Application Load Balancer のオートシフトを が AWS 開始する場合です AWS Global Accelerator。ゾーンシフトと同様、オートシフトは Global Accelerator にあるアクセラレーターのエンドポイントである Application Load Balancer についてはサポートされていません。

すべての要件や注意すべき例外など、サポートされているリソースの詳細を確認するには、「ゾーンシフトおよびゾーンオートシフトでサポートされているリソース」を参照してください。

練習実行のアラームを指定する

ゾーンオートシフトによる練習実行では、少なくとも 1 つのアラーム、つまり結果アラームを設定します。オプションで、2 つ目のアラームであるブロッキングアラームを設定することもできます。

リソースの練習実行用に設定した CloudWatch アラームを検討するときは、次の点に注意してください。

  • 必要な結果アラームについては、リソースまたはアプリケーションのメトリクスが、トラフィックをアベイラビリティーゾーンから遠ざけるとパフォーマンスに悪影響を与えることを示している場合に、 ALARM状態になるように CloudWatch アラームを設定することをお勧めします。例えば、リソースのリクエストレートのしきい値を決定して、そのしきい値を超えたときには ALARM 状態になるようにアラームを設定できます。練習実行を終了して AWS 結果を返すように、適切なアラームを設定する必要があります。

  • AWS Well Architected Framework に従うことをお勧めします。このフレームワークでは、アラームとして CloudWatch主要業績評価指標 (KPIsを実装することをお勧めします。その場合、これらのアラームを使用して、安全トリガーとして使用する複合アラームを作成し、アプリケーションが KPI を見逃す可能性がある場合には練習実行が開始されないようにすることができます。アラームが ALARM 状態でなくなると、Route 53 ARC はそのリソースに対して次回の練習実行がスケジュールされている時点で練習実行を開始します。

  • 練習実行ブロッキングアラームを設定することにした場合は、練習実行を開始したくないことを示すために使用する特定のメトリクスを追跡することができます。

  • 練習実行アラームでは、各アラームの Amazon リソースネーム (ARN) を指定します。これは、まず Amazon で設定する必要があります CloudWatch。指定する CloudWatch アラームは複合アラームにすることができ、アラームが ALARM状態になるようトリガーできるアプリケーションとリソースの複数のメトリクスとチェックを含めることができます。詳細については、「Amazon ユーザーガイド」の「アラームの組み合わせ CloudWatch 」を参照してください。

  • 練習実行に指定する CloudWatch アラームが、練習実行を設定するリソースと同じリージョンにあることを確認します。

練習実行の結果を評価する

Route 53 ARC は、各練習実行の結果を報告します。練習実行後、結果を評価し、アクションを実行する必要があるかどうかを判断します。例えば、容量をスケーリングしたり、アラームの設定を調整する必要がある場合があります。

可能な練習実行の結果は以下のとおりです。

  • SUCCEEDED: 練習実行中、結果アラームは ALARM 状態にならず、練習実行は 30 分間のテスト期間をすべて完了しました。

  • FAILED: 練習実行中に結果アラームが ALARM 状態になりました。

  • INTERRUPTED: 結果アラームが ALARM 状態になったのではない理由で、練習実行は終了しました。練習実行は、以下のようなさまざまな理由で中断される可能性があります。

    • でオートシフト AWS が開始された AWS リージョン か、リージョンにアラーム条件が発生したため、練習実行が終了しました。

    • 練習実行は、リソースの練習実行設定が削除されたために、終了しました。

    • 練習実行は、練習実行ゾーンシフトでトラフィックが遠ざけられたアベイラビリティーゾーンのリソースについて、顧客開始のゾーンシフトが開始されたために終了しました。

    • 練習実行設定に指定された CloudWatch アラームにアクセスできなくなるため、練習実行が終了しました。

    • 練習実行に指定されたブロッキングアラームが ALARM 状態に入ったため、練習実行は終了しました。

    • 練習実行は未知の理由で終了しました。

  • PENDING: 練習実行はアクティブ (進行中) です。まだ結果は戻されていません。