Amazon EC2で「Elastic Load Balancing」オプションを使って負荷分散/冗長化を実現する詳細手順


Amazon Web ServicesAmazon EC23



Amazon CloudWatch

Amazon EC2


Auto Scaling

Amazon EC2


Elastic Load Balancing




 


3使

Amazon CloudWatchAmazon EC2Auto ScalingAmazon EC2Elastic Load BalancingAmazon EC2

使()

AWS


https://farm4.static.flickr.com/3628/3562521311_02c3ca49ef_o.png  New Features for Amazon EC2: Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch | AWS News Blog 


3Amazon EC2()Elastic Load Balancing使


Amazon CloudWatchAuto Scaling


前提・セットアップ


Elastic Load Balancing10.0251G0.008



Amazon EC2
#  Amazon EC2/S3使 -  (Amazon Web Services) - RX-7 辿



Elastic Load BalancingAPI



http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2536&categoryID=88




$ wget http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing-2009-05-15.zip
$ unzip ElasticLoadBalancing-2009-05-15.zip
$ sudo mv ElasticLoadBalancing-1.0-1/ /usr/local/ElasticLoadBalancing



export AWS_ELB_HOME=/usr/local/ElasticLoadBalancing
export PATH=$PATH:${AWS_ELB_HOME}/bin

# EC2 Command-Line Tools${JAVA_HOME}



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

OK


早速、ロードバランサを作ってみる


EC22

$ ec2-describe-instances
RESERVATION     r-f70c949e      xxxxxxxxxxxx    default
INSTANCE        i-bb793cd2      ami-a3fb1dca    ec2-174-129-104-205.compute-1.amazonaws.com     domU-12-31-38-00-28-15.compute-1.internalrunning  rx7_key    0               m1.small        2009-05-22T03:10:09+0000        us-east-1c      aki-a71cf9ce    ari-a51cf9cc     monitoring-disabled
RESERVATION     r-fd33ab94      xxxxxxxxxxxx    default
INSTANCE        i-f99fda90      ami-5647a33f    ec2-174-129-164-79.compute-1.amazonaws.com      domU-12-31-38-02-6D-A1.compute-1.internalrunning  rx7_key    0               m1.small        2009-05-22T06:11:13+0000        us-east-1c      aki-a71cf9ce    ari-a51cf9cc     monitoring-disabled

2
create


$ elb-create-lb example-lb --availability-zones us-east-1c --listener "protocol=HTTP, lb-port=80, instance-port=80"
DNS-NAME  example-lb-391217788.us-east-1.elb.amazonaws.com

1"example-lb"

"--availability-zones"(,)

"--listener"()8080
HTTPHTTPS"--listener"


create"DNS-NAME"
FQDN(URL)


FQDNDNSCNAME使


ロードバランサの状況を確認する

以下のコマンドで、、、

$ elb-describe-lbs
LOAD-BALANCER  example-lb  example-lb-391217788.us-east-1.elb.amazonaws.com  2009-05-22T06:36:14.310Z

現在「Elastic Load Balancing」で使用しているロードバランサが確認できます。

ロードバランサにぶらさげるインスタンスを設定する




$ elb-register-instances-with-lb example-lb --instances i-bb793cd2,i-f99fda90
INSTANCE-ID  i-bb793cd2
INSTANCE-ID  i-f99fda90

(create)"--instance"Amazon EC2ID("i-xxxxxxxx")(,)


FQDN(URL)
()


バックエンドのヘルスチェック状況を確認する



$ elb-describe-instance-health example-lb
INSTANCE-ID  i-bb793cd2  InService
INSTANCE-ID  i-f99fda90  InService

22"InService"


$ elb-describe-instance-health example-lb
INSTANCE-ID  i-bb793cd2  InService
INSTANCE-ID  i-f99fda90  OutOfService

"OutService"


ロードバランサを削除する



$ elb-delete-lb example-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


"y"


バックエンドのヘルスチェックの設定について



elb-configure-healthcheck LoadBalancerName \
--target value \
--healthy-threshold value \
--unhealthy-threshold value \
--interval value \
--timeout value


API



LoadBalancerName




target

"TCP:80""HTTP:80/status.html"


healthy-threshold

OK2103


unhealthy-threshold

NG2105


interval

560030


timeout

NG2605interval


 

# (^^;


その他コマンド

上記で紹介しきれなかったコマンドたちをマニュアルレベルwで紹介します。

ここまで紹介してきた手順やオプションの説明から、もう何となく使えちゃうレベルになっているかと思うので、勝手に省略します。(力切れとも言う...)

ロードバランサにぶらさげているインスタンスを外す

elb-deregister-instances-from-lb
Deregisters instances from a LoadBalancer.

elb-deregister-instances-from-lb LoadBalancerName --instances value [, value...]

振り分け先ゾーンの追加

elb-enable-zones-for-lb
Add Availability Zones to an existing LoadBalancer.

elb-enable-availability-zones-for-lb LoadBalancerName --availability-zones value [, value...]

振り分け先ゾーンの削除

elb-disable-zones-for-lb
Remove Availability Zones from a LoadBalancer.

elb-disable-availability-zones-for-lb LoadBalancerName --availability-zones value [, value...]

おわりに


Elastic Load Balancing

AWS使


L4
調


使便()

()