猿に文明を与えるな

個人的な勝手なまとめ。

VPC Private DNSに関する雑多

対象VPC: sandbox

VPC

以下の属性をtrueに設定

  • enableDnsHostnames
  • enableDnsSupport

Route53

Hosted Zoneを作成
  • Domain Name: sandbox.local
  • Comment: private domain
  • Type: Private Hosted Zone for Amazon VPC
  • VPC ID: (sandbox VPCを選択)
レコードを登録

2つ登録

sandboxdbinstance.sandbox.local. IN CNAME <RDS FQDN>
suzaku.sandbox.local. IN A <VPC instance local IP>

動作確認

VPC内部のホストで実行

名前解決できる。

$ dig sandboxdbinstance.sandbox.local                                                                                                                                                                           

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.36.amzn1 <<>> sandboxdbinstance.sandbox.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29203
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
$ dig suzaku.sandbox.local

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.36.amzn1 <<>> suzaku.sandbox.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47609
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
VPC外部のホストで実行

当然だが、名前解決できない。

$ dig sandboxdbinstance.sandbox.local

; <<>> DiG 9.8.3-P1 <<>> sandboxdbinstance.sandbox.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 14262
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
$ dig sandboxdbinstance.sandbox.local

; <<>> DiG 9.8.3-P1 <<>> sandboxdbinstance.sandbox.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50346
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

余談

Publicly AccessibleのRDSのEndpointに対しdig
  • VPC内部: プライベートIPが解決される

  • VPC外部: パブリックIPが解決される

Public ELBのDNS Nameに対しdig
  • VPC内部・外部: パブリックIPが解決される