capistrano-ec2tag について調べてた

capistrano と ec2 のうまい付き合い方について調べていて、capistrano-ec2tag という gem を見つけたので試してみてました。
こいつは capistrano-ec2group を参考にして作られたもので、
起動している EC2 インスタンスをタグで絞り込んで、capistrano で操作するためのレシピです。
(capistrano-ec2group は Security Group で絞り込むレシピ)

使い方は簡単で、

$ gem install capistrano-ec2tag

した後、deploy.rb で

require 'capistrano/ec2tag'

tag 'myapp-web', :web
tag 'myapp-app', :app
tag 'myapp-db', :db

のように書いておくと、EC2 のインスタンス

  • deploy タグに myapp-web が指定されているものを :web ロールで
  • deploy タグに myapp-app が指定されているものを :app ロールで
  • deploy タグに myapp-db が指定されているものを :db ロールで

それぞれデプロイしてくれます。

EC2 インスタンスを立ち上げる時にタグを指定すれば、自動的にデプロイのターゲットに含まれてくれるのはよさそうですね。