VPC の DNS 属性 - Amazon Virtual Private Cloud

VPC の DNS 属性

ドメインネームシステム (DNS) は、インターネットで使用する名前を対応する IP アドレスに解決するための標準です。DNS ホスト名はコンピュータを一意に識別する絶対名で、ホスト名とドメイン名で構成されます。DNS サーバーは DNS ホスト名を対応する IP アドレスに解決します。

パブリック IPv4 アドレスによってインターネットでの通信が可能になり、プライベート IPv4 アドレスによってインスタンスのネットワーク内部での通信が可能になります。詳細については、「IP アドレス指定」を参照してください。

Amazon は、お客様の VPC 用の DNS サーバー (Amazon Route 53 Resolver) を提供しています。代わりに独自の DNS サーバーを使用するには、VPC 用の DHCP オプションの新しいセットを作成します。詳細については、「Amazon VPC の DHCP オプションセット」を参照してください。

Amazon DNS サーバー

Amazon DNS サーバーは Amazon Route 53 Resolver サーバーです。このサーバーは、VPC のインターネットゲートウェイを介した通信を必要とするインスタンスに対して DNS を有効にします。

Amazon DNS サーバーは、VPC の特定のサブネットまたはアベイラビリティーゾーン内に存在しません。これは、アドレス 169.254.169.253 (および VPC IPv4 ネットワーク範囲のベースにある予約済み IP アドレスに 2 を加えたもの) ならびに fd00:ec2::253 にあります。例えば、10.0.0.0/16 ネットワークの Amazon DNS サーバーの位置は 10.0.0.2 となります。複数の IPv4 CIDR ブロックを持つ VPC の場合、DNS サーバーの IP アドレスはプライマリ CIDR ブロックにあります。

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 サーバーに条件付きフォワーダーを追加して、region-name.compute.internal ドメインのクエリがAmazon DNS サーバーに転送されるようにする方法を検討します。詳細については、Amazon EMR 管理ガイドの「クラスターをホストするための VPC をセットアップする」を参照してください。

  • Windows Server 2008 では、リンクローカルアドレス範囲 (169.254.0.0/16) にある DNS サーバーは使用できません。

  • 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 1918 によって定義されたプライベートアドレス空間の範囲内にある限り、他の VPC 内の他のインスタンスのプライベート IP DNS 名 (IPv4 のみ) のホスト名を解決できます: 10.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 書式、その他のリージョンは ec2-public-ipv4-address.region.compute.amazonaws.com 書式が使用されます。Amazon DNS サーバーがパブリック DNS ホスト名を解決すると、インスタンスのパブリック IPv4 アドレス (インスタンスのネットワークの外部の場合) およびインスタンスのプライベート IPv4 アドレス (インスタンスのネットワーク内からの場合) となります。詳細については、Linux インスタンス用の Amazon EC2 ユーザーガイドの「パブリック IPv4 アドレスと外部 DNS ホスト名」を参照してください。

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 でない限り、この属性のデフォルトは false です。

enableDnsSupport

VPC が Amazon 提供の DNS サーバーを介した DNS 解決策をサポートするかどうかを決定します。

この属性が true の場合、Amazon が提供した DNS サーバーへのクエリは成功します。詳細については、「Amazon DNS サーバー」を参照してください。

この属性のデフォルトは true です。

ルールと考慮事項

以下のルールが適用されます。

  • 属性の両方が 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 までお問い合わせください。

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 クエリの失敗の原因となっているかどうかを判断する方法を教えてください。」を参照してください。インスタンスメタデータの詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「Retrieve instance metadata (インスタンスメタデータの取得)」を参照してください。

EC2 インスタンスの DNS ホスト名を表示する

Amazon EC2 コンソールまたはコマンドラインを使用して、実行中のインスタンスまたはネットワークインターフェイスの DNS ホスト名を確認できます。

[Public DNS (IPv4) (パブリック DNS (IPv4))] フィールドと [Private DNS (プライベート DNS)] フィールドは、インスタンスに関連付けられている VPC で DNS オプションが有効になっている場合に使用できます。詳細については、「VPC 内の DNS 属性」を参照してください。

インスタンス

コンソールを使用してインスタンスの DNS ホスト名を確認するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. リストから インスタンスを選択します。

  4. 詳細ペインで、[Public DNS (IPv4)] および [Private DNS] フィールドに、該当する場合は DNS ホスト名が表示されます。

コマンドラインを使用してインスタンスの DNS ホスト名を確認するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 の使用 を参照してください。

ネットワークインターフェイス

コンソールを使用してネットワークインターフェイスのプライベート DNS ホスト名を確認するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Network Interfaces] を選択します。

  3. リストからネットワークインターフェイスを選択します。

  4. 詳細ペインの [プライベート DNS (IPv4)] フィールドにプライベート DNS ホスト名が表示されます。

コマンドラインを使用してネットワークインターフェイスの DNS ホスト名を確認するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、「Amazon EC2 の使用」を参照してください。

VPC の DNS 属性の表示と更新

Amazon VPC コンソールを使用して、VPC の DNS サポート属性を表示および更新することができます。

コンソールを使用して VPC の DNS サポートの詳細を確認し更新するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. 画面左枠のナビゲーションペインで、[Your VPCs] を選択します。

  3. VPC のチェックボックスをオンにします。

  4. 情報の詳細を確認します。この例では、両方の DNS hostnames (DNS ホスト名) およびDNS resolution (DNS 解決方法) が有効です。

    
              [DNS 設定] タブ
  5. これらの設定を更新するには、[Actions] (アクション) を選択してから [Edit VPC settings] (VPC 設定の編集) を選択します。該当する DNS 属性の [Enable] (有効化) のチェックをオンまたはオフにして、[Save changes] (変更を保存する) を選択します。

コマンドラインを使用して VPC の DNS サポートについて説明するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 の使用 を参照してください。

コマンドラインを使用して VPC の DNS サポートを更新するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 の使用 を参照してください。

プライベートホストゾーン

プライベート 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 に設定する必要があります。