動的に変わる EC2 のインスタンスの IP アドレスを自動収集するスクリプト書いた

EC2 は便利なのですが、プライベート IP アドレスが変更されない保証が無いので、/etc/hosts に他のインスタンスのアドレスを書いておいても、ある日変わっている可能性があります。

そこで、ec2-api-tools の ec2-describe-instances でサーバーインスタンス一覧が取得できることを利用して、各サーバーの hostname 情報から、/etc/hosts を自動生成するスクリプトを書きました。

http://gist.github.com/479339

大まかな流れは以下です。

  1. ec2-describe-instances でインスタンス一覧取得
  2. インスタンスの名前解決して IP アドレス取得
  3. ssh で繋ぎに行って hostname コマンドの結果を取得
  4. /etc/hosts の内容を生成

ひとつのサーバー上で cron でこのスクリプトを走らせて、その他のサーバーに rsync などで配布すると良いと思います。