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

ルーティングポリシーの選択

リソースレコードセットを作成するときは、Amazon Route 53 がクエリに応答する方法を決定するルーティングポリシーを選択します。

  • シンプルルーティングポリシー – ドメインで特定の機能を実行する単一のリソースがある場合に使用します。たとえば、example.com ウェブサイトのためにコンテンツを提供する 1 つのウェブサーバーなどです。

  • フェイルオーバールーティングポリシー – アクティブ/パッシブフェイルオーバーを設定する際に使用します。

  • 位置情報ルーティングポリシー – ユーザーの位置情報に基づいてトラフィックをルーティングする際に使用します。

  • 地理的近接性ルーティングポリシー – リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所の 1 つのリソースから別の場所の 1 つのリソースに移動する際に使用します。

  • レイテンシールーティングポリシー – 複数の場所にリソースがあり、イテンシーの最も小さいリソースにトラフィックをルーティングする際に使用します。

  • 複数値回答ルーティングポリシー – アトランダムに選ばれた最大 8 つの正常なレコードを持つ DNS クエリに Amazon Route 53 を応答させる場合に使用します。

  • 加重ルーティングポリシー – 指定した比率で複数のリソースにトラフィックをルーティングするのに使用します。

フェイルオーバールーティング

フェイルオーバーのルーティングにより、リソースが正常な場合にリソースにトラフィックをルーティングできます。また、最初のリソースが正常でない場合は別のリソースにルーティングできます。プライマリリソースレコードセットとセカンダリリソースレコードセットのトラフィックのルーティング先は、ウェブサイトとして設定されている Amazon S3 バケットから、複雑なレコードのツリーまで、何でも構いません。詳細については、「Amazon Route 53 のフェイルオーバーレコードおよびフェイルオーバーエイリアスレコードを使用してアクティブ/パッシブフェイルオーバーを構成する」および「プライベートホストゾーンのフェイルオーバーの設定」を参照してください。

位置情報ルーティング

位置情報ルーティングでは、ユーザーの地理的場所、つまり DNS クエリの送信元の場所に基づいて、トラフィックを処理するリソースを選択できます。たとえば、ヨーロッパからのすべてのクエリをフランクフルトの ELB ロードバランサーにルーティングしなければならない場合があります。

位置情報ルーティングを使用する場合は、コンテンツをローカライズし、ウェブサイトの一部またはすべてをユーザーの言語で表示できます。また、位置情報ルーティングを使用して、コンテンツの配布を、配布の権利がある場所だけに制限することもできます。もう 1 つの考えられる使用方法は、予測可能な管理しやすい方法で、複数のエンドポイントにわたって負荷を分散することです。この場合、各ユーザーの場所は、一貫して同じエンドポイントにルーティングされます。

地理的場所は、大陸別、国別、米国の州別に指定できます。重なり合う地域について別々のレコードを作成した場合 (たとえば、ある北米用のリソースレコードセットが 1 つ、カナダ用のリソースレコードセットが 1 つ)、最も小さい地域が優先されます。これにより、大陸のクエリを 1 つのリソースにルーティングし、その大陸の一部の国のクエリを異なるリソースにルーティングすることができます (各大陸の国の一覧については、「場所」を参照してください)。

位置情報は、IP アドレスを場所にマッピングすることで動作します。しかし、一部の IP アドレスは地理的場所にマッピングされません。そのため 7 つの大陸をすべて網羅した位置情報リソースレコードセットを作成した場合でも、Amazon Route 53 は識別できない場所からの DNS クエリを受け取ります。デフォルトリソースレコードセットを作成して、どの場所にもマッピングされない IP アドレスからのクエリと、位置情報レコードを作成していない場所からのクエリの両方を処理することができます。デフォルトレコードを作成しない場合、Amazon Route 53 はそのような場所からのクエリに対して "応答なし" という応答を返します。

ルーティングする位置情報の精度を高めるために、Amazon Route 53 は EDNS0 の edns-client-subnet 拡張をサポートします (EDNS0 は DNS プロトコルにオプションの拡張をいくつか追加します)。Amazon Route 53 が edns-client-subnet を使用できるのは、DNS リソルバーがそれをサポートする場合のみです。

  • ブラウザまたは他のビューアが edns-client-subnet をサポートしない DNS リゾルバーを使用している場合、Amazon Route 53 は DNS リゾルバーのソース IP アドレスを使ってユーザーの場所を近似し、位置情報クエリに対してリゾルバーの場所の DNS レコードを使って応答します。

  • ブラウザまたは他のビューアが edns-client-subnet をサポートする DNS リソルバーを使用している場合、DNS リソルバーはユーザーの IP アドレスを切り捨てたアドレスを Amazon Route 53 に送信します。Amazon Route 53 は、DNS リソルバーのソース IP アドレスではなく切り捨てられた IP アドレスに基づいてユーザーの場所を決定します。この方が通常はユーザーの場所について、より正確な推定になります。Amazon Route 53 はその後、ユーザーの場所の DNS レコードを使って位置情報クエリに応答します。

edns-client-subnet の詳細については、IETF ドラフトの「Client Subnet in DNS Requests」を参照してください。

地理的近接性ルーティング (トラフィックフローのみ)

地理的近接性ルーティングでは、Amazon Route 53 はリソースの地理的場所に基づいてリソースのトラフィックをルーティングします。また、必要に応じて、指定のリソースにルーティングするトラフィックを増減できます。これはバイアスと呼ばれる値を指定し、リソースにルーティングされるトラフィックの発信元の地理的地域のサイズを拡大または縮小することで行います。

地理的近接性ルーティングを使用するには、Amazon Route 53 トラフィックフローを使用する必要があります。リソースで地理的近接性ルールを作成し、各ルールに次の値のいずれかを指定します。

  • AWS リソースを使用している場合は、リソースを作成した AWS リージョン

  • AWS 以外のリソースを使用している場合は、リソースの緯度と経度

Amazon Route 53 がリソースにルーティングするトラフィックの発信元の地理的地域のサイズを必要に応じて拡大するには、バイアスに 1 から 99 までの正の整数を指定します。Amazon Route 53 は隣接する地域のサイズを縮小します。-1 から -99 までの負のバイアスを指定すると、その逆になります。リソースのバイアスを変更する効果は、以下を含む多くの要素によって決まります。

  • 所有するリソース数。

  • リソースの相互の距離。

  • 地理的地域の境界地域のユーザー数。たとえば、ボストンとワシントン DC にリソースがあり、リソース間のおよそ中間であるニューヨーク市に多数のユーザーがいるとすると、バイアスをほんの少し変更するだけで、ボストンのリソースから DC のリソース (またはその逆) にトラフィックが大きく移動する場合があります。

予期しないトラフィックの移動によりリソースに過度の負担がかからないように、バイアスの変更は小規模にすることをお勧めします。

レイテンシーに基づくルーティング

複数の Amazon EC2 リージョンでアプリケーションがホストされている場合、ネットワークレイテンシーが最も低い Amazon EC2 リージョンに基づいてリクエストを処理することで、ユーザーのパフォーマンスを向上させることができます。

レイテンシーに基づくルーティングを使用するには、複数の EC2 リージョンのリソース用にレイテンシーレコードを作成します。ドメインまたはサブドメイン (example.com または apex.example.com) の DNS クエリを受信した Amazon Route 53 は、レイテンシーレコードが作成された Amazon EC2 リージョンやユーザーに対するレイテンシーが最も小さいリージョンを識別し、そのリージョンのレイテンシーレコードを選択します。Amazon Route 53 は選択されたレコードから値 (ウェブサーバーの IP アドレスなど) を返します。

たとえば、米国西部 (オレゴン) リージョンや アジアパシフィック (シンガポール) リージョンに ELB ロードバランサ―があるとします。あなたは各ロードバランサ―のレイテンシーレコードを作成しました。ロンドンのユーザーがブラウザにあなたのドメイン名を入力した場合は次のようになります。

  1. DNS がリクエストを Amazon Route 53 ネームサーバーにルーティングします。

  2. Amazon Route 53 は、ロンドンとシンガポールリージョン間のレイテンシーおよびロンドンとオレゴンリージョン間のレイテンシーに基づいて、そのリクエストのデータを参照します。

  3. ロンドンとオレゴンリージョン間のレイテンシーのほうが低い場合、Amazon Route 53 はオレゴンのロードバランサ―の IP アドレスとともにクエリを返します。ロンドンとシンガポールリージョン間のレイテンシーのほうが低い場合、Amazon Route 53 はシンガポールのロードバランサ―の IP アドレスとともにクエリを返します。

インターネット上のホスト間のレイテンシーは、ネットワーク接続やルーティングに変更があると、時間の経過と共に変化する場合があります。レイテンシーベースのルーティングは一定期間中に実行されたレイテンシーの測定値に基づいており、これらの測定値はレイテンシーの変化を反映しています。この週にオレゴンリージョンにルーティングされたリクエストは、次の週にシンガポールリージョンにルーティングされる場合があります。

注記

ブラウザまたは他のビューアが EDNS0 の edns-client-subnet 拡張をサポートする DNS リソルバーを使用している場合、DNS リソルバーはユーザーの IP アドレスを切り捨てたアドレスを Amazon Route 53 に送信します。レイテンシーに基づくルーティングを設定した場合、Amazon Route 53 はトラフィックをリソースにルーティングする際にこの値を考慮します。

複数値回答ルーティング

複数値回答ルーティングにより、Amazon Route 53 が DNS クエリに対する応答として複数の値 (ウェブサーバーの IP アドレスなど) を返すように設定できます。ほとんどすべてのレコードに複数値を指定できますが、複数値回答ルーティングは各リソースが正常かどうかも確認するため、Amazon Route 53 は正常なリソースの値のみを返します。これはロードバランサ―に置き換わるものではありませんが、正常であることが確認できる複数の IP アドレスを返す機能により、DNS を使用してアベイラビリティーとロードバランシングを向上させることができます。

トラフィックを複数のリソース (ウェブ サーバーなど) にほぼランダムにルーティングするには、各リソースに対し複数値回答のレコードを 1 つ作成します。また、オプションで各レコードに Amazon Route 53 ヘルスチェックを関連付けます。Amazon Route 53 は DNS クエリーに最大 8 つの正常なレコードを返し、DNS リゾルバーごとに異なる答えを返します。リゾルバーが応答をキャッシュした後にウェブサーバーが使用できなくなる場合、クライアントソフトウェアは応答内の別の IP アドレスを試ことができます。

次の点に注意してください。

  • ヘルスチェックを複数値回答のレコードと関連付けている場合、Amazon Route 53 はヘルスチェックの結果が正常である場合にのみ DNS クエリに対応する IP アドレスを返します。

  • ヘルスチェックを複数値回答レコードと関連付けない場合、Amazon Route 53 は常にレコードを正常であるとみなします。

  • 8 つ以下の正常なレコードがある場合、Amazon Route 53 はすべての DNS クエリに正常なすべてのレコードを返します。

  • すべてのレコードが異常である場合、Amazon Route 53 は DNS クエリに最大 8 つの異常なレコードを返します。

加重ルーティング

加重ルーティングにより、単一のドメイン名 (example.com) またはサブドメイン名 (acme.example.com) に複数のリソースを関連付け、各リソースにルーティングされるトラフィックの数を選択できます。これは負荷分散や新しいバージョンのソフトウェアのテストなど、さまざまな目的に有用です。

加重ルーティングを設定するには、各リソース同じ名前とタイプでリソースレコードセットを作成します。各リソースに送信するトラフィックの数に対応する相対的な重みを各レコードに割り当てます。グループ内のすべてのレコードの重みの合計に対する割合として、Amazon Route 53 はレコードに割り当てられた重みに基づいてリソースにトラフィックを送信します。

たとえば、トラフィックのごく一部を 1 つのリソースに送信し、残りを別のリソースに送信する場合、重みとして 1 つ 255 を指定します。重みが 1 のリソースは、トラフィックの 1/256 (1/1+255) を、他のリソースは 255/256 (255/1+255) を取得します。重みを変更するとバランスは徐々に変更できます。リソースへのトラフィックの送信を停止するには、レコードの重みを 0 に変更します。