#Route53とは
・権威DNSサービス
– AWSの提供する権威DNSサービス
– DNSはドメイン名をIPアドレスに変換するインターネット上の「電話帳」
・AWS上で高可用性、低レイテンシなアーキテクチャを実現するツール
– ポリシーベースの柔軟なトラフィックルーティング、フェイルオーバー、
トラフィックフローなどの機能により、様々な条件に基づくルーティングが可能
・高い可用性を提供
– DNSはインターネットの根幹のサービス
– Route 53 は 100%のAvailabilityのSLAを提供
・マネージドサービスとして提供
– DNSサーバーの設計・構築・維持管理が不要
– 冗長性・性能・セキュリティ等は全てAWSにて管理される
#ホストゾーン
・ホストゾーンとは
– ドメイン、サブドメイン内のDNSリソースレコードを管理するコンテナ
• ホストゾーンの中に、DNSリソースレコードを登録
– ホストゾーンには、ゾーンを管理する複数のDNSサーバーが割り当てられる (Delegation Set)
• 1つのホストゾーンに対して、4台のDNSサーバーが割り当て
• DNSサーバーは、全て異なるエッジロケーションに配置されている
• 4つのトップレベルドメイン (*.com, *.org, *.net, *.co.uk) にまたがる
– パブリックホストゾーン、プライベートホストゾーンを作成可能
・ホストゾーンの制限
– AWSアカウント毎に500ゾーンまで (上限緩和可能)
– レコードはホストゾーンあたり10,000個まで (上限緩和可能)
#ALIASレコード
・ALIASレコードとは
– Route 53固有の仮想リソースレコード
– DNSクエリに対して、以下のAWSサービスのエンドポイントのIPアドレス
を直接返す(通常はCNAMEを利用)
• 静的ウェブサイトとして設定されたS3バケット
• CloudFront ディストリビューション
• ELB
• ホストゾーン内のリソースレコードセット (複雑なポリシーの作成で使用)
・ALIASレコードを使うメリット
– DNSクエリに対するレスポンスが高速
– Zone Apexが利用可能
– ALIASレコードに対するクエリが無料(S3, CloudFront, ELB)
#ALIASレコードによるDNS名前解決の高速化
・Route 53と連携したDNS Lookupの高速化
• CloudFrontのAlternative Domain NameをRoute53を利用して名前解決する際は、
レコードセットTypeをCNAMEではなくAレコードのAlias設定することでクエリの回数が削減
#トラフィックルーティング
・トラフィックルーティングとは
– クライアントからのトラフィックを、要件に応じて適切な宛先へ転送すること
– ここでは、DNS名前解決によるトラフィックの転送を対象とする
– DNSクエリに対して適切な転送先を応答するために、ルーティングポリシーを活用する
– トラフィックルーティングを適切に設計することにより、
可用性が高くレイテンシの少ないアーキテクチャを構築することができる
・従来のDNSでのルーティング
– DNSで事前に定義された、静的なリソースレコードにのみに基づいてDNSクエリに応答
(例)
• www.example.com へのリクエストは IPアドレス 1.1.1.1 に転送
• ポリシーベースのルーティング
– DNSクエリに対して、ポリシーで定義されたルールに基づいて、
動的に状況に応じた転送先を応答
(例)
• www.example.com へは、送信元が日本の場合、東京リージョンへ転送
• 送信元が日本以外の場合、送信元からのレイテンシーが最も小さいリージョンへ転送
#ルーティングポリシー
Route 53では、複数のルーティングポリシーにより柔軟なルールを作成可能
• シンプルルーティング (Simple)
– レコードセットで事前に設定された値のみに基づいてDNSクエリに応答する
– 従来のDNSと同様に、静的なマッピングによりルーティングが決定される
• 加重ルーティング (Weighted)
– 複数エンドポイント毎に設定された重みづけに基づいて、DNSクエリに応答する
– より重み付けの高いエンドポイントのリソースに、より多くルーティングされる
– A/Bテスト、段階的な移行、サーバー毎に性能に偏りがある場合
• レイテンシールーティング (Latency)
– AWSリージョンとの遅延によって、DNSクエリに応答する
– リージョン間の遅延が少ない方のリソースへルーティングされる
– エンドユーザーのレイテンシーを低減したい
動的なサイトでレスポンスを早くしたい
(静的:CloudFrontでキャッシュを活用、動的:キャッシュの制約がある)
• フェイルオーバールーティング (Failover)
– ヘルスチェックの結果に基づいて、利用可能なリソースをDNSクエリに応答する
– 利用可能なリソースにのみルーティングされる
– 複数のリージョンにまたがるシステムで冗長化構成、
災害発生時にリージョン間でフェイルオーバー、
サイト障害時にS3静的WebサイトホスティングのSorryPageを表示
• 位置情報ルーティング (Geolocation)
– クライアントの位置情報に基づいて、DNSクエリに応答する
– 特定の地域・国からのDNSクエリに対して、特定のアドレスを応答する
– ローカライズ:クライアントの地域により適切な言語でコンテンツを提供
コンプライアンス:コンテンツディストリビューションを
ライセンス許可した市場のみに制限
パフォーマンス:特定の地域からエンドエンドポイント間の
安定したルーティングを必要とするケース
#DNSフェイルオーバとは
ヘルスチェックによりエンドポイントのリソースの正常性をチェックし、正常な場合のみルーティングされるようにDNSクエリに応答
#ヘルスチェック
異常と判断した対象のIPアドレスをクエリ結果として返さない。全て以上の場合はIPアドレスを返す仕様