2009年9月21日月曜日

"Amazon EC2"で"Elastic Load Balancing"(ELB)

スズキです。

"Amazon EC2"で"Elastic Load Balancing"(ELB)を設定してみました。
今回は、わけあって、Mac(bash)での作業です。

まずは、下記よりツールのダウンロードです。(Javaが必要です)
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2536&categoryID=88

次に、環境変数の設定です。

# export AWS_ELB_HOME=/Users/suzuki/Dropbox/suz-lab/common/sbin/ec2/elb
※ 上記ツールを配置したディレクトリを指定して下さい。

# export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
※ Macの場合は上記のようです。

# export EC2_PRIVATE_KEY=/Users/suzuki/Dropbox/suz-lab/common/etc/ec2/suz-lab/pk.pem
# export EC2_CERT=/Users/suzuki/Dropbox/suz-lab/common/etc/ec2/suz-lab/cert.pem
※ Amazonから取得したキーを指定します。
※ 環境変数に関しては下記も参考になります。
http://blog.suz-lab.com/2009/04/centos53ami_20.html

そして、実際にELBの作成です。(AWS_ELB_HOMEにいる前提で)

# ./elb-create-lb suz-lab-00 --availability-zones us-east-1a \
--listener "lb-port=80,instance-port=80,protocol=http" \
--listener "lb-port=443,instance-port=443,protocol=tcp"

ELB(suz-lab-00)宛ての80番(HTTP)と443番(HTTPS)を、登録されているインスタンスの
80番(HTTP)と443番(HTTPS)にバランシングするようにしています。

ちなみに443番の方の"protocol"が"tcp"になっているのに注意です。

実行結果は下記のようになり、下記のホスト名を、CNAMEレコードでDNS登録すれば、
任意のホスト名でELBが利用できるようになります。

DNS-NAME suz-lab-0000000000.us-east-1.elb.amazonaws.com

最後に、この作業をなぜMacで行ったかというと、
Windowsのコマンドプロンプトからだと、なぜか、"--listener"を複数指定すると、
レスポンスが返ってこなかったからです…

これからは、コマンドライン上の作業はMacでやることにしよう…
(Dropboxで同期してることだし…)

--------
http://www.suz-lab.com

0 コメント: