AWSアカウントを跨いだVPC間接続でプライベートDNSとしてRoute53を使う

ひさしぶりにAWSネタです。2つのAWSアカウントで別々にVPCがある時にピアリング接続を設定します。これでプライベートIPでそれぞれのVPCからアクセスができるようになります。ただ、その際に直接IPアドレスだと少し困るので今回Route53を使ってプライベートなDNS名でアクセスするようにしました。備忘録です。

AWSアカウントまたぎでRoute53のプライベートDNSは使えるのか?

Amazon Route 53 Private DNSを複数VPCに適用する

関連付けの対象となるVPCは、Hosted Zoneを定義するAWSアカウントと同一アカウントのみのようです。特に他のアカウントへの許可設定や、APIにアカウントを指定するような項目が見当たらなかったためです。できるよ!という情報をお持ちの方は教えて下さい!

Route53でプライベートDNSを定義して複数の自アカウントのVPCに紐付けることは可能なようなんですが、アカウントが異なるとそのアカウントで別途定義が必要になるようです。

Private DNSの設定: ELBの場合はどう設定すべきか?

Private DNSをRoute53で作成する際、通常のEC2であればIPアドレスをAレコードとして登録すればOKなんですが、ELBの場合どうするのか気になっていました。インターナルのELBを作ったのが初めてだったんですが、internal-xxxというDNS名がつくようです。

NewImage

で、このDNS名自体はプライベートに閉じたものではなくどこからでもアクセスできるようです。ただし、取得されるIPアドレスはプライベートなものになるという事のようです。ローカルのMacでdigコマンドを打ってみました。10.1.x.xというIPアドレスは自分で定義したVPCのものになっています。2つ取得されているのはAZが2つあるからです。

$ dig internal-site-a-elb-xxxxx.ap-northeast-1.elb.amazonaws.com

; <<>> DiG 9.8.3-P1 <<>> internal-site-a-elb-xxxxx.ap-northeast-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6565
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;internal-site-a-elb-xxxxx.ap-northeast-1.elb.amazonaws.com. IN A

;; ANSWER SECTION:
internal-site-a-elb-xxxxx.ap-northeast-1.elb.amazonaws.com. 60 IN A 10.1.2.8
internal-site-a-elb-xxxxx.ap-northeast-1.elb.amazonaws.com. 60 IN A 10.1.1.241

;; Query time: 62 msec
;; SERVER: 192.168.210.254#53(192.168.210.254)
;; WHEN: Thu Sep 15 19:51:42 2016
;; MSG SIZE  rcvd: 111

Private DNSを設定するには単純にこのinternal-xxxというDNS名をCNAMEとして登録すれば良いだけでした。インターナルなELBの仕組みさえ分かってしまえば簡単ですね。