kelbim
AWSのELBの設定をRubyのDSLで管理できるCLIツール。
作成者サイト
http://so-wh.at/entry/20131105/p1
Github
https://github.com/winebarrel/kelbim
手順
インストール
インストール
➜ gem install kelbim --no-ri --no-rdoc
確認
➜ kelbim -v kelbim 0.2.6
➜ kelbim kelbim Usage: kelbim [options] -p, --profile PROFILE_NAME -k, --access-key ACCESS_KEY -s, --secret-key SECRET_KEY -r, --region REGION -a, --apply -f, --file FILE -n, --elb-names NAMES --dry-run --ec2s VPC_IDS --without-deleting-policy -e, --export -o, --output FILE --split --split-more -t, --test --show-load-balancers --show-policies --no-color --debug
security credentialsを記載
➜ vim ~/.aws/credentials [default] aws_access_key_id=AKIxxxxxxxxxxxxxxxx aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxx
ELBの情報を取得
ELBの確認
➜ kelbim -e -r ap-northeast-1 --show-load-balancers { "vpc-[id]": { "[elb-name]": "[elb-dns]ap-northeast-1.elb.amazonaws.com" } }
ELB情報の取得
–ec2オプションで指定のVPCのみ出力
kelbim -e -o ELBfile -r ap-northeast-1 --ec2s vpc-[id]
cat ELBfile c2 "vpc-[id]" do load_balancer "[elb-name]" do spec do # DNS Name: [elb-dns].ap-northeast-1.elb.amazonaws.com pending('This is an example') url = URI.parse('http://www.example.com/') res = Net::HTTP.start(url.host, url.port) {|http| http.get(url.path) } expect(res).to be_a(Net::HTTPOK) end instances( "[instans-name]" ) … … …
>ELBのテスト、設定適用
RSpecでのテスト
➜ kelbim -t Test `ELBfile` * Pending: vpc-[id]> [elb-name] # This is an example Finished in 0.00033 seconds 1 example, 0 failures, 1 pending
ELBの適用
別アカウントの場合はcredentialsを追記し、-pで指定。
別VPCの場合は、ELBfileを書き換えておく。
➜ kelbim kelbim -a -o ELBfile -p sato -r ap-northeast-1 Apply `ELBfile` to ELB Comparing vpc-[id]> [elb-name] Update LoadBalancer: vpc-[id]> [elb-name] set attributes={:access_log=>{:enabled=>false}, :connection_settings=>{:idle_timeout=>30}, :cross_zone_load_balancing=>{:enabled=>true}, :connection_draining=>{:enabled=>true, :timeout=>300}}
etc
お手軽なELBの管理と移行が可能になった!
元記事はこちらです。
「kelbimで管理するAWS,ELB」