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

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

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

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

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

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

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

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

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

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

シンプルルーティング

シンプルルーティングでは、Route 53 の特殊な加重ルーティングやレイテンシールーティングを使用せずに、標準の DNS レコードを設定できます。シンプルルーティングでは、通常、1 つのリソース (ウェブサイトのウェブサーバーなど) にトラフィックをルーティングします。

Route 53 コンソールでシンプルルーティングポリシーを選択した場合は、複数のレコードを同じ名前と型で作成することはできませんが、同一レコードに複数の値 (複数の IP アドレスなど) を指定することができます(エイリアスレコードに対してシンプルルーティングポリシーを選択した場合、現在のホストゾーンに指定できるのは 1 つの AWS リソースまたは 1 つのレコードのみです)。 複数の値を 1 つのレコードに指定すると、Route 53 はすべての値をランダムな順序で再帰的リゾルバーに返し、リゾルバーはこれらの値を DNS クエリを送信したクライアント (ウェブブラウザなど) に返します。次に、クライアントは 1 つの値を選択してクエリを再送信します。

シンプルルーティングポリシーを使用してレコードを作成するときに指定する値の詳細については、以下のトピックを参照してください。

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

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

フェイルオーバールーティングポリシーを使用してレコードを作成するときに指定する値の詳細については、以下のトピックを参照してください。

位置情報ルーティング

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

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

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

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

詳細については、「Amazon Route 53 が EDNS0 を使用してユーザーの場所を推定する方法」を参照してください。

位置情報ルーティングポリシーを使用してレコードを作成するときに指定する値の詳細については、以下のトピックを参照してください。

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

地理的近接性ルーティングでは、Amazon Route 53 はユーザーとリソースの地理的場所に基づいてリソースのトラフィックをルーティングします。また、必要に応じて特定のリソースにルーティングするトラフィックの量を変更できます。それには、バイアスという値を指定します。バイアスは、リソースにルーティングされるトラフィックのルーティング元である地理的リージョンのサイズを拡大または縮小します。

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

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

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

Route 53 がリソースにルーティングするトラフィックの発信元の地理的リージョンのサイズを必要に応じて変更するには、バイアスに適切な値を指定します。

  • Route 53 がリソースにルーティングするトラフィックの発信元の地理的リージョンのサイズを拡大するには、バイアスに 1 ~ 99 の正の整数を指定します。Route 53 は隣接するリージョンのサイズをそのバイアス分だけ縮小します。

  • Route 53 がリソースにルーティングするトラフィックの発信元の地理的リージョンのサイズを縮小するには、バイアスに 1 ~ 99 の負の整数を指定します。Route 53 は隣接するリージョンのサイズをそのバイアス分だけ拡大します。

次のマップは、4 つの AWS リージョン (1~4) とヨハネスブルク (南アフリカ) の経度および緯度 (5) を示しています。


					米国西部 (オレゴン)、米国東部 (バージニア北部)、欧州西部 (パリ)、アジアパシフィック (東京) の AWS リージョンにあるリソースの地理的近接性のレコードと、ヨハネスブルグ (南アフリカ) にある非 AWS リソースのレコードがある場合のトラフィックのルーティングを示す世界地図。

次のマップでは、米国東部 (バージニア北部) リージョン (マップ上の 2) に +25 のバイアスが追加されています。北米ではそれまでより広範囲から、さらに南米全域からもトラフィックがそのリージョンにルーティングされるようになっています。


					米国東部 (バージニア北部) リージョンに +25 のバイアスを追加した場合のトラフィックのルーティングを示す世界地図。

次のマップでは、米国東部 (バージニア北部) リージョンのバイアスが -25 に変更されています。北米および南米では、より狭い範囲からのトラフィックがそのリージョンのリソースにルーティングされ、隣接するリージョン (135) のリソースにルーティングされるトラフィックが増えています。


					米国東部 (バージニア北部) リージョンに -25 のバイアスを追加した場合のトラフィックのルーティングを示す世界地図。

リソースのバイアスを変更する効果は、以下を含む多くの要素によって決まります。

  • 所有するリソース数。

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

  • 地理的地域の境界地域のユーザー数。たとえば、AWS リージョンの米国東部 (バージニア北部) と米国西部 (オレゴン) にリソースがあり、テキサス州のダラス、オースティン、サンアントニオにたくさんのユーザーがいるとします。これらの都市は、どのリソースからもほぼ等距離にあるため、バイアスに小さな変更を加えただけでリージョン間のトラフィック量に大きな変化が生じる可能性があります。

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

詳細については、「Amazon Route 53 が EDNS0 を使用してユーザーの場所を推定する方法」を参照してください。

Amazon Route 53 がバイアスを使用してトラフィックをルーティングする方法

以下は、Amazon Route 53 がトラフィックをルーティングする方法を決定するのに使用する式です。

正のバイアス

Biased distance = actual distance * [1 - (bias/100)]

負のバイアス

Biased distance = actual distance / [1 + (bias/100)]

バイアスの値が正であれば、Route 53 は、DNS クエリのソースと地理的近接性のレコードで指定したリソース (AWS リージョンの EC2 インスタンスなど) を、実際より近いところにあるものとして扱います。たとえば、以下の地理的近接性のレコードがあるとします。

  • ウェブサーバー A のレコード、正のバイアスは 50

  • ウェブサーバー B のレコード、バイアスなし

地理的近接性のレコードで正のバイアスが 50 ある場合、Route 53 はクエリのソースとそのレコードのリソース間の距離を半分にします。次に、Route 53 はクエリのソースに近いのはどのリソースかを計算します。ウェブサーバー A はクエリのソースから 150 km の距離にあり、ウェブサーバー B はクエリのソースから 100 km の距離にあるとします。どちらのレコードにもバイアスがない場合、Route 53 はクエリをより近くにあるウェブサーバー B にルーティングします。ただし、ウェブサーバー A のレコードには正のバイアス 50 があるので、Route 53 はウェブサーバー A をクエリのソースから 75 km の距離にあるものとして扱います。その結果、Route 53 はクエリをウェブサーバー A にルーティングします。

以下に、正のバイアス 50 の計算を示します。

Bias = 50 Biased distance = actual distance * [1 - (bias/100)] Biased distance = 150 kilometers * [1 - (50/100)] Biased distance = 150 kilometers * (1 - .50) Biased distance = 150 kilometers * (.50) Biased distance = 75 kilometers

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

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

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

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

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

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

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

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

注記

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

レイテンシールーティングポリシーを使用してレコードを作成するときに指定する値の詳細については、以下のトピックを参照してください。

複数値回答ルーティング

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

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

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

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

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

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

  • すべてのレコードが異常である場合、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 に変更します。

加重ルーティングポリシーを使用してレコードを作成するときに指定する値の詳細については、以下のトピックを参照してください。

Amazon Route 53 が EDNS0 を使用してユーザーの場所を推定する方法

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

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

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

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