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

複雑な Amazon Route 53 構成におけるヘルスチェックの動作

複雑な構成であっても、リソースの正常性をチェックする方法は同じです。ただし、複雑な構成では、エイリアスレコード (加重エイリアスやフェイルオーバーエイリアスなど) と非エイリアスレコードを組み合わせてデシジョンツリーを構築し、リクエストに対して Amazon Route 53 がどのように応答するかを柔軟に制御することができます。詳細については、「Amazon Route 53 の単純構成におけるヘルスチェックの動作」を参照してください。

たとえば、レイテンシーエイリアスレコードを使用して、ユーザーに近いリージョンを選択することが考えられます。また、各リージョン内の複数のリソースに加重レコードを使用して、単一エンドポイントやアベイラビリティーゾーンの障害への対策を講じることも可能です。この設定は以下の図のようになります。

 3 つの加重レコード (ヘルスチェックが関連付けられているのは 2 つだけ)

Amazon EC2 と Amazon Route 53 の具体的な構成は次のとおりです。

  • Amazon EC2 インスタンスが、us-east-1 と ap-southeast-2 という 2 つのリージョンに存在します。Amazon Route 53 に期待される動作は、顧客にとってレイテンシーの最も低いリージョンのレコードを使ってクエリに応答することです。そこで、それぞれのリージョンのレイテンシーエイリアスレコードを作成します。(レイテンシーエイリアスレコードの作成は、個々の Amazon EC2 インスタンスのレコードを作成した後で行います。)

  • 各リージョンには、Amazon EC2 インスタンスが 2 つ存在します。各インスタンスについて加重レコードを作成します。それぞれのリージョン内の 2 つの加重レコードには、同じ名前とタイプを使用します。

    1 つのリージョンに複数のリソースが存在する場合、それらのリソースに対して加重レコードまたはフェイルオーバーレコードを作成できます。そこからさらに複数のリソースを参照する加重エイリアス (フェイルオーバーエイリアス) レコードを作成することによって、もっと複雑な構成を作成することもできます。

  • 加重レコードにはそれぞれ、ヘルスチェックが関連付けられています。各ヘルスチェックの IP アドレスは、対応するレコードの IP アドレスと一致します。必須ではありませんが、この設定が最も一般的です。

  • レイテンシーエイリアスレコードの [Evaluate Target Health] の値は、どちらも [Yes] に設定します。

    各レイテンシーエイリアスレコードの [Evaluate Target Health] 設定を使用することによって、エイリアスターゲットの正常性 (加重レコード) を Amazon Route 53 が評価し、それに応じた処理を行います。

 3 つの加重レコード (ヘルスチェックが関連付けられているのは 2 つだけ)

前の図は、以下の一連のイベントを示したものです。

  1. Amazon Route 53 が example.com のクエリを受け取ります。要求元のユーザーに対するレイテンシーに基づいて、us-east-1 リージョンのレイテンシーエイリアスレコードを選択します。

  2. Amazon Route 53 が、重みに基づいて加重レコードを選択します。レイテンシーエイリアスレコードの [Evaluate Target Health] が [Yes] であるため、Amazon Route 53 は、加重レコードの正常性をチェックします。

  3. ヘルスチェックで不合格と判明すると、Amazon Route 53 は、別の加重レコードを重みに基づいて選択し、その正常性をチェックします。そのレコードも異常であると判明します。

  4. Amazon Route 53 は、分岐の出発点に戻り、次善のレイテンシーを持つレイテンシーエイリアスレコードを探して、ap-southeast-2 のレコードを選択します。

  5. Amazon Route 53 は再度、重みに基づいてレコードを選択し、その正常性をチェックします。ヘルスチェックに合格すると、Amazon Route 53 は、クエリへの応答として、該当する値を返します。

エイリアスレコードにヘルスチェックを関連付けるとどうなるか

[Evaluate Target Health] の値を [Yes] に設定する代わりに (または設定したうえで)、エイリアスレコードにヘルスチェックを関連付けることができます。ただし、実用性の面からいうと、基になるリソース (HTTP サーバー、データベースサーバーなど、エイリアスレコードの参照先となるリソース) の正常性に基づいて Amazon Route 53 がクエリに応答する、という構成の方が一般的です。たとえば、次の構成を考えてみます。

  • 一連の加重レコードをエイリアスターゲットとするレイテンシーエイリアスレコードにヘルスチェックを割り当てます。

  • レイテンシーエイリアスレコードの [Evaluate Target Health] の値は、[Yes] に設定します。

この設定で、加重レコードに該当する値を Amazon Route 53 が返すためには、次の 2 点が満たされなければなりません。

  • レイテンシーエイリアスレコードに関連付けられているヘルスチェックが合格すること。

  • 少なくとも 1 つの加重レコードが、合格したヘルスチェックに関連付けられているか、またはヘルスチェックそのものに関連付けられていないことから、正常と見なされること。後者のケースでは常に、Amazon Route 53 加重レコードが正常と見なされます。

 3 つの加重レコード (ヘルスチェックが関連付けられているのは 2 つだけ)

レイテンシーエイリアスレコードのヘルスチェックが不合格となった場合、Amazon Route 53 によるクエリへの応答には、エイリアスターゲット内の加重レコードが一切使用されなくなります。それらの加重レコードがすべて正常であったとしても同様です。Amazon Route 53 は、加重レコードのステータスを認識しません。が注目するのは、不合格となったエイリアスレコードのヘルスチェックまでであり、その先は関知しないためです。

ヘルスチェックを省略するとどうなるか

複雑な構成では、エイリアス以外のすべてのレコードにヘルスチェックを関連付けることが大切です。前の例に戻ってみましょう。ただし、us-east-1 リージョンのいずれかの加重レコードでヘルスチェックが欠落していると仮定します。

 一方のレコードはヘルスチェックで不合格となり、もう一方はヘルスチェックが関連付けられていない。

以下に、この構成の非エイリアスレコードでヘルスチェックを省略した場合の動作を説明します。

  1. Amazon Route 53 が example.com のクエリを受け取ります。要求元のユーザーに対するレイテンシーに基づいて、us-east-1 リージョンのレイテンシーエイリアスレコードを選択します。

  2. Amazon Route 53 が、レイテンシーエイリアスレコードのエイリアスターゲットを探し、対応するヘルスチェックのステータスをチェックします。一方の加重レコードのヘルスチェックが不合格となり、そのレコードは考慮の対象から除外されます。

  3. us-east-1 リージョンのエイリアスターゲット内のもう一方の加重レコードにはヘルスチェックが関連付けられていません。対応するリソースが正常であるかどうかを Amazon Route 53 がヘルスチェックなしで知る術はありません。Amazon Route 53 は、そのリソースが正常であると仮定し、該当する値をクエリへの応答として返します。

[Evaluate Target Health] を [No] に設定するとどうなるか

一般に、[Evaluate Target Health] は、すべてのエイリアスレコードで [Yes] に設定します。次の例では、すべての加重レコードにヘルスチェックが関連付けられていますが、us-east-1 リージョンのレイテンシーエイリアスレコードについては、[Evaluate Target Health] が [No] に設定されています。

 ヘルスチェックがどちらも不合格、[Evaluate Target Health] は [No]。

この構成でエイリアスレコードの [Evaluate Target Health] を [No] に設定した場合の動作を以下に説明します。

  1. Amazon Route 53 が example.com のクエリを受け取ります。要求元のユーザーに対するレイテンシーに基づいて、us-east-1 リージョンのレイテンシーエイリアスレコードを選択します。

  2. Amazon Route 53 は、レイテンシーエイリアスレコードのエイリアスターゲットを特定し、対応するヘルスチェックを調べます。どちらも不合格です。

  3. us-east-1 リージョンは、レイテンシーエイリアスレコードの [Evaluate Target Health] の値が [No] であるため、Amazon Route 53 は、このブランチの中からいずれかのレコードを選ばなければなりません。分岐の出発点に戻って ap-southeast-2 リージョンから正常なレコードを探す、という選択肢はありません。