

# Amazon DNS について理解する
<a name="AmazonDNS-concepts"></a>

ユーザーが AWS アーキテクトまたは管理者として対処することになる基本のネットワーク要素の 1 つが、Amazon DNS サーバーです。Route 53 Resolver ともいいます。この DNS リゾルバーサービスは、AWS リージョン内の各アベイラビリティーゾーンにネイティブに統合されており、仮想プライベートクラウド (VPC) 内でのドメイン名解決のために信頼性の高いスケーラブルなソリューションを提供しています。このセクションでは、Amazon DNS サーバーの IP アドレス、解決可能なプライベート DNS ホスト名、その使用を管理するルール、について説明します。

**Topics**
+ [Amazon DNS サーバー](#AmazonDNS)
+ [ルールと考慮事項](#amazon-dns-rules)
+ [EC2 インスタンスの DNS ホスト名](#vpc-dns-hostnames)
+ [VPC の DNS 属性](#vpc-dns-support)
+ [DNS クォータ](#vpc-dns-limits)
+ [プライベートホストゾーン](#vpc-private-hosted-zones)

## Amazon DNS サーバー
<a name="AmazonDNS"></a>

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 クエリに[リンクローカルアドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#link-local-addresses)を使用します。これらのクエリは Route 53 Resolver にプライベート転送されるため、ネットワーク上では表示されません。IPv6 専用サブネットでは、"AmazonProvidedDNS" が DHCP オプションセット内のネームサーバーである限り、IPv4 リンクローカルアドレス (169.254.169.253) に引き続きアクセスできます。

VPC 内に起動したインスタンスは、インスタンスにプライベート DNS ホスト名を提供します。パブリック IPv4 アドレスを使用してインスタンスが設定されており、VPC DNS 属性が有効になっている場合は、パブリック DNS ホスト名も提供します。

プライベート DNS ホスト名の形式は、EC2 インスタンスを起動したときの設定方法によって異なります。プライベート DNS ホスト名のタイプの詳細については、**Amazon EC2 ユーザーガイドの「[Amazon EC2 インスタンスのホスト名タイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)」を参照してください。

VPC の Amazon DNS サーバーは、Route 53 のプライベートホストゾーンで指定する DNS ドメイン名を解決するために使用されます。プライベートホストゾーンの詳細については、*Amazon Route 53 デベロッパーガイド*の「[プライベートホストゾーンの使用](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)」を参照してください。

## ルールと考慮事項
<a name="amazon-dns-rules"></a>

Amazon DNS サーバーを使用する場合は、次のルールと考慮事項が適用されます。
+ ネットワーク ACL またはセキュリティグループを使用して、Amazon DNS サーバーとの間のトラフィックをフィルタリングすることはできません。
+ Amazon EMR のような、Hadoop フレームワークを使用するサービスは、インスタンスが自己の完全修飾ドメイン名 (FQDN) を解決する必要があります。このような場合、`domain-name-servers` オプションがカスタム値に設定されていると DNS 解決が失敗する場合があります。DNS 解決が適切に行われるようにするには、DNS サーバーに条件付きフォワーダーを追加して、`{{region-name}}.compute.internal` ドメインのクエリがAmazon DNS サーバーに転送されるようにする方法を検討します。詳細については、*Amazon EMR 管理ガイド*の「[クラスターをホストするための VPC をセットアップする](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-host-job-flows.html)」を参照してください。
+ Amazon Route 53 Resolver は、再帰的な DNS クエリのみをサポートしています。

## EC2 インスタンスの DNS ホスト名
<a name="vpc-dns-hostnames"></a>

インスタンスを起動すると、常にプライベート IPv4 アドレスと、プライベート IPv4 アドレスに対応するプライベート DNS ホスト名を受け取ります。インスタンスにパブリック IPv4 アドレスが割り当てられている場合、VPC の DNS 属性は、パブリック IPv4 アドレスに対応するパブリック DNS ホスト名を受け取るかどうかを決定します。詳細については、「[VPC の DNS 属性](#vpc-dns-support)」を参照してください。

Amazon が提供する DNS サーバーを有効にすると、DNS ホスト名が次のように解決されます。

**プライベート IPv4 DNS 名**  
インスタンスのプライベートIPv4 DNSホスト名は、そのプライベートIPv4アドレスに解決されます。プライベート IIPv4 DNS ホスト名は、同じ VPC 内または接続された VPC 内のインスタンス間の通信に使用できます。詳細については、「*Amazon EC2 ユーザーガイド*」の 「[プライベートIPv4 アドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses)」を参照してください。

**パブリック IPv4 DNS 名**  
インスタンスのパブリック IPv4 DNS ホスト名は、パブリック IPv4 アドレス (インスタンスのネットワーク外部) またはプライベート IPv4 アドレス (インスタンスのネットワーク内部) に解決されます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[パブリック IPv4 アドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses)」を参照してください。

VPC ピアリング接続経由でパブリック IPv4 DNS 名をプライベート IPv4 アドレスに解決するには、ピアリング接続の DNS 解決を有効にする必要があります。詳細については、「[VPC ピアリング接続の DNS 解決を有効にする](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-dns.html)」を参照してください。

**プライベートリソース DNS 名**  
このインスタンスで選択された A および AAAA DNS レコードに解決できる RBN ベースの DNS 名。この DNS ホスト名は、デュアルスタックおよび IPv6 専用サブネットのインスタンスの詳細で表示されます。RBN の詳細については、[*Amazon EC2 ユーザーガイド*]の [[EC2 インスタンスホスト名のタイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)]を参照してください。

## VPC の DNS 属性
<a name="vpc-dns-support"></a>

次の VPC 属性は、VPC に提供される DNS サポートを決定します。両方の属性が有効になっている場合、VPC 内に起動されるインスタンスはパブリック DNS ホスト名を受け取ります。そのためには、インスタンスにパブリック IPv4 アドレスまたは Elastic IP アドレスが割り当てられている必要があります。両方とも有効になっていなかった VPC で両方の属性を有効にすると、その VPC ですでに起動されているインスタンスはパブリック DNS ホスト名を受け取ります。そのためには、インスタンスにパブリック IPv4 アドレスまたは Elastic IP アドレスが割り当てられている必要があります。

これらの属性が VPC で有効かどうかを確認するには、「[VPC の DNS 属性の表示と更新](vpc-dns-updating.md)」を参照してください。


| 属性 | 説明 | 
| --- | --- | 
| enableDnsHostnames | VPC がパブリック IP アドレスを持つインスタンスへのパブリック DNS ホスト名の割り当てをサポートするかどうかを決定します。<br />VPC がデフォルト VPC でない限り、この属性のデフォルトは `false` です。この属性における以下の**ルールと考慮事項**に注意してください。 | 
| enableDnsSupport | VPC が Amazon 提供の DNS サーバーを介した DNS 解決策をサポートするかどうかを決定します。<br />この属性が `true` の場合、Amazon が提供した DNS サーバーへのクエリは成功します。詳細については、「[Amazon DNS サーバー](#AmazonDNS)」を参照してください。<br />この属性のデフォルトは `true` です。この属性における以下の**ルールと考慮事項**に注意してください。 | 

**ルールと考慮事項**
+ 属性の両方が `true` に設定されている場合、次のようになります。
  + パブリック IP アドレスを持つインスタンスは、対応するパブリック DNS ホスト名を受け取ります。
  + Route 53 Resolver サーバーは、Amazon が提供するプライベート DNS ホスト名を解決できます。
+ 少なくとも 1 つの属性が `false` に設定されている場合、次のようになります。
  + パブリック IP アドレスを持つインスタンスは、対応するパブリック DNS ホスト名を受け取りません。
  + Route 53 Resolver は、Amazon が提供するプライベート DNS ホスト名を解決できません。
  + [DHCP オプションセット](VPC_DHCP_Options.md)にカスタムドメイン名がある場合、インスタンスはカスタムプライベート DNS ホスト名を受け取ります。Route 53 Resolver サーバーを使用しない場合、カスタムドメインネームサーバーは必要に応じてホスト名を解決する必要があります。
+ Amazon Route 53 のプライベートホストゾーンで定義されたカスタム DNS ドメイン名を使用する場合や、インターフェイス VPC エンドポイント (AWS PrivateLink) でプライベート DNS を使用する場合は、`enableDnsHostnames` 属性と `enableDnsSupport` 属性の両方を `true` に設定する必要があります。
+ Route 53 Resolver は、プライベート DNS ホスト名を、「[RFC 1918](https://tools.ietf.org/html/rfc1918)」に指定されているプライベート IPv4 アドレス範囲外の VPC の IPv4 アドレス範囲を含む、すべてのアドレス空間のプライベート IPv4 アドレスに解決できます。ただし、2016 年 10 月より前に作成した VPC の場合、VPC の IPv4 アドレス範囲がこれらの範囲外であると、Route 53 Resolver はプライベート DNS ホスト名を解決しません。このサポートを有効にするには、[サポート](https://aws.amazon.com/contact-us/) までお問い合わせください。

## DNS クォータ
<a name="vpc-dns-limits"></a>

[リンクローカル](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#link-local-addresses)アドレスを使用するサービスには 1,024 パケット/秒 (PPS) の制限があります。この制限には、Route 53 Resolver DNS クエリ、[インスタンスメタデータサービス (IMDS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html) リクエスト、[Amazon Time Service Network Time Protocol (NTP) リクエスト](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)、および [Windows Licensing Service (Microsoft Windows ベースのインスタンス向け)](https://aws.amazon.com/windows/resources/licensing/) リクエストの総計が含まれます。このクォータを増やすことはできません。

Route 53 Resolver でサポートされる 1 秒あたりの DNS クエリの数は、クエリのタイプ、レスポンスのサイズ、および使用中のプロトコルにより異なります。スケーラブルな DNS アーキテクチャの詳細および推奨については、「[アクティブディレクトリを使用した AWS ハイブリッド DNS](https://d1.awsstatic.com/whitepapers/aws-hybrid-dns-with-active-directory.pdf) 技術ガイド」を参照してください。

クォータに達すると、Route 53 Resolver はトラフィックを拒否します。クォータに達する原因には、DNS スロットリングの問題や、Route 53 Resolver ネットワークインターフェイスを使用するインスタンスメタデータクエリがあります。VPC DNS スロットリングの問題を解決する方法については、「[VPC DNS スロットリングが、Amazon が提供している DNS サーバーへのDNS クエリの失敗の原因となっているかどうかを判断する方法を教えてください。](https://repost.aws/knowledge-center/vpc-find-cause-of-failed-dns-queries)」を参照してください。インスタンスメタデータの詳細については、「Amazon EC2 ユーザーガイド」の「[インスタンスメタデータの取得](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)」を参照してください。

## プライベートホストゾーン
<a name="vpc-private-hosted-zones"></a>

プライベート IPv4 アドレスや AWS で提供されたプライベート DNS ホスト名の代わりに `example.com` のようなカスタム DNS ドメイン名を使用して VPC のリソースにアクセスする場合は、Route 53 でプライベートホストゾーンを作成できます。プライベートホストゾーンは、インターネットにリソースを公開することなく、1 つ以上の VPC 内のドメインとそのサブドメインにトラフィックをルーティングする方法に関する情報を保持するコンテナです。次に、Route 53 リソースレコードセットを作成できます。これにより、ドメインとサブドメインへのクエリに Route 53 が対応する方法が決定されます。例えば、example.com のブラウザリクエストが VPC のウェブサーバーにルーティングされるようにする場合、プライベートホストゾーンで A レコードを作成し、そのウェブサーバーの IP アドレスを指定します。プライベートホストゾーンの作成の詳細については、*Amazon Route 53 開発者ガイド*の「[プライベートホストゾーンの使用](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)」を参照してください。

カスタム DNS ドメイン名を使用してリソースにアクセスするには、VPC 内のインスタンスに接続している必要があります。インスタンスで、`ping` コマンド (`ping mywebserver.example.com` など) を使用してカスタム DNS 名からプライベートホストゾーンのリソースにアクセス可能なことをテストできます (`ping` コマンドが機能するには、インスタンスのセキュリティグループのルールでインバウンド ICMP トラフィックが許可されている必要があります)。

プライベートホストゾーンは VPC 外部の推移的関係をサポートしていません。例えば、VPN 接続の他方の側からカスタムプライベート DNS 名を使用してリソースにアクセスすることはできません。

**重要**  
Amazon Route 53 のプライベートホストゾーンに定義されているカスタム DNS ドメイン名を使用している場合は、`enableDnsHostnames` 属性と `enableDnsSupport` 属性の両方を `true` に設定する必要があります。