この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
今までのELB
今までのELBはあるDNS名に対して1つのIPアドレスを返していました。このIPアドレスは固定ではなく、ELBの混雑状況によって自動的に変化していました。このDNS名に対するIPアドレスの変更は、クライアントアプリ側のDNSキャッシュ等で不具合を起こす危険性がゼロではなく、実際に私は体験しました。
新しいELB
新しいELBは最大で8つのIPアドレスを返してくれます。これによって、ELBの混雑状況によって拡大したり縮小した場合に、さっきまで見えていたキャッシュしたIPアドレスが見つからないといったエラーが無くなります。
8つのIPアドレスを確認する
digコマンドで確認できます。試してみて勘違いしていたのですが、AZの数に応じて最大で8つのようです。以下はAZ1つの場合で、結果のAレコードは1つでした。
$ dig MyLoadBalancer-83p080071.ap-northeast-1.elb.amazonaws.com
; <<>> DiG 9.7.3-P3 <<>> MyLoadBalancer-83p080071.ap-northeast-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43600
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 8
;; QUESTION SECTION:
;MyLoadBalancer-834080071.ap-northeast-1.elb.amazonaws.com. IN A
;; ANSWER SECTION:
MyLoadBalancer-834080071.ap-northeast-1.elb.amazonaws.com. 36 IN A 176.32.89.84
;; AUTHORITY SECTION:
elb.amazonaws.com. 905 IN NS ns-941.amazon.com.
elb.amazonaws.com. 905 IN NS ns-927.amazon.com.
elb.amazonaws.com. 905 IN NS ns-944.amazon.com.
elb.amazonaws.com. 905 IN NS ns-916.amazon.com.
elb.amazonaws.com. 905 IN NS ns-947.amazon.com.
elb.amazonaws.com. 905 IN NS ns-925.amazon.com.
elb.amazonaws.com. 905 IN NS ns-935.amazon.com.
elb.amazonaws.com. 905 IN NS ns-934.amazon.com.
;; ADDITIONAL SECTION:
ns-916.amazon.com. 27 IN A 207.171.178.7
ns-925.amazon.com. 28 IN A 72.21.208.213
ns-927.amazon.com. 28 IN A 72.21.204.209
ns-934.amazon.com. 40 IN A 87.238.84.215
ns-935.amazon.com. 42 IN A 87.238.80.213
ns-941.amazon.com. 894 IN A 204.246.160.5
ns-944.amazon.com. 909 IN A 204.246.161.7
ns-947.amazon.com. 27 IN A 204.246.162.10
;; Query time: 2 msec
;; SERVER: 192.168.0.3#53(192.168.0.3)
;; WHEN: Thu Oct 27 11:54:17 2011
;; MSG SIZE rcvd: 394
続いてAZを2つにした場合です。Aレコードが2つになりました!!
$ dig MyLB1-1168506832.ap-northeast-1.elb.amazonaws.com
; <<>> DiG 9.7.3-P3 <<>> MyLB1-1168506832.ap-northeast-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62308
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 8, ADDITIONAL: 8
;; QUESTION SECTION:
;MyLB1-1168506832.ap-northeast-1.elb.amazonaws.com. IN A
;; ANSWER SECTION:
MyLB1-1168506832.ap-northeast-1.elb.amazonaws.com. 60 IN A 46.51.250.132
MyLB1-1168506832.ap-northeast-1.elb.amazonaws.com. 60 IN A 176.32.89.84
;; AUTHORITY SECTION:
elb.amazonaws.com. 2631 IN NS ns-934.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-916.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-925.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-935.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-944.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-941.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-947.amazon.com.
elb.amazonaws.com. 2631 IN NS ns-927.amazon.com.
;; ADDITIONAL SECTION:
ns-916.amazon.com. 860 IN A 207.171.178.7
ns-925.amazon.com. 862 IN A 72.21.208.213
ns-927.amazon.com. 860 IN A 72.21.204.209
ns-934.amazon.com. 1 IN A 87.238.84.215
ns-935.amazon.com. 55 IN A 87.238.84.215
ns-941.amazon.com. 2624 IN A 204.246.160.5
ns-944.amazon.com. 2638 IN A 204.246.161.7
ns-947.amazon.com. 862 IN A 204.246.162.10
;; Query time: 140 msec
;; SERVER: 192.168.0.3#53(192.168.0.3)
;; WHEN: Thu Oct 27 13:30:31 2011
;; MSG SIZE rcvd: 402
さらに、AZがたくさんあるUSリージョンで試してみます。
$ dig MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com
; <<>> DiG 9.7.3-P3 <<>> MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40479
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 8, ADDITIONAL: 8
;; QUESTION SECTION:
;MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com. IN A
;; ANSWER SECTION:
MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com. 60 IN A 107.20.220.100
MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com. 60 IN A 184.73.247.162
MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com. 60 IN A 107.20.162.34
MyLoadBalancer-808957587.us-east-1.elb.amazonaws.com. 60 IN A 107.20.177.26
;; AUTHORITY SECTION:
elb.amazonaws.com. 736 IN NS ns-916.amazon.com.
elb.amazonaws.com. 736 IN NS ns-941.amazon.com.
elb.amazonaws.com. 736 IN NS ns-934.amazon.com.
elb.amazonaws.com. 736 IN NS ns-944.amazon.com.
elb.amazonaws.com. 736 IN NS ns-925.amazon.com.
elb.amazonaws.com. 736 IN NS ns-947.amazon.com.
elb.amazonaws.com. 736 IN NS ns-927.amazon.com.
elb.amazonaws.com. 736 IN NS ns-935.amazon.com.
;; ADDITIONAL SECTION:
ns-916.amazon.com. 767 IN A 207.171.178.7
ns-925.amazon.com. 770 IN A 72.21.208.213
ns-927.amazon.com. 769 IN A 72.21.204.209
ns-934.amazon.com. 55 IN A 87.238.84.215
ns-935.amazon.com. 48 IN A 87.238.84.215
ns-941.amazon.com. 744 IN A 204.246.160.5
ns-944.amazon.com. 745 IN A 204.246.161.7
ns-947.amazon.com. 767 IN A 204.246.162.10
;; Query time: 113 msec
;; SERVER: 192.168.0.3#53(192.168.0.3)
;; WHEN: Thu Oct 27 13:51:48 2011
;; MSG SIZE rcvd: 437
今度は4つAレコード返ってきました!こんな感じで最大8個まで返してくれるんですね。
ちなみに、今までのELBを使っている場合には、3週間以内に新しいELBに切り替わるようです。
まとめ
まさに、日進月歩の進化を続けるAWSサービス群。今後の進化にも期待大です!