メニュー
Amazon Route 53
開発者ガイド (API Version 2013-04-01)

Amazon Route 53 がフェイルオーバーの問題を回避する方法

Amazon Route 53 に実装されたフェイルオーバーアルゴリズムは、正常なエンドポイントにトラフィックをルーティングするだけでなく、ヘルスチェックやアプリケーションの設定ミス、エンドポイントの過負荷、分断障害などに起因する最悪のシナリオを回避するように設計されています。

Amazon Route 53 がカスケードの失敗を回避する方法

カスケードの失敗に対する第一の備えとして、すべてのリクエストルーティングアルゴリズム (加重やフェイルオーバーなど) には、最後の手段となるモードが用意されています。レコードがすべて異常と判断されると、この特殊なモードによって、Amazon Route 53 アルゴリズムが、すべてのレコードを再び正常と見なすようになります。

たとえば、いくつかのホスト上で、アプリケーションの全インスタンスがヘルスチェックリクエストを拒否している場合、Amazon Route 53 DNS サーバーは、DNS 応答を拒否したり NXDOMAIN (存在しないドメイン) 応答を返したりするのではなく、その事実を踏まえたうえで応答を受け入れて返します。アプリケーションがユーザーに応答しても、ヘルスチェックには不合格になることがあるため、設定ミスから生じる問題をある程度防ぐことができます。

同様に、アプリケーションに過剰な負荷がかかっているとき、3 つのエンドポイントのうち 1 つがヘルスチェックで不合格と判断され、Amazon Route 53 DNS 応答から除外された場合、Amazon Route 53 は、残りの 2 つのエンドポイントを使って応答を返します。残りのエンドポイントがそれ以上の負荷に耐えきれず障害が発生した場合、Amazon Route 53 は再度、3 つすべてのエンドポイントにリクエストを分配するようになります。

インターネットの分断への対処 Amazon Route 53

一般的ではありませんが、インターネットに重大な分断が生じる場合があります。つまり、大規模な地理的リージョン間でインターネット経由の相互通信ができなくなることがあります。インターネットに分断が生じている間、エンドポイントの正常性ステータスに関して導き出される結論が Amazon Route 53 の拠点によって違ったり、CloudWatch に報告されるステータスと異なることがあります。各 AWS リージョンの Amazon Route 53 ヘルスチェッカーは、すべての Amazon Route 53 拠点に絶えずヘルスチェックステータスを送信します。インターネットの分断が生じている間は、Amazon Route 53 の各拠点が、そうしたステータスの一部(通常は最も近いリージョンのステータス)にしかアクセスできません。

たとえば、インターネットの分断で南米との接続に影響が生じているとします。その間、Amazon Route 53 南米 (サンパウロ) 拠点にある Amazon Route 53 DNS サーバーは、南米 (サンパウロ) AWS リージョンのヘルスチェックエンドポイントには問題なくアクセスできますが、その他のエンドポイントには正常にアクセスできない可能性があります。同時に、米国東部 (オハイオ) の Amazon Route 53 は、南米 (サンパウロ) リージョンのヘルスチェックエンドポイントへのアクセスに支障があるとして、対応するレコードを異常と判断することが考えられます。

こうした分断によって、Amazon Route 53 の各拠点が、それぞれ域内のエンドポイントの可視性によってエンドポイントの正常性ステータスを判断するようになり、最終的に拠点ごとにその結論が異なる、という状況に発展する可能性があります。そのため、Amazon Route 53 の各拠点は、到達可能なごく一部のヘルスチェッカーがエンドポイントを正常と判断すれば、エンドポイントを正常と見なします。