Amazon Route 53
開発者ガイド (API バージョン 2013-04-01)

ヘルスチェックが設定されている場合に Amazon Route 53 がレコードを選択する方法

同じ名前、同じタイプ (A または AAAA など)、および同じルーティングポリシー (加重またはフェイルオーバーなど) を持つレコードグループ内のすべてのレコードのヘルスチェックを設定すると、Route 53 は正常なレコードを選択し、そのレコードから該当する値を返すことによって、DNS クエリに応答します。

たとえば、3 つの加重された A レコードを作成し、そのすべてにヘルスチェックを割り当てたとします。レコードのヘルスチェックが正常でない場合、Route 53 は他の 2 つのレコードのいずれかの IP アドレスで DNS クエリに応答します。

正常なレコードを Route 53 が選択するときの動作を以下に示します。

  1. Route 53 は、最初にルーティングポリシーと各レコードに指定した値に基づいてレコードを選択します。たとえば、加重レコードの場合、Route 53 は各レコードに指定した重みに基づいてレコードを選択します。

  2. Route 53 は、レコードが正常であるかどうかを決定します。

    • 関連付けられたヘルスチェックを持つ非エイリアスレコード – ヘルスチェックを非エイリアスレコードに関連付けた場合、Route 53 はヘルスチェックの現在のステータスをチェックします。

      Route 53 は、ヘルスチェックで指定されたエンドポイントの正常性を定期的にチェックします。DNS クエリが到着した時点でヘルスチェックを実行するわけではありません。

      ヘルスチェックはエイリアスレコードに関連付けることができますが、ヘルスチェックはエイリアス以外のレコードにのみ関連付けることをお勧めします。詳細については、「エイリアスレコードにヘルスチェックを関連付けるとどうなるか」を参照してください。

    • [Evaluate Target Health (ターゲットの正常性の評価)] が [Yes (あり)] に設定されたエイリアスレコード – Route 53 は、エイリアスレコードが参照するリソース (たとえば、ELB ロードバランサーまたは同じホストゾーン内の別のレコード) の正常性ステータスをチェックします。

  3. レコードが正常であれば、Route 53 そのレコードから得た値 (IP アドレスなど) でクエリに応答します。

    レコードが異常である場合、Route 53 は同じ基準で別のレコードを選択し、正常なレコードが見つかるまでそのプロセスを繰り返します。

レコードを選択するときに、Route 53 は以下の基準を使用します。

ヘルスチェックのないレコードは常に正常

同じ名前とタイプのレコードグループ内のレコードに関連付けられているヘルスチェックがない場合、Route 53 はそのレコードを常に正常と見なします。クエリへの応答の候補には、そのレコードが常に含まれます。

レコードが正常でない場合は、すべてのレコードが正常

レコードのグループ内に正常なレコードが 1 つも存在しなかった場合、Route 53 は、DNS クエリへの応答として何かを返す必要がありますが、レコードの優劣を選択するための判断材料がありません。この状況では、Route 53 グループに含まれるすべてのレコードが正常と見なされ、ルーティングポリシーと各レコードに指定した値に基づいて 1 つを選択します。

重みが 0 である加重レコード

加重レコードのグループ内のすべてのレコードにヘルスチェックを追加する一方で、一部のレコードにゼロ以外の重みを付け、他のレコードの重みをゼロにした場合、ヘルスチェックは、次の例外を除いて、すべてのレコードの重みがゼロ以外の場合と同様に動作します。

  • Route 53 は最初、ゼロ以外の加重レコード (存在する場合) のみを考慮に入れます。

  • 重みが 0 より大きいレコードがいずれも異常であった場合、Route 53 重みがゼロである加重レコードが考慮されます。

加重レコードの詳細については、「加重ルーティング」を参照してください。

エイリアスレコード

各エイリアスレコードに対して [ターゲットの正常性の評価] を [Yes (あり)] に設定することで、エイリアスレコードのヘルスチェックを設定することもできます。これにより、Route 53 は、レコードがトラフィックをルーティングするリソースの正常性を評価します (たとえば、ELB ロードバランサーまたは同じホストされたゾーン内の別のレコード)。

たとえば、エイリアスレコードのエイリアスターゲットが、一連の加重レコードから成るグループであり、そのグループの加重レコードの重みがいずれもゼロ以外であるとします。

  • 正常な加重レコードが 1 つでもあれば、Route 53 は、そのエイリアスレコードを正常と見なします。

  • 正常な加重レコードがない場合、Route 53 は、そのエイリアスレコードを異常と見なします。

  • 少なくとも 1 つの加重レコードが正常に戻るまで、Route 53 は、そのツリーのブランチのレコードを候補から除外します。

詳細については、「複雑な Amazon Route 53 構成におけるヘルスチェックの動作」を参照してください。

フェイルオーバーレコード

フェイルオーバーレコードは、通常、他のルーティングタイプと同じように動作します。ヘルスチェックを作成し、それらを非エイリアスレコードに関連付けて、エイリアスレコードの [ターゲットの正常性の評価] を [Yes (あり)] に設定します。次の点に注意してください。

  • プライマリレコードとセカンダリレコードは、どちらも非エイリアスレコードまたはエイリアスレコードです。

  • プライマリフェイルオーバーレコードとセカンダリフェイルオーバーレコードの両方にヘルスチェックが関連付けられている場合、Route 53 は、リクエストに対して次のように応答します。

    • Route 53 がプライマリレコードが正常 (ヘルスチェックのエンドポイントが正常) であると判断した場合、Route 53 は、DNS クエリへの応答としてプライマリレコードのみを返します。

    • Route 53 がプライマリレコードが異常でありセカンダリレコードが正常であると判断した場合、Route 53 は、セカンダリレコードを返します。

    • Route 53 がプライマリレコードとセカンダリレコードの両方が異常であると判断した場合、Route 53 は、プライマリレコードを返します。

  • セカンダリレコードを設定する際、ヘルスチェックを追加するかどうかは任意です。セカンダリのヘルスチェックが省略されているとき、プライマリレコードのヘルスチェックエンドポイントが異常だった場合、Route 53 は常に、セカンダリレコードで DNS クエリに応答します。セカンダリレコードが異常であったとしても同様です。

詳細については、以下のトピックを参照してください。