Amazon Route 53とDNSの用語要点まとめ（自分用メモ

・Amazon Route 53
AWSが提供するDNS（Domain Name System）運用サービス。Route 53は非常に高い可用性と信頼性を備えており稼働率100%保証。
Route 53の機能
・権威DNSサーバー
・ドメイン名の購入
・ドメイン名の登録・管理

DNSレコードの種類
権威DNSサーバーが管理するゾーン情報は「DNSレコード（リソースレコード）」で構成されます。DNSレコードには主に以下の種類。
・Aレコード・・・ドメイン名に対応するIPv4アドレス
・AAAAレコード・・・ドメイン名に対応するIPv6アドレス
・CNAME・・・ドメインの別名
・NSレコード・・・ドメインのゾーン情報を管理するDNSサーバー
・MXレコード・・・ドメイン宛メールの配送先メールサーバー

・エイリアスレコード
Route 53にはエイリアスレコードという特別なDNSレコードがあります。
AWSサービスの一部はドメイン名に割り当てられるIPアドレスが動的に変化するので、固定のIPアドレスを登録する必要があるAレコードを設定できません。例えばELBのパブリックDNSホスト名や、S3の静的Webサイトホスティングのエンドポイント（URL）などが該当。このようなIPアドレスが動的に変化するAWSサービスに、独自ドメイン名を別名として割り当てたい場合はCNAMEレコードまたはエイリアスレコードを利用。エイリアスレコードはAWSサービスのドメイン名に割り当てた別名から直接IPアドレスへ名前解決ができるので、CNAMEレコードを使用するよりもDNSクエリへの応答が高速になります。

エイリアスレコードはCNAMEレコードでは登録できない「Zone Apex」の別名を登録できます。Zone Apexとは最上位のドメイン名のこと。
権威DNSサーバーにZone Apexを設定する時、Zone ApexのNSレコードを必ず登録する必要があります。DNSの仕様にCNAMEレコードは別レコードで登録されているドメイン名を登録できないという制約があるため、すでにNSレコードが登録されたZone Apexの別名はCNAMEレコードで登録できません。


・ホストゾーン
Route 53ではゾーン情報を「ホストゾーン」で管理。管理対象となるドメイン名がホストゾーンの名前になります。
ホストゾーンは管理するドメインの範囲によって2種類に分かれています。

●パブリックホストゾーン
インターネットなどVPC外に公開されたドメインのDNSレコードを管理します

●プライベートホストゾーン
VPC内に公開されたドメインのDNSレコードを管理します。


・ルーティングポリシー
権威DNSサーバーにDNSレコードを登録する時、1つのドメイン名に対して複数のIPアドレスを設定できます。ルーティングポリシーとは、DNSクエリのドメイン名に対応するIPアドレスの中から回答するIPアドレスを決める方針のことです。Route 53のルーティングポリシーには次の7種類があります。

●シンプルルーティングポリシー
ドメイン名に紐づいた単一リソースのIPアドレスを回答。

●加重ルーティングポリシー
複数のIPアドレスに対して設定された重みづけに従ってIPアドレスを回答

●レイテンシールーティングポリシー
遅延（レイテンシー）が最も小さいリージョンにあるリソースのIPアドレスを回答。基本的にクライアントから最も近いリージョンにあるリソースが選ばれますが、リソースまでの経路に遅延が発生している場合は、他の遅延が少ないリージョンにあるリソースが選ばれます。

●位置情報ルーティングポリシー
クライアントの位置情報に基づいて、回答するIPアドレスを決めます。
例えばクライアントの位置情報から、クライアントの使用言語に合ったコンテンツがあるリソースのIPアドレスを回答

●地理的近接性ルーティングポリシー
クライアントの位置情報を元に、クライアントと地理的に近いリージョンにあるリソースのIPアドレスを回答

●複数値回答ルーティングポリシー
複数のリソースに対してヘルスチェックを行い、最大8個の正常なリソースの中からランダムに分散してIPアドレスを回答

●フェイルオーバールーティングポリシー
通常時にアクセスさせたいリソースをプライマリに設定し、プライマリに障害が発生した場合にアクセスさせたいリソースをセカンダリに設定。通常時はプライマリに設定したリソースのIPアドレスを回答しますが、プライマリのリソースにヘルスチェックで異常が発生した場合は、セカンダリに設定したリソースのIPアドレスを回答します。このようにサービスを提供するリソースがプライマリからセカンダリへ自動的に切り替わる仕組みのことを「フェイルオーバー」と言います。
例えば、Webサービスを公開するEC2インスタンスのIPアドレスをプライマリに設定し、S3の静的Webサイトホスティングのソーリーページ（ユーザーへメンテナンス中であることを伝えるためのページ）のURLをセカンダリに設定することで、EC2インスタンスに障害が発生した場合は設定したソーリーページを表示させることができます。

シンプルルーティングポリシー以外は、複数のルーティングポリシーを組み合わせることができます。
Route 53にはこのような複数のルーティングポリシーを設定できる「トラフィックフロー」という機能があります。トラフィックフローはルーティングポリシーの関係をツリー状に表示させ、複雑な設定を視覚的に分かりやすくします。


・Route 53のヘルスチェック
ルーティングポリシーのうちシンプルルーティングポリシー以外はヘルスチェックが利用できます。Route 53のヘルスチェックは、ドメイン名に対応するリソースが正常に動作しているかを定期的に確認。その結果、正常であったリソースのIPアドレスのみDNSクエリの回答とします。
複数値回答ルーティングポリシーとフェイルオーバールーティングポリシーはヘルスチェックの結果に基づいて回答するので、ヘルスチェックの設定が必須です。


・DNS（Domain Name System）
DNS（Domain Name System）とは「example.com」のようなドメイン名を「192.0.2.1」のようなIPアドレスに変換するシステムのこと。
コンピュータ同士はそれぞれに割り当てられたIPアドレスを使って通信相手を特定。数字の羅列であるIPアドレスは人間にとって識別しにくいので、代わりにIPアドレスに紐づけられた名前（FQDN）でアクセス。FQDNをIPアドレスに変換して、通信先を特定する情報を得るための仕組みがDNS。このようにFQDNからIPアドレスに変換することを「名前解決」といいます。

DNSサーバーの種類
DNSを構成するサーバーは、役割別に「権威DNSサーバー」と「キャッシュDNSサーバー」があります。

●権威DNSサーバー
自ドメインに関するDNSクエリ（名前解決依頼）を受け取った時に、自身が管理しているゾーン情報から回答するサーバー。ドメイン管理者がゾーン情報を登録。
権威DNSサーバーは、自ドメインの下位ドメインであるサブドメインについて、他の権威DNSサーバーに権限を委任することで分散データベースを構成できます。この際、自ドメインのゾーン情報には、委任先のサブドメインと、そのサブドメインに権限のある権威DNSサーバーのNSレコードを記載することで、サブドメインの権限を委任します。

●キャッシュDNSサーバー
クライアントからDNSクエリを受け取り、権威DNSサーバーにDNSクエリを反復して送るサーバー。権威DNSサーバーから受け取った応答結果を、クライアントへ返しつつ自身にキャッシュします。キャッシュされたものと同一のDNSクエリを受け取った場合は、キャッシュから応答を返すことで応答速度が向上します。