ElasticLoadBalancerをWakameで使う(1/n)

2009年5月15日にAmazonWebServiceからELB(ElasticLoadBalancer)のAPI
提供されたので実際に使ってみた。

まずはAPIコマンドを実行できるように設定する

$cd /usr/local/
$wget http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing-2009-05-15.zip
$unzip ./ElasticLoadBalancing-2009-05-15.zip
$ln -s ./ElasticLoadBalancing-1.0-1 ./ElasticLoadBalancing
$cd ElasticLoadBalancing
$export AWS_ELB_HOME=/usr/local/ElasticLoadBalancing
$export PATH=$PATH:${AWS_ELB_HOME}/bin

elb-versionコマンドでVersion確認

$elb-version
>Amazon Elastic Load Balancing CLI version 1.0-1 (API 2009-05-15)

elb-create-lbコマンドでLBを作成する。

$elb-create-lb wakame-lb \
--availability-zones us-east-1a \
--listener "protocol=HTTP,lb-port=80,instance-port=80"

>DNS-NAME wakame-lb-xxxxxxxxx.us-east-1.elb.amazonaws.com

DNS-NAMEが帰ってくる。

elb-describe-lbsコマンドをたたくと登録さているLBがわかる

$elb-describe-lbs
LOAD-BALANCER  wakame-lb  wakame-lb-xxxxxxxxx.us-east-1.elb.amazonaws.com  2009-06-01T11:20:36.530Z

ないと

No LoadBalancers found

ELBにインスタンスを追加する。二台のインスタンスを追加

$elb-register-instances-with-lb wakame-lb --instances i-xxxxxxx1
$elb-register-instances-with-lb wakame-lb --instances i-xxxxxxx2

追加したあとはelb-describe-instance-healthコマンドでチェックする
OutOfServiceがInserviceへ変わると利用できる。

#elb-describe-instance-health
>INSTANCE-ID i-xxxxxxx1 OutOfService
>INSTANCE-ID i-xxxxxxx2 OutOfService

1分くらいかかる、、、

$elb-describe-instance-health
>INSTANCE-ID i-xxxxxxx1 InService
>INSTANCE-ID i-xxxxxxx2 InService

さきほどのelb-create-lbコマンドのDNS-NAMEでアクセス
http://wakame-lb-xxxxxxxxx.us-east-1.elb.amazonaws.com/

ログを確認すれば、それぞれに分散して書き込まれていることがわかる。

$tail -f /var/log/apache2/aaa.test-access.log

見たところDNSランドロビンのようだ。

elb-delete-lbコマンドでLBを削除できる。削除していいかと聞かれるのでyと入力

$elb-delete-lb wakame-lb
Warning: Deleting a LoadBalancer can lead to service disruption to any
customers connected to the LoadBalancer. Are you sure you want to delete
this LoadBalancer? [Ny]y
>OK-Deleting LoadBalancer

次回はデータベースのLBをおこなう。

リファレンス:
AmazonWebServices TechnicalDocumantation
ElasticLoadValancingAPITools