目次

エンドポイントと名前解決

そのエンドポイント、ほんとにエンドポイントを経由している?
下記の図のように、実際の通信が想定していた通信と異なるルートになっていないですか?

最近エンドポイント関連でハマったので、以下の組合せによる注意点メモ(Route 53 Resolverは考慮外)
・エンドポイント
・VPCのDNS解決
・OSのDNS

はじめに

エンドポイントとVPCのDNS設定

・エンドポイント作成時に[Enable DNS name]を有効にする場合は、VPCの[DNS解決]を有効にする必要がある。
・エンドポイント作成時に[Enable DNS name]を無効にすれば、VPCの[DNS解決]は無効のままでもエンドポイントは作成できる。
・エンドポイントの[Enable DNS name]を無効、VPCの[DNS解決]は有効という組み合わせも設定上できることはできる。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/vpc-enable-private-hosted-zone/

エンドポイントとVPCのDNS解決が有効の場合

・OSのDNS設定がAmazonProviedDNSを向いていれば、エンドポイントのプライベートIPへ名前解決ができる。
・OSのDNS設定がオンプレDNSを向いている場合、エンドポイントのパブリックIPで名前解決される。(オンプレDNSはフォワーダー設定なしを想定)

エンドポイントとVPCのDNS解決が無効の場合

・OSのDNS設定がAmazonProviedDNSを向いると、エンドポイント含め全ての名前解決はできない。(hostsの情報や自身のホスト名は含まない)
・OSのDNS設定がオンプレDNSを向いている場合、エンドポイントのパブリックIPで名前解決される。(オンプレDNSはフォワーダー設定なしを想定)

まとめ

AmazonProviedDNS以外のDNSを設定した場合、OSのhostsにエンドポイントの情報を記載すれば想定通りの通信とできたが、
DNSフォワーダーの設定や、Route 53 Resolverを取り入れる方が綺麗な設計かと思います。

OSのDNS参照先 エンドポイントのDNS VPC DNS解決 対応しない場合 エンドポイントの名前解決をローカルIPで回答を受けたい場合の対応
AmazonProviedDNS 有効 有効 ローカルIPを回答 対応不要
AmazonProviedDNS 無効 無効 名前解決されない hostsにエンドポイントの情報を記載する
AmazonProviedDNS 無効 有効 グローバルIPを回答 hostsにエンドポイントの情報を記載する
オンプレDNS(フォワード無し) 有効 有効 グローバルIPを回答 hostsにエンドポイントの情報を記載する
オンプレDNS(フォワード無し) 無効 無効 グローバルIPを回答 hostsにエンドポイントの情報を記載する
オンプレDNS(フォワード無し) 無効 有効 グローバルIPを回答 hostsにエンドポイントの情報を記載する
オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 有効 有効 ローカルIPを回答 対応不要
オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 無効 無効 名前解決されない hostsにエンドポイントの情報を記載する
オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 無効 有効 グローバルIPを回答 hostsにエンドポイントの情報を記載する