ちょっと久々に、boto のお話。
今回は、AWS の ELB をいじってみる。
◆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 を設定する時は、証明書の作成とかあるのでまた別で~。
ま、ソースを見るのが一番早いんですが、、、。
おしまい。
0 件のコメント:
コメントを投稿