こんにちはますのです。
AWSでCloudWatchエージェント、SystemsManagerエージェントを導入したくてVPCエンドポイントを作っているとエラーが出ました。
Enabling private DNS requires both enableDnsSupport and enableDnsHostnames VPC attributes set to true for vpc-111111111111111
原因:対象VPCの「DNSホスト名」「DNS解決」が無効になっている
エラーの原因は「対象VPCの「DNSホスト名」「DNS解決」が無効になっている」ことのようです。
「DNSホスト名」「DNS解決」を有効化する
対象VPCを選択>アクション>「DNSホスト名を編集」 or 「DNS解決を編集」より有効化して完了です。
とっても簡単。
有効化すると何が変わるのか??
エラー解決は簡単なのですが、ネットワークの設定いじるのは結構コワイ。ということで少し調べてみました。
VPC の DNS サポート
VPC には、VPC 内で起動したインスタンスがパブリック IP アドレスに対応するパブリック DNS ホスト名を受け取るかどうか、および Amazon DNS サーバーを通じた DNS 解決が VPC に対してサポートされるかどうかを決定する属性があります。
属性 | 説明 |
enableDnsHostnames | パブリック IP アドレスを持つインスタンスが、対応するパブリック DNS ホスト名を取得するかどうか示します。
この属性が true の場合、VPC 内のインスタンスは DNS ホスト名を取得しますが、これは enableDnsSupport 属性も true に設定されている場合のみです。 |
enableDnsSupport | DNS 解決がサポートされているかどうかを示します。
この属性が false の場合、Amazon Route 53 Resolver サーバー (パブリック DNS ホスト名を IP アドレスに解決します) が有効になりません。 この属性が true の場合、Amazon が提供する DNS サーバー (IP アドレス 169.254.169.253) へのクエリ、またはリザーブド IP アドレス (VPC IPv4 ネットワークの範囲に 2 をプラスしたアドレス) へのクエリは成功します。詳細については、「Amazon DNS サーバー」を参照してください。 |
Route53を利用している場合は「有効化」すべき
プライベートサブネットに置いているホスト(RDSやPrivateLink含む)がDNS解決をするためには有効化が必須のようです。
Route53はVPC外にあるサービスのため、プライベートサブネットは「VPC⇔リージョン」間の通信が取れず名前解決に失敗することに。
参考:<AWS>VPCのDNS ホスト名を『有効』にするということ
DNSサポートを「有効化」を検討したほうが良い環境は?
基本的には「有効化」をして大丈夫と捉えました。
しかし、チョットマッタァ!!な環境としては以下になるのか??と所感を抱いています。
- DHCPオプションセットで自前のDNSサーバを使用している場合は注意
DNS 解決(enableDnsSupport)
- プライベートホストゾーンは、VPC DNS サーバーから届く DNS クエリのみを受け付けます。VPC DNS サーバーの IP アドレスは、VPC IPv4 ネットワーク範囲のベースに 2 を付加した予約済み IP アドレスです。DNS 解決を有効にすると、VPC DNS サーバーを DNS 解決を実行するためのリゾルバーとして使用できます。
- DHCP オプションセットでカスタム DNS サーバーを使用していて、プライベートホストゾーンを使用していない場合は、このオプションは無効にしておきます。
- エンドポイントドメインを AWS Managed Services のプライベート IP アドレスに解決するには、このオプションと DNS ホスト名を有効にする必要があります。こうしたサービスには、たとえば、AWS PrivateLink や Amazon Relational Database Service (Amazon RDS) などがあります。
確認する該当箇
・VPC>左カラム:DHCPオプションセットより
図は新規作成画面です。
もしDHCPオプションセットを作っていた場合は検証してから有効化したほうが無難かもしれませんね。
既存環境に影響は無さそう。
そしてVPCエンドポイントも無事作成出来るようになったので様子見であります。
参考サイト
- プライベートホストゾーンを使用するにはどの Amazon VPC オプションを有効にすればよいですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/vpc-enable-private-hosted-zone/ - <AWS>VPCのDNS ホスト名を『有効』にするということ
https://qiita.com/fumiya-konno/items/f94ed3e3c114793c898a - VPC での DNS の使用
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns.html - DHCP オプションセット
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_DHCP_Options.html