AWS-SDK
みなさんAWS-SDK使ってますか?
あれドキュメントたくさんある上にサンプルコードあまりなくてあれですよね。
Elastic Load Blancerを操作する
ちょいちょいやってるとあの直下にぶら下がっているインスタンス全台に対して処理したいなんてことがでてきたりします。
増えたり減ったりするインスタンスを意識せずにデプロイとか。
Public DNSの取得
以下でできます。
# !/usr/bin/ruby
require "aws-sdk"
require "pp"
AWS.config(
access_key_id: '******',
secret_access_key: '******',
ec2_endpoint: '[環境に合わせてください]',
elb_endpoint: '[環境にあわせてください]'
)
elb = AWS::ELB.new.load_balancers['[自分のELB名]']
instances = elb.instances.select {|i| i.exists? && i.status == :running}.map(&:dns_name)
pp instances
これでインスタンスの一覧が配列で出てきます。
ppで出した結果はこんな感じ。
[ "ec2-**-***-***-**.ap-southeast-1.compute.amazonaws.com",
"ec2-**-***-***-**.ap-southeast-1.compute.amazonaws.com",
"ec2-**-***-***-**.ap-southeast-1.compute.amazonaws.com",
"ec2-**-***-***-**.ap-southeast-1.compute.amazonaws.com"]
あとはそのままdeploy.rbやserverspecにぶちこんで回せば検証ができると思います。
それではよいAWSライフを!