Rock'n'Hack ブログ

それなりハッカーを目指して、もろもろのメモ。bloggerから引っ越しました。

AWS : boto を用いた ELB の操作メモ


ちょっと久々に、boto のお話。

今回は、AWSELB をいじってみる。

◆Endpoint に接続

>>> import boto.ec2.elb
>>>
>>> conn=boto.ec2.elb.connect_to_region('ap-northeast-1') #コネクション取得
>>>
>>> conn.get_all_load_balancers() #既存のELBを確認(まだ何も無い)
[]

◆ロードバランサ作成


>>> botoelb=conn.create_load_balancer(name='test', zones=['ap-northeast-1a','ap-northeast-1b'], listeners=[('80', '80', 'HTTP')])
# test という名前の、2つのアベイラビリティゾーンにまたがる、ロードバランサの80番ポートへのリクエストを
バックエンドの80番ポートに、HTTPプロトコルで受け渡すロードバランサを作成

>>> botoelb #インスタンスの確認
LoadBalancer:test
>>>
>>> botoelb.name #ロードバランサ名の確認
'test'
>>>
>>> botoelb.listeners #リスナーの確認
[('80', '80', 'HTTP')]
>>>
>>> botoelb.instances #バックエンドのインスタンスを確認(まだ何も無い)
>>>
>>> botoelb.dns_name #パブリックDNS名の確認
u'pytest-533279012.ap-northeast-1.elb.amazonaws.com'
>>>
>>> botoelb.availability_zones #アベイラビリティゾーンの確認
['ap-northeast-1a', 'ap-northeast-1b']
>>>

◆バックエンドインスタンスの登録

>>>
>>> botoelb.register_instances(['i-30xxxxx','i-8exxxxx']) #2つのインスタンスを登録
>>>
>>> botoelb.instances #バックエンドのインスタンスを確認
[InstanceInfo:i-30xxxxx, InstanceInfo:i-8exxxxx]
>>>

◆ヘルスチェックの設定

>>> healthcheck = boto.ec2.elb.HealthCheck(interval=20, target='HTTP:80/index.html', healthy_threshold=3, timeout=5, unhealthy_threshold=5)
# ヘルスチェックのインスタンスを作成。パラメータは見ての通り。
>>>
>>> botoelb.configure_health_check(healthcheck) #ヘルスチェック設定の確認
HealthCheck:HTTP:80/index.html

Cookieの設定(アプリケーション側)

>>> botoelb.create_app_cookie_stickiness_policy('PHPSESSID', 'pypolicy') #クッキーのポリシーを作成。対象クッキー名は「PHPSESSID」。
True
>>>
>>> botoelb.set_policies_of_listener('80', ['pypolicy']) #ロードバランサの80番ポートにクッキーのポリシーを設定
True
>>>
>>> botoelb = conn.get_all_load_balancers('test')[0]
>>>

Cookieの設定(ロードバランサ側)

>>> botoelb.create_cookie_stickiness_policy(300, 'lbpolicy') #クッキーのポリシーを作成。クッキーの有効期限は、「300秒」。
True
>>>
>>> botoelb.set_policies_of_listener('80', ['lbpolicy']) #ロードバランサの80番ポートにクッキーのポリシーを設定。※
True
>>>

※この場合は、同じポートにポリシーを設定しているので、上書きされた模様。
クッキー名は「AWSELB」となっていた。


まぁこんな感じかなぁ。
SSL を設定する時は、証明書の作成とかあるのでまた別で~。
ま、ソースを見るのが一番早いんですが、、、。



おしまい。