«前の日記(2011-10-07 (Fri)) 最新 次の日記(2011-10-13 (Thu))» 編集

雑記帳


2011-10-11 (Tue) [長年日記]

[Ruby][AWS] AWS SDK for Ruby 1.2.0 Release

いつの間にかでてた。リリースによると、ELBが新規にサポート対象となった。ELBはAWS Management Consoleではできないことが結構あるので、Rubyで使えるようになって嬉しい。

Management Consoleではできない事の例として、ひとつのEC2インスタンスを複数のELBに追加してみた。

AWS.config(YAML.load(File.read('config.yml')))
ec2 = AWS::EC2.new
elb = AWS::ELB.new

%w(my-lb1 my-lb2).each do |n|
  lb = elb.load_balancers.create(n,
    :availability_zones => ['us-east-1b', 'us-east-1c'],
    :listeners => [
      {:port => 80, :protocol => :http, :instance_port => 80, :instance_protocol => :http}
    ])
  lb.instances.register(ec2.instances.map {|i| i.id})
end

elb.load_balancers.each do |lb|
  puts "#{lb.name}:"
  lb.instances.each do |i|
    puts "\t#{i.id}"
  end
end

EC2インスタンスが既に起動していることを前提としている。ELBを二つ作成して、それぞれのELBにインスタンスを登録している。

今回は、EC2が二つ起動している状態で実行してみた。結果として、以下のように出力される。

my-lb1:
        i-4e624e2e
        i-9c614dfc
my-lb2:
        i-9c614dfc
        i-4e624e2e

使い方は、ELBのドキュメントに。機能は比較的単純なので、簡単に使える。