Amazon DNS について理解する
ユーザーが AWS アーキテクトまたは管理者として対処することになる基本のネットワーク要素の 1 つが、Amazon DNS サーバーです。Route 53 Resolver ともいいます。この DNS リゾルバーサービスは、AWS リージョン内の各アベイラビリティーゾーンにネイティブに統合されており、仮想プライベートクラウド (VPC) 内でのドメイン名解決のために信頼性の高いスケーラブルなソリューションを提供しています。このセクションでは、Amazon DNS サーバーの IP アドレス、解決可能なプライベート DNS ホスト名、その使用を管理するルール、について説明します。
Amazon DNS サーバー
Route 53 Resolver (「Amazon DNS サーバー」または「AmazonProvidedDNS」とも呼ばれます) は、AWS リージョン内の各アベイラビリティーゾーンに組み込まれている DNS リゾルバーサービスです。Route 53 Resolver は 169.254.169.253
(IPv4)、fd00:ec2::253
(IPv6)、および VPC+2 にプロビジョニングされたプライマリプライベート IPV4 CIDR 範囲に配置されています。例えば、IPv4 CIDR が 10.0.0.0/16
で、IPv6 CIDR が 2001:db8::/32
の VPC がある場合、Route 53 Resolver には 169.254.169.253
(IPv4)、fd00:ec2::253
(IPv6)、または 10.0.0.2
(IPv4) でアクセスできます。VPC 内のリソースは DNS クエリにリンクローカルアドレスを使用します。これらのクエリは Route 53 Resolver にプライベート転送されるため、ネットワーク上では表示されません。IPv6 専用サブネットでは、"AmazonProvidedDNS" が DHCP オプションセット内のネームサーバーである限り、IPv4 リンクローカルアドレス (169.254.169.253) に引き続きアクセスできます。
VPC 内に起動したインスタンスは、インスタンスにプライベート DNS ホスト名を提供します。パブリック IPv4 アドレスを使用してインスタンスが設定されており、VPC DNS 属性が有効になっている場合は、パブリック DNS ホスト名も提供します。
プライベート DNS ホスト名の形式は、EC2 インスタンスを起動したときの設定方法によって異なります。プライベート DNS ホスト名タイプの詳細については、EC2 インスタンスの名前付けを参照してください。
VPC の Amazon DNS サーバーは、Route 53 のプライベートホストゾーンで指定する DNS ドメイン名を解決するために使用されます。プライベートホストゾーンの詳細については、Amazon Route 53 デベロッパーガイドの「プライベートホストゾーンの使用」を参照してください。
ルールと考慮事項
Amazon DNS サーバーを使用する場合は、次のルールと考慮事項が適用されます。
-
ネットワーク ACL またはセキュリティグループを使用して、Amazon DNS サーバーとの間のトラフィックをフィルタリングすることはできません。
-
Amazon EMR のような、Hadoop フレームワークを使用するサービスは、インスタンスが自己の完全修飾ドメイン名 (FQDN) を解決する必要があります。このような場合、
domain-name-servers
オプションがカスタム値に設定されていると DNS 解決が失敗する場合があります。DNS 解決が適切に行われるようにするには、DNS サーバーに条件付きフォワーダーを追加して、
ドメインのクエリがAmazon DNS サーバーに転送されるようにする方法を検討します。詳細については、Amazon EMR 管理ガイドの「クラスターをホストするための VPC をセットアップする」を参照してください。region-name
.compute.internal -
Amazon Route 53 Resolver は、再帰的な DNS クエリのみをサポートしています。
DNS ホスト名
インスタンスを起動すると、常にプライベート IPv4 アドレスと、プライベート IPv4 アドレスに対応するプライベート DNS ホスト名を受け取ります。インスタンスにパブリック IPv4 アドレスが割り当てられている場合、VPC の DNS 属性は、パブリック IPv4 アドレスに対応するパブリック DNS ホスト名を受け取るかどうかを決定します。詳細については、「VPC 内の DNS 属性」を参照してください。
Amazon が提供する DNS サーバーを有効にすると、DNS ホスト名が次のように割り当てられ、解決されます。
プライベート IP DNS 名 (IPv4 専用)
プライベート IP DNS 名 (IPv4 専用) のホスト名は、同じ VPC 内のインスタンス間の通信に使用できます。インスタンスが同じ AWS リージョンにあり、他のインスタンスのホスト名が RFC 191810.0.0.0 - 10.255.255.255 (10/8 prefix)
、172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
、および 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
。
プライベートリソース DNS 名
このインスタンスで選択された A および AAAA DNS レコードに解決できる RBN ベースの DNS 名。この DNS ホスト名は、デュアルスタックおよび IPv6 専用サブネットのインスタンスの詳細で表示されます。RBN の詳細については、EC2 インスタンスホスト名タイプを参照してください。
パブリック IPv4 DNS
パブリック (外部) IPv4 DNS ホスト名には、us-east-1
リージョンは ec2-
書式、その他のリージョンは public-ipv4-address
.compute-1.amazonaws.com.rproxy.goskope.comec2-
書式が使用されます。Amazon DNS サーバーがパブリック DNS ホスト名を解決すると、インスタンスのパブリック IPv4 アドレス (インスタンスのネットワークの外部の場合) およびインスタンスのプライベート IPv4 アドレス (インスタンスのネットワーク内からの場合) となります。詳細については、「Amazon EC2 ユーザーガイド」の「パブリック IPv4 アドレスと外部 DNS ホスト名」を参照してください。public-ipv4-address
.region
.compute.amazonaws.com
VPC 内の DNS 属性
次の VPC 属性は、VPC に提供される DNS サポートを決定します。両方の属性が有効になっている場合、VPC 内に起動されるインスタンスはパブリック DNS ホスト名を受け取ります。そのためには、インスタンスにパブリック IPv4 アドレスまたは Elastic IP アドレスが割り当てられている必要があります。両方とも有効になっていなかった VPC で両方の属性を有効にすると、その VPC ですでに起動されているインスタンスはパブリック DNS ホスト名を受け取ります。そのためには、インスタンスにパブリック IPv4 アドレスまたは Elastic IP アドレスが割り当てられている必要があります。
これらの属性が VPC で有効かどうかを確認するには、「VPC の DNS 属性の表示と更新」を参照してください。
属性 | 説明 |
---|---|
enableDnsHostnames |
VPC がパブリック IP アドレスを持つインスタンスへのパブリック DNS ホスト名の割り当てをサポートするかどうかを決定します。 VPC がデフォルト VPC でない限り、この属性のデフォルトは |
enableDnsSupport |
VPC が Amazon 提供の DNS サーバーを介した DNS 解決策をサポートするかどうかを決定します。 この属性が この属性のデフォルトは |
ルールと考慮事項
-
属性の両方が
true
に設定されている場合、次のようになります。-
パブリック IP アドレスを持つインスタンスは、対応するパブリック DNS ホスト名を受け取ります。
-
Amazon Route 53 Resolver サーバーは、Amazon が提供するプライベート DNS ホスト名を解決できます。
-
-
少なくとも 1 つの属性が
false
に設定されている場合、次のようになります。-
パブリック IP アドレスを持つインスタンスは、対応するパブリック DNS ホスト名を受け取りません。
-
Amazon Route 53 Resolver は、Amazon が提供するプライベート DNS ホスト名を解決できません。
-
DHCP オプションセットにカスタムドメイン名がある場合、インスタンスはカスタムプライベート DNS ホスト名を受け取ります。Amazon Route 53 Resolver サーバーを使用しない場合、必要に応じてカスタムドメインネームサーバーがホスト名を解決する必要があります。
-
-
Amazon Route 53 のプライベートホストゾーンで定義されたカスタム DNS ドメイン名を使用する場合や、インターフェイス VPC エンドポイント (AWS PrivateLink) でプライベート DNS を使用する場合は、
enableDnsHostnames
属性とenableDnsSupport
属性の両方をtrue
に設定する必要があります。 -
Amazon Route 53 Resolver は、プライベート DNS ホスト名を、すべてのアドレス空間のプライベート IPv4 アドレスに解決できます。これには、VPC の IPv4 アドレス範囲が、RFC 1918
に指定されているプライベート IPv4 アドレス範囲外になる場合も含まれます。ただし、2016 年 10 月より前に作成した VPC の場合、その IPv4 アドレス範囲がこれらの範囲外であると、Amazon Route 53 Resolver はプライベート DNS ホスト名を解決しません。このサポートを有効にするには、AWS Support までお問い合わせください。 -
VPC ピアリングを使用する場合は、両方の VPC で両方の属性を有効にし、ピアリング接続の DNS 解決を有効にする必要があります。詳細については、「VPC ピアリング接続の DNS 解決を有効にする」を参照してください。
DNS クォータ
各 EC2 インスタンスは、Route 53 Resolver (具体的には 10.0.0.2、169.254.169.253などの .2 アドレス) にネットワークインターフェイスあたり 1024 パケット/秒でパケットを送信できます。このクォータを増やすことはできません。Route 53 Resolver でサポートされる 1 秒あたりの DNS クエリの数は、クエリのタイプ、レスポンスのサイズ、および使用中のプロトコルにより異なります。スケーラブルな DNS アーキテクチャの詳細および推奨については、「アクティブディレクトリを使用した AWS ハイブリッド DNS
クォータに達すると、Route 53 Resolver はトラフィックを拒否します。クォータに達する原因には、DNS スロットリングの問題や、Route 53 Resolver ネットワークインターフェイスを使用するインスタンスメタデータクエリがあります。VPC DNS スロットリングの問題を解決する方法については、「VPC DNS スロットリングが、Amazon が提供している DNS サーバーへのDNS クエリの失敗の原因となっているかどうかを判断する方法を教えてください。
プライベートホストゾーン
プライベート IPv4 アドレスや AWS で提供されたプライベート DNS ホスト名の代わりに example.com
のようなカスタム DNS ドメイン名を使用して VPC のリソースにアクセスする場合は、Route 53 でプライベートホストゾーンを作成できます。プライベートホストゾーンは、インターネットにリソースを公開することなく、1 つ以上の VPC 内のドメインとそのサブドメインにトラフィックをルーティングする方法に関する情報を保持するコンテナです。次に、Route 53 リソースレコードセットを作成できます。これにより、ドメインとサブドメインへのクエリに Route 53 が対応する方法が決定されます。例えば、example.com のブラウザリクエストが VPC のウェブサーバーにルーティングされるようにする場合、プライベートホストゾーンで A レコードを作成し、そのウェブサーバーの IP アドレスを指定します。プライベートホストゾーンの作成の詳細については、Amazon Route 53 開発者ガイドの「プライベートホストゾーンの使用」を参照してください。
カスタム DNS ドメイン名を使用してリソースにアクセスするには、VPC 内のインスタンスに接続している必要があります。インスタンスで、ping
コマンド (ping mywebserver.example.com
など) を使用してカスタム DNS 名からプライベートホストゾーンのリソースにアクセス可能なことをテストできます (ping
コマンドが機能するには、インスタンスのセキュリティグループのルールでインバウンド ICMP トラフィックが許可されている必要があります)。
プライベートホストゾーンは VPC 外部の推移的関係をサポートしていません。例えば、VPN 接続の他方の側からカスタムプライベート DNS 名を使用してリソースにアクセスすることはできません。
重要
Amazon Route 53 のプライベートホストゾーンに定義されているカスタム DNS ドメイン名を使用している場合は、enableDnsHostnames
属性と enableDnsSupport
属性の両方を true
に設定する必要があります。