Ruby
aws-sdk

AWS SDK for RubyでALBを操作する

More than 1 year has passed since last update.

2016/08に新しいELBである、ALB(Application Load Banalcer)が発表されましたので、そちらをRubyで操作してみます。


ドキュメント

http://docs.aws.amazon.com/sdkforruby/api/Aws/ElasticLoadBalancingV2/Client.html


gemのインストール

sdk 2.5.3で対応されたようなので、それ以上のバージョンを入れましょう。

gem 'aws-sdk', '~> 2.5.3'


ELB Clietnの生成

ALBは、Aws::ElasticLoadBalancingV2::Clientクラスを利用して操作します。

access_key =  "XXXXXXXXXXXXXXXXXXXXX"

secret_key = "XXXXXXXXXXXXXXXXXXXXX"

credentials = Aws::Credentials.new(access_key, secret_key)

region = 'ap-northeast-1'

alb_cleint = Aws::ElasticLoadBalancingV2::Client.new(
:credentials => credentials,
:region => region
)


ターゲットグループへのインスタンス追加・削除

ALBでは「ターゲットグループ」という新しい概念が登場しているため、インスタンスの取り外しをする場合はALBではなく、ターゲットグループに対して操作します。

target_group_arns = "arn:aws:elasticloadbalancing:ap-northeast-1:12345678:targetgroup/elb-xxxxxx/123456"

instance_id ="i-123456"

alb_cleint.register_targets({
target_group_arn: target_group_arns,
targets: [
{
id: instance_id,
},
],
})

alb_cleint.deregister_targets({
target_group_arn: target_group_arns,
targets: [
{
id: instance_id,
},
],
})