VPCを作成した直後のDNS関連設定は以下のようになっている。
GUIから確認するには、「VPC」>対象VPCを選択>「概要」タブ
① DNS解決(DNS Resolution): はい
② DNSホスト名:いいえ
■① DNS解決(AWSコンソール上からVPC選択>右クリック「DNS resolution」 もしくは、DHCPオプションの「enableDNSSupport」)について
VPCに対して、DNS解決がサポートされるかどうか。ここでのDNS解決はパブリックDNSのこと。
当該設定がTRUE(YES)の場合は、インスタンス作成時にグローバルIPアドレスがランダムで割り当てられる。
※サブネットの「パブリック IPv4 アドレスの自動割り当て」次第で割り当て状態が変わるので、上記は予め自動割り当てを有効にしていた場合となる。
デフォルトでTRUE(=YES)。
【TRUEの場合】
VPC範囲の+2のIPアドレスがDNSサーバ(AmazonProvidedDNS=Route53のプライベート/パブリックDNSどちらとも)として起動する。
VPC範囲の+2のIPアドレスがDNSサーバ(AmazonProvidedDNS=Route53のプライベート/パブリックDNSどちらとも)として起動する。
AmazonProvidedDNSは、Route53への問い合わせを意味する。
→RHEL7で/etc/resolv.conf を見てみると、以下の通りnameserverが設定されている。この設定はDHCPオプションセットで指定している内容が自動的に反映される。
なお、AmazonProvidedDNS=VPCのネットワークセグメント+2となる。
# cat /etc/resolv.conf
# Generated by NetworkManager
search ap-northeast-1.compute.internal itoprivate.local
nameserver 172.17.0.2 ※VPCネットワークが「172.17.0.0/16」のため。
【FALSEの場合】
・パブリックDNSホスト名は付与されない
・DHCPオプションセットで指定した場合、プライベートDNSホスト名(=ip-~.ap-northeast-1.compute.internal)は付与されるが、AmazonProvicedDNS(=Route53)による名前解決は不可となる。
■② DNSホスト名(AWSコンソール上からVPC選択>右クリック「DNS Hostname」もしくは DHCPオプションの「enableDnsHostnames」)について
VPC内に起動されるインスタンスがパブリックDNSホスト名(=ec2-グローバルIPアドレス.ap-northeast-1.compute.amazonaws.com)を取得するかどうか。
デフォルトでFALSE(=NO)。
【TRUEの場合】
VPC内のインスタンスのDNS名を取得するが、前提として「DNS解決(DNS resolution)」がTRUEである必要がある。
VPC内のインスタンスのDNS名を取得するが、前提として「DNS解決(DNS resolution)」がTRUEである必要がある。
====以下、DNS解決、DNSホスト名のTRUE,FALSE状態におけるインスタンス作成時の状態===
■DNS解決TRUE、DNSホスト名:FALSE の状態でインスタンスを作成した場合
「パブリックDNS」が空白となる。
■Route53のプライベートホストゾーンについて
プライベートホストゾーンはVPCに紐づいている。
インターネットにリソースを公開することなく、VPC内専用のローカルDNS環境を構築することができる。
プライベートホストゾーンに定義されているカスタムDNSドメイン名を使用している場合は、
enableDnsHostnames属性 とenableDnsSupport属性をtrueにする必要がある。