DNS(Domain Name System)
ここでは AWS ではなく、一般的なDNSの役割を記載します。
-
Name Server
クライアントから FQDN を探索し、自身が名前解決を行うサーバーを示します。 -
Full Serivice Resolver
ネームサーバーからの応答をクライアントに返す役割を示します。 -
Stub Resolver
フルサービスリゾルバーに名前解決の実行を委ねるリゾルバーです。
DNSクライアントとして名前解決を要求する側に位置しており、要求に対して応答を受けます。 -
Forwarder
要求を受け取った際に、ルールに沿って、中継する役割を示します。
ネームサーバーへ辿る反復問合せの機能を持たないため、常に再帰的問合せを行います。 -
反復問合せ
ネームサーバーに直接問合せ(名前解決を要求)をするもの -
再帰的問合せ
問合せ先へ、反復問合せを要求する問合せ(フォワーダーを経由する問合せ)
VPC
VPC上に展開されるサービスの DNS を理解する上で、いくつかの用語の説明をします。
- Amazon Route 53 Resolver について
Amazon Route 53 Resolver は VPC を作成するとデフォルトで作成され、VPC 内のインスタンスを名前解決するために AWS から提供されるAmazon DNS サーバーにマッピングされます。
後述のDHCPオプションセットに関する設定値に出てきますが、AmazonProvidedDNS
は、Amazon Route 53 Resolver
の旧称です。
VPC を作成した際に指定する、IP アドレスの範囲(CIDR)において、先頭から 2 をプラスした IPアドレス が、DNSサーバー(前述のフォワーダー+フルサービスリゾルバー)として機能します。
-
プライベート DNS ホスト名
プライベートDNS ホスト名は、インスタンスのプライベート IPv4 アドレスに解決されます。通常、プライベート DNS ホスト名は、ip-private-ipv4-address.region.compute.internal
の形式になります
プライベート DNS ホスト名は、同じネットワーク内のインスタンス間の通信に使用できます。 -
パブリック DNS ホスト名
パブリック DNS ホスト名は、インスタンスのパブリック IPv4 アドレスに解決されます。パブリック DNS ホスト名にはec2-public-ipv4-address.region.compute.amazonaws.com
という書式が使用されます。
Amazon DNS サーバーがパブリック DNS ホスト名を解決すると、インスタンスはパブリック IPv4 アドレスおよびインスタンスのプライベート IPv4 アドレスから構成されます。
Setting on VPC
VPC にはDNSに関する設定値が存在します。
1. DNS 解決(DNS resolution) 値: 有効/無効
デフォルトは有効
です。
有効化すると、DNS 解決がサポートするかどうかを決定します。
有効である場合、パブリック DNS ホスト名を IP アドレスに名前解決するための Amazon Route 53 Resolverが使用されます。
無効である場合、Amazon Route 53 Resolverが使用出来ません。
2. DNS ホスト名(DNS hostnames) 値: 有効/無効
デフォルトは有効
です。
パブリック IP アドレスを持つインスタンスが、対応するパブリック DNSホスト名(FQDN)を取得するかどうか示します。
DNSホスト名は、ホスト名とドメイン名で構成され、DNS サーバーが DNS ホスト名を対応する IP アドレスに解決します。
有効である場合、VPC 内のインスタンスは DNS ホスト名を取得し、無効の場合は取得をしません。
なお、DNSホスト名の有効化は、DNS 解決が有効である場合に限ります。
3. DHCPオプションセット
VPC単位でDHCPオプションセットを1つ付与出来ます。
DHCPのオプションフィールドに設定された情報が、VPC内で起動したインスタンスに反映されます。
DHCPオプションセットに適用する基本的な設定を2点挙げます。
3-1 ドメイン名
ドメイン名を指定します。
Amazon Route 53 Resolver(AmazonProvidedDNS)を使用しない場合、カスタムドメインネームサーバーが必要に応じてホスト名を解決する必要があります。
後述の Amazon Route 53プライベートホストゾーンを使用する場合は、Amazon Route 53 Resolverを使用する必要があります。
デフォルトVPC に付与されているDHCPオプションセットでは region.compute.internal
というドメイン名が設定されます。
3-2 ドメインネームサーバー
デフォルトは Amazon Route 53 ResolverのIP で、指定しないと Amazon Route 53 Resolver(AmazonProvidedDNS) が設定されます。
その他、別のドメインネームサーバーを使用する場合、最大4つのIPアドレスを指定出来ます。
これらの設定から VPC の各パラメーターを有効/無効 にした場合の名前解決を以下に示します。
- DNS 解決 / DNS ホスト名をいずれも有効とした場合の名前解決はどうなるか。
パブリックDNSホスト名が付与されます。
Amazon Route 53 Resolver(AmazonProvidedDNS)によりプライベートDNS名の名前解決が可能となります。
- DNS 解決 / DNS ホスト名をいずれも無効とした場合の名前解決はどうなるか。
パブリック IP アドレスを持つインスタンスは、対応するパブリック DNS ホスト名を受け取りません。
Amazon Route 53 Resolver は、Amazon が提供するプライベート DNS ホスト名を解決できません。
DHCP オプションセットで、AmazonProvidedDNS による解決は出来ないため、カスタムドメイン名あるいAmazonProvidedDNS以外のIPアドレスを指定して、カスタムドメインネームサーバーがホスト名を解決する仕組みが必要です。
Amazon Route 53
上述では Amazon Route 53 Resolver が多く出てきましたが、マネージドサービスとしての Route53 について触れます。
Route53 の DNS に関連する事項を記載します。
- 新規ドメインの登録
新しいドメイン名を取得する場合は、ドメイン名を Amazon Route 53 に登録することができますが、登録後のドメインの値の変更は出来ません。
また、他のプロバイダから Route53 へドメインの移管も可能です。
但し、Amazon Route 53 でドメインを登録するために使用できる最上位ドメイン (TLD) には指定がありますので、これに準拠するドメインのみ Route53 での登録が可能です。
Amazon Route 53 に登録できる最上位ドメイン
- DNS として機能する Route53
これは、以下の2ケースに分けられます。
後述する zone は名前空間の形成構造を示すもので、ここではローカルドメインとインターネットとして二つのzoneに分離されます。
- Public Host Zone
インターネットに公開された DNS ドメインのレコードを登録する事が可能で、レコードに紐づくドメインをルーティングし、要求元に返すコンテナです。
上述のRoute53 にドメインを新規登録すると、そのドメインのホストゾーンが自動的に作成されますが、既存のドメインの DNS サービスとして Route53 に転送する場合、Public Host Zone を作成する際に、一意のドメイン名を指定します。
- Private Host Zone
VPC 上に閉じたプライベートネットワーク内(ローカルドメイン)のドメインのレコードを登録する事が可能で、レコードに紐づくIPを要求元に返すコンテナです。
Private Host Zone を作成する際に、作成するzoneのドメイン名と、これに紐づく VPC を選択する必要があります。
名前解決では、プライベートホストゾーンに関連付けた VPCでリソースを実行している必要があり、DNSクライアントから DNSクエリを送信すると、Route53 は対応する IP アドレスを返します。
レコードを作成するときは、Amazon Route 53 がクエリに応答する方法を決定するルーティングポリシーを選択できます。
- シンプルルーティングポリシー – ドメインで特定の機能を実行する単一のリソースがある場合に使用します。例えば、example.com ウェブサイトにコンテンツを提供する 1 つのウェブサーバーなどです。
- フェイルオーバールーティングポリシー – アクティブ/パッシブフェイルオーバーを構成する場合に使用します。
- 位置情報ルーティングポリシー – ユーザーの位置に基づいてトラフィックをルーティングする場合に使用します。
- 地理的近接性ルーティングポリシー – リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する場合に使用します。
- レイテンシールーティングポリシー – 複数の AWS リージョンにリソースがあり、より少ない往復時間で最良のレイテンシーを実現するリージョンにトラフィックをルーティングする場合に使用します。
- 複数値回答ルーティングポリシー – ランダムに選ばれた最大 8 つの正常なレコードを使用して Route 53 が DNS クエリに応答する場合に使用します。
- 加重ルーティングポリシー – 指定した比率で複数のリソースにトラフィックをルーティングする場合に使用します。
なお、各ゾーンでサポートされる DNS レコードタイプは以下のいずれかです。
A レコードタイプ
AAAA レコードタイプ
CAA レコードタイプ
CNAME レコードタイプ
DS レコードタイプ
MX レコードタイプ
NAPTR レコードタイプ
NS レコードタイプ
PTR レコードタイプ
SOA レコードタイプ
SPF レコードタイプ
SRV レコードタイプ
TXT レコードタイプ
- Route 53 Resolver のエンドポイント使用
Route 53 Resolver エンドポイントは、DNSクエリを VPCから特定のネットワークへ、あるいは特定のネットワークからVPCへ、または双方にルーティングするためにリゾルバーが必要とする情報を提供します。
- Inbound Endpoint
ネットワークから Resolver に DNS クエリを転送するには、インバウンドエンドポイントを作成します。
インバウンドエンドポイントを作成する場合、以下の情報が必要です。
- 対象のVPC
- エンドポイントに対するセキュリティグループ
- Inbound Endpoint のIPアドレス2つ(VPC上のサブネットを指定し、範囲内のIPを指定あるいは、AWSから自動で選択いただきます)
- Outbound Endpoint
VPC上にあるインスタンスから発信された DNS クエリを、各ネットワークに転送するには、アウトバウンドエンドポイントを作成します。
アウトバウンドエンドポイントは、クエリの送信元の IP アドレスを指定します。VPC で使用できる IP アドレスの範囲から選択するこれらの IP アドレスは、パブリック IP アドレスではありません。つまり、アウトバウンドエンドポイントごとに、AWS Direct Connect 接続、VPN 接続、またはネットワークアドレス変換 (NAT) ゲートウェイを使用して VPC をネットワークに接続する必要があります。同じリージョン内の複数の VPC で、同一のアウトバウンドエンドポイントを使用することも、複数のアウトバウンドエンドポイントを作成することもできます。
アウトバウンドエンドポイントを作成する場合、以下の情報が必要です。
- 対象のVPC
- エンドポイントに対するセキュリティグループ
- Outbound Endpoint のIPアドレス2つ(VPC上のサブネットを指定し、範囲内のIPを指定あるいは、AWSから自動で選択いただきます)
- アウトバウンドトラフィックに関するrule
アウトバウンドのruleの設定値は以下となります。
- 転送(Forward)
指定のアドレスに DNS クエリを転送し、指定したドメイン名が一致すれば、ネームサーバーへルーティングされます。 Target IP /ドメイン名/ 適用するアウトバウンドエンドポイントの情報が必要。
- System
特定のドメインを上記転送ルールで転送した後、転送対象ドメインの特定サブドメインのみをインターネット上に向けます。ドメイン名が必要です。