~~NOCACHE~~
~~DISCUSSION~~
## エンドポイントと名前解決
そのエンドポイント、ほんとにエンドポイントを経由している?
下記の図のように、実際の通信が想定していた通信と異なるルートになっていないですか?
{{:Aws:SystemsManager:pasted:20210415-162520.png?direct 600x0}}
最近エンドポイント関連でハマったので、以下の組合せによる注意点メモ(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にエンドポイントの情報を記載する |
| | | | | |
{{tag>AWS VPC エンドポイント DNS AmazonProviedDNS}}