AWSのSecurityGrouopのroleを当てられるcapistranoプラグインcapistrano-ec2group

awscapistrano

通常capistranoでroleを定義する際には下記のように記述するわけですが、インスタンス数に変更があった場合
追加したり削除したりがめんどくさいです。

set :app,  "app-ip-address"
set :web, "web-ip-address"

上記のような問題を解決するプラグインcapistrano-ec2groupです。

GitHub - logandk/capistrano-ec2group: Capistrano plugin for deploying to Amazon EC2 instances by security groups

インストール

gem install capistrano-ec2group

コード

deploy.rbに以下の様に追記します。
このように指定するだけで、"web"roleには"securitygroup1"に所属するインスタンス
"app"roleには"securitygroup2"に所属するインスタンスが対象となります。

require 'capistrano/ec2group'

set :aws_access_key_id, 'your_access_key'
set :aws_secret_access_key, 'your_secret_access_key'

set :aws_pvt_dns, true # capistranoをec2インスタンスから実行する場合に設定します
set :aws_params, :region => 'ap-northeast-1'

group :securitygroup1, :web
group :securitygroup2, :app