lifehack blog

役に立つガジェットや知識を配信します

VPCの DNS 属性についてまとめ

記事目安...5分

はじめに

VPC を構築するときに設定する DNS 属性の挙動についてまとめてみました。

VPCDNS 属性の種類

VPCDNS 属性は具体的には以下 2つです。

  • enableDNSHostnames
  • enableDNSsupport

参考: https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns.html#vpc-dns-support

enableDNSHostnames

VPC 内のインスタンスがパブリック IP を持つときに、そのインスタンスにパブリック DNS ホスト名を自動でアタッチするかを制御する属性です。

enableDNSsupport

AWS Provided DNS が、 VPCインスタンスの名前解決をサポートするかを制御する属性です。

DNS 属性の組み合わせ

どちらも Bool 型である以上、VPCDNS 属性は 2 × 2 = 4 パターンの組み合わせがあります。

全体像

全体像のイメージです。

f:id:walk0204:20210828160417p:plain

  • パブリック DNS 名および、プライベート DNS 名は、 AWS により付与されるものであり、カスタム DNS 名を含みません。
  • 「付与」とは、VPCインスタンスへのDNS名付与を指します。
  • 「解決」とは、DNS 名前解決を指します。

各パターンの解説

Pattern1: enableDNSHostnames=true かつ、enableDNSsupport=true

  • VPC インスタンスに対して、パブリック DNS 名とプライベート DNS 名が付与されます。
  • パブリック DNS 名とプライベート DNS 名どちらも AWS Provided DNS により、名前解決されます。

Pattern2: enableDNSHostnames=true かつ、enableDNSsupport=false

  • VPC インスタンスに対して、パブリック DNS 名とプライベート DNS 名が付与されます。
  • パブリック DNS 名とプライベート DNS 名どちらも名前解決が行えません。

Pattern3: enableDNSHostnames=false かつ、enableDNSsupport=true

  • VPC インスタンスに対して、プライベート DNS 名が付与されます。
  • プライベート DNS 名は AWS Provided DNS により、名前解決されます。

Pattern4: enableDNSHostnames=false かつ、enableDNSsupport=false

  • VPC インスタンスに対して、プライベート DNS 名が付与されます。
  • プライベート DNS 名は、名前解決が行えません。

まとめ

  • パブリック DNS 名の付与は、enableDNSHostnames により制御される
  • プライベート DNS 名の付与は、ユーザ側では制御できず、常に有効。
  • AWS により有効化される DNS 名の名前解決は、enbleDNSsupport により制御される