39
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amazon Web ServiceAdvent Calendar 2013

Day 2

Cross-Zone Load Balancing を有効にしない理由がない件

Last updated at Posted at 2013-12-02

今北産業

Cross-Zone Load Balancing は
今すぐ
設定すべき

kwsk

これまで

2013年11月まで、AmazonEC2 の ELB (Elastic Load Balancing) を使うとき、こんなことに注意する必要がありました。

AZ (Availability Zone) 配下の EC2 インスタンス台数は均等化を推奨

AWSマイスターシリーズにも出てくる、有名な注意点です。

推奨されていることを無視すると何が起こるかというと、アクセスの偏りが発生します。

ELB を立てると、ご存じの通り elbname-1234567890.ap-northeast-1.elb.amazonaws.com といったホスト名が振られます。その中に、ap-northeast-1a のインスタンスを1台、ap-northeast-1c のインスタンスを5台ぶら下げたとします。すると、1a のインスタンスには 1c の5倍のアクセスが集中します。

なぜかというと、elbname-1234567890.ap-northeast-1.elb.amazonaws.com にアクセスした時、1a に行く確率と 1c に行く確率が同じだからです。elb のホスト名を解決する際に、DNS ラウンドロビンで、1a のロードバランサか、1c のロードバランサかのどちらかの IP 等確率で返ってきます。どちらの AZ に何台のインスタンスがあるかに関わらず、です。なので、50% の確率でインスタンスが1台しかない 1a に、50% の確率でインスタンスが5台ある 1c にアクセスが割り振られ、結果として 1a のインスタンスには5倍のアクセスが集中することになります。

これから

しかし、11月の神アップデートにて、このような事態に悩まされることは無くなりました。Cross-Zone Load Balancing のリリースです。

ホスト名解決の際に、どちらかのロードバランサの IP が等確率で返ってくるところは、これまでと同じです。違うのはその先で、1a のロードバランサの IP が返ってきたとしても、その先の負荷分散の対象が 1a の1台と、1c の5台全てになります。

図にするとこんな感じです(AWSマイスターシリーズ
のスライドを元に改変)

CrossZoneLoadBalancing.jpg

設定については、AWS CLI を使ってサクッできます。

aws elb modify-load-balancer-attributes --load-balancer-name yourelbname --load-balancer-attributes '{"CrossZoneLoadBalancing":{"Enabled":true}}' --region ap-northeast-1

手持ちのロードバランサ一括設定するならこんな感じ(region設定は略)。

for lb in $(aws elb describe-load-balancers --query="LoadBalancerDescriptions[].LoadBalancerName" --output text); do
  echo $lb
  aws elb modify-load-balancer-attributes --load-balancer-name $lb --load-balancer-attributes '{"CrossZoneLoadBalancing":{"Enabled":true}}'
done

参考:

デメリット

RDS に対する AZ 間の通信コストなどがかかるといえばかかります。

しかし、Cross-Zone Load Balancing は、そういったデメリットを補って余りある機能だと思うので、なるべく有効にしたほうがいいと思います。

まとめ

さぁ、今すぐ Cross-Zone Load Balancing を有効にしよう!

新規で ELB を立てる時は、最初から Enable Cross-Zone Load Balancing にチェックが入ってるので、そのまま作れば大丈夫です。

39
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?