前回からの続きです。
今回は、VPCエンドポイント作成時(=Interface型、PrivateLink作成時)のDNS名についてです。
※Gateway型の場合は、VPCのプライベートDNS設定が有効であっても、DNS名は付与されないようです。。。(S3のエンドポイントを作成してみたのですが、VPC自体のプライベートDNS設定は有効であっても、エンドポイントのPrivateDNSnameはFalseの応対となり、DNS名は付与されませんでした。下図は参考までに)
■公式サイト
エンドポイントサービスのプライベート DNS 名 - Amazon Virtual Private Cloud
■VPCエンドポイント作成時のDNS名について
過去の記事でVPCエンドポイントを作成した際、「プライベートDNS名を有効にする」にチェックを入れていました。
ここにチェックを入れた際、出来上がったVPCエンドポイントには以下のようにDNSが設定されています。
それぞれのDNS名は以下のようになっています。
上から順に、
① : リージョン固有のDNSホスト名
② : AZ毎のDNSホスト名
③ : サービス固有のDNSホスト名
リージョン、AZのDNS名を名前解決すると、PrivateLinkのENIのIPアドレスを引けます。
注意点としては、「②のAZ毎のDNSホスト名」は、AZ毎のため、VPCエンドポイント作成時に複数AZを指定していた場合には、名前解決されるIPアドレスも必然的にAZ毎で異なってきます。
サービス固有のDNSホスト名を名前解決すると、グローバルIPアドレスが引けます。
リージョンDNS名(上記①)を基本的には利用し、AZを跨いでいる場合には上記②を利用する感じになるかと。
■プライベートDNSの有効/無効による通信経路について
プライベートDNSの設定値およびアクセス元のパターンにより、DNSホスト名(上記①、②、③)を指定した場合の経路が異なります。
① : リージョン固有のDNSホスト名
② : AZ毎のDNSホスト名
③ : サービス固有のDNSホスト名
■補足1
プライベートDNSの設定は、そもそもVPCの属性(enableDnsHostname , enableDnsSupport)をTrueにする必要があります。
■補足2
上記①~③は、プライベートDNSが有効であればどれを使っても通信可能になります。
以上です。