ルーティングポリシー:シンプル、加重、レイテンシー
単一リソースにはシンプルルーティング、A/B トラフィック分割には加重ルーティング、最寄りのリージョンからユーザーに配信するにはレイテンシールーティングを使用します。
「ルーティングポリシー:シンプル、加重、レイテンシー」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Route 53 ルーティングポリシーの概要
Route 53 のルーティングポリシーは、同じ DNS 名を共有する複数のリソースレコードセットに対して、DNS クエリにどのように応答するかを決定します。ポリシーによって、Route 53 がどの IP または DNS 名を、どの条件で返すかが決まります。適切なルーティングポリシーの選択は、SAA-C03 試験で特に頻繁に出題されるテーマの 1 つです。
利用できるルーティングポリシーは、シンプル、加重、レイテンシーベース、フェイルオーバー、位置情報、地理的近接性、複数値回答です。それぞれ異なるユースケースに適しています。多くのポリシーはヘルスチェックと組み合わせて、自動フェイルオーバーに利用できます。
シンプルルーティングポリシー
シンプルルーティングは、DNS 名を 1 つ以上の IP アドレス(A レコードの場合)または別のホスト名(CNAME/ALIAS の場合)にマッピングします。単一の値を設定した場合、Route 53 は常にその値を返します。複数の値を設定した場合、Route 53 はすべての値をランダムな順序で返し、クライアントが 1 つを選択します。
シンプルルーティングはデフォルトのポリシーであり、ヘルスチェック、トラフィック分割、地理的な振り分けが不要な単一リソース構成に適しています。ヘルスチェックはサポートしていないため、リソースが異常な状態でも Route 53 はそのアドレスを返します。
# Create a simple routing record
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"TTL": 60,
"ResourceRecords": [
{"Value": "10.0.0.1"},
{"Value": "10.0.0.2"}
]
}
}]
}'加重ルーティングポリシー
加重ルーティングは、割り当てた重みに応じて、複数のリソースに DNS クエリを分散します。各レコードには 0~255 の数値の重みを設定します。Route 53 は、各レコードの重みをすべての重みの合計で割った割合に応じて、そのレコードを返します。
例として、重みが 70、20、10 の 3 つのレコードには、それぞれ約 70%、20%、10% のトラフィックが送られます。重み 0 は、そのレコードをルーティング対象から除外することを意味しますが、レコード自体は削除されません。レコードを削除せずに一時的にトラフィックを停止する場合に便利です。加重ルーティングは、A/B テスト、カナリアデプロイ、ブルーグリーン切り替えで一般的に使用されます。
# Create two weighted records: 90% to v1, 10% to v2
# Record 1 (v1)
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "v1",
"Weight": 90,
"TTL": 60,
"ResourceRecords": [{"Value": "1.2.3.4"}]
}
}]
}'加重ルーティングのユースケース
加重ルーティングは、デプロイやテストのシナリオで特に効果を発揮します。
- カナリアリリース:新しいバージョンに 5%(重み 5)、安定版に 95%(重み 95)のトラフィックを送信し、信頼性が高まるにつれて重みを徐々に変更します
- ブルーグリーンデプロイ:100/0(すべてグリーン)から開始し、50/50 へ徐々に切り替え、次に 0/100(すべてブルー)にしてから、グリーンのレコードを削除します
- 負荷テスト:本番トラフィックの一部をテスト環境に送信し、実際の負荷でパフォーマンスを検証します
加重ルーティングはヘルスチェックと連携します。加重レコードのヘルスチェックが失敗すると、Route 53 はそのレコードを応答に含めなくなり、正常なレコードの間で重みを再配分します。
レイテンシーベースルーティングポリシー
レイテンシーベースルーティングは、エンドユーザーに対してネットワークレイテンシーが最も低い AWS リージョンに各 DNS クエリを振り分けます。Route 53 は、グローバル DNS リゾルバーと AWS リージョン間のレイテンシーを測定し、測定されたレイテンシーが最も低いリージョンにクエリをルーティングします。
リソースを配置している各リージョンに 1 つずつレコードを作成し、タイプに LATENCY を指定してリージョンを設定します。Route 53 は各クエリに対してレイテンシーが最も低い選択肢を選びますが、実際のリソース同士を比較するわけではありません。使用するのは AWS によるレイテンシー測定値であり、ユーザーの所在地からリアルタイムに測定した値ではありません。
# Create latency records for us-east-1 and eu-west-1
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"SetIdentifier": "us-east-1",
"Region": "us-east-1",
"TTL": 60,
"ResourceRecords": [{"Value": "54.100.1.1"}]
}
}]
}'レイテンシールーティングとジオロケーションルーティング
レイテンシールーティングとジオロケーションルーティングは、試験でよく混同されます。
- レイテンシールーティング:ネットワークパフォーマンスに基づいてルーティングし、往復時間を最小化します。たとえば、その時点で ap-northeast-1 よりもレイテンシーが低ければ、日本のユーザーを us-west-2 にルーティングすることがあります
- ジオロケーションルーティング:DNS クエリの地理的な発信元に基づいてルーティングします。日本のユーザーは、レイテンシーに関係なく常に日本のレコードへルーティングされます
パフォーマンスの最適化にはレイテンシールーティングを、コンテンツのパーソナライズ、規制遵守、または言語別コンテンツにはジオロケーションルーティングを使用します。
マルチバリューアンサールーティング
マルチバリューアンサールーティングでは、各 DNS クエリへの応答として、正常なレコードを最大 8 件返し、クライアントがその中からランダムに 1 件を選択できるようにします。正常でない IP アドレスを返す可能性がある Simple ルーティングとは異なり、マルチバリューアンサールーティングはヘルスチェックと連携し、正常なリソースの IP アドレスだけを返します。
マルチバリューアンサーはロードバランサーの代わりにはなりません。DNS による負荷分散はより単純で、レコードがクライアント側でキャッシュされるためです。ただし、同等の性能を持つエンドポイントが複数ある場合に、トラフィックを分散して耐障害性を高める、シンプルでコスト効率のよい方法を提供します。
ルーティングポリシーとヘルスチェック
Simple 以外のほとんどのルーティングポリシーは、ヘルスチェックと関連付けることができます。ヘルスチェックに失敗すると、Route 53 はそのレコードを DNS 応答で返さなくなります。加重ルーティングでは、除外されたレコードのトラフィックが正常な重み付きレコードに再分配されます。レイテンシールーティングでは、次にレイテンシーが低い正常なリージョンが使用されます。
ヘルスチェックはルーティングポリシーとは独立して評価され、HTTP、HTTPS、TCP エンドポイント向けに設定できます。計算済みヘルスチェックでは、複数のヘルスチェックの結果を組み合わせて(AND/OR ロジック)、複合的な正常性を判定します。
# Associate a health check with a weighted record
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "primary-us",
"Weight": 100,
"TTL": 60,
"ResourceRecords": [{"Value": "54.100.1.1"}],
"HealthCheckId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}]
}'適切なポリシーの選択:試験対策
ルーティングポリシーを選ぶための、試験向け簡易ガイドです。
- 「A/B テスト」、「カナリア」、「ブルーグリーン」 → 加重ルーティング
- 「最小レイテンシー」、「最も近いリージョン」、「最高のパフォーマンス」 → レイテンシールーティング
- 「単一のリソース」、「シンプルな設定」 → Simple ルーティング
- 「すべて正常な複数の IP」 → マルチバリューアンサー
- 「アクティブ/パッシブのフェイルオーバー」 → フェイルオーバールーティング
- 「国別コンテンツ」、「規制上の制限」 → ジオロケーションルーティング
- 「リソースとの近接度によるルーティング」 → ジオプロキシミティルーティング
段階的な移行のための加重ルーティング
加重ルーティングは、移行時に<強調>トラフィックを段階的に切り替えるために推奨される戦略です。一般的な手順は次のとおりです。
- 開始:古いインフラストラクチャの重みを 100、新しいインフラストラクチャを 0 にします
- 新環境を有効化:95/5 に切り替え、エラー率とレイテンシーを監視します
- 段階的に増加:数時間または数日かけて 80/20 → 50/50 → 20/80 → 5/95 と増やします
- 完了:0/100 にし、古いインフラストラクチャを廃止します
- ロールバック:問題が発生した場合は、新しい環境の重みを直ちに 0 に設定してトラフィックを停止します
このパターンでは、即時に切り替える場合と比べてリスクを最小化できます。また、再デプロイではなく DNS の重みを調整することで、すばやくロールバックできます。
レイテンシーポリシーと加重ポリシーの組み合わせ
Route 53 では、ポリシーを論理的に組み合わせて高度なルーティングを構成できます。たとえば、レイテンシールーティングで最も近いリージョンを選択し、そのリージョン内で加重ルーティングを使用して複数のエンドポイントにトラフィックを分割できます。これは、同じリージョンに特定の SetIdentifier を持つ重み付きレコードを作成し、それらをレイテンシーポリシーで選択することで実現します。
ただし、1 つのレコードに設定できるルーティングポリシーは 1 つだけです。組み合わせたパターンを使用する場合は、レイテンシー用のレコードを 1 層設け、各リージョン内に、異なる ALB または Elastic IP を指す重み付きレコードのセットを別途作成します。
クイックチェック
このレッスンで扱った AWS Solutions Architect(SAA-C03)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、Simple ルーティングはヘルスチェックなしで 1 つ以上の値を返すこと、加重ルーティングは A/B テストや段階的な移行のためにトラフィックを割合で分割すること、そしてレイテンシーベースルーティングはパフォーマンス最適化のために、レイテンシーが最も低いリージョンへユーザーを誘導することを学びました。ほとんどのポリシーはヘルスチェックと連携し、自動フェイルオーバーに対応できます。次は、フェイルオーバーとジオロケーションのルーティングポリシーについて学びます。
よくある質問
「ルーティングポリシー:シンプル、加重、レイテンシー」レッスンは無料ですか?
はい。「ルーティングポリシー:シンプル、加重、レイテンシー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「ルーティングポリシー:シンプル、加重、レイテンシー」で何を学びますか?
単一リソースにはシンプルルーティング、A/B トラフィック分割には加重ルーティング、最寄りのリージョンからユーザーに配信するにはレイテンシールーティングを使用します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ルーティングポリシー:シンプル、加重、レイテンシー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ホストゾーンと DNS レコードタイプ
- ルーティングポリシー:シンプル、加重、レイテンシー
- フェイルオーバーと位置情報ルーティング
- ヘルスチェックと DNS フェイルオーバー