本日も乙

ただの自己満足な備忘録。

InternalELB(内部ELB)のDNS設定にはCNAMEレコードを使う

VPCでサーバ構築していて、InternalELB(内部ELB)を使う必要がでてきました。
InternalELBというのは、インターネット(外部)からアクセスできず、VPC内でしかアクセスできないロードバランサです。InternalELBを作成すると、PublicELB(外部からアクセスできる通常のELB)と同様、DNS Name(e.g. Internal-xxxx.elb.amazonaws.com)が与えれるので、そのDNS Nameに直接アクセスすることで負荷分散させると思います。
しかし、DNS Nameではなく独自ドメインを割り当ててアクセスしたい場合があります。その場合、Route53などのDNSサービスでレコード設定をするのですが、InternalELBの設定例があまりなかったので備忘録として残しておきます。

結論としては、タイトル通り、CNAMEレコードを使えば簡単に設定できました。
以下の図はRoute53において、あるドメインに対して、CNAMEレコードで設定したものです。通常のELBと同じように設定できました。

Interlnal-elb-cname

digコマンドで確認すると、正しくドメインが正引きされていることがわかります。

$ dig example.jicoman.info

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> example.jicoman.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56138
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.jicoman.info.            IN      A

;; ANSWER SECTION:
example.jicoman.info.     23      IN      CNAME   internal-xxxxxx.ap-northeast-1.elb.amazonaws.com.
internal-xxxxx.ap-northeast-1.elb.amazonaws.com. 23 IN A 10.0.0.197
internal-xxxxx.ap-northeast-1.elb.amazonaws.com. 23 IN A 10.0.0.181

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Fri Oct 31 12:18:25 2014
;; MSG SIZE  rcvd: 150

注意としては、ELBのDNS設定には、ALIASレコードによる設定もあるのですが、InternalELBだとELB一覧に表示されず設定できないようです。 *1

ドメインを正引きするとプライベートIPアドレスが返ってくるのは少し気持ちが悪いかもしれませんが、別途DNSサーバを立てたりするより簡単に設定できるのでオススメです。

参考URL

*1:ALIASレコードについては Amazon Route 53のALIASレコード利用のススメ が分かりやすいです