動的に変わる EC2 のインスタンスの IP アドレスを自動収集するスクリプト書いた
EC2 は便利なのですが、プライベート IP アドレスが変更されない保証が無いので、/etc/hosts に他のインスタンスのアドレスを書いておいても、ある日変わっている可能性があります。
そこで、ec2-api-tools の ec2-describe-instances でサーバーインスタンス一覧が取得できることを利用して、各サーバーの hostname 情報から、/etc/hosts を自動生成するスクリプトを書きました。
大まかな流れは以下です。
- ec2-describe-instances でインスタンス一覧取得
- 各インスタンスの名前解決して IP アドレス取得
- ssh で繋ぎに行って hostname コマンドの結果を取得
- /etc/hosts の内容を生成
ひとつのサーバー上で cron でこのスクリプトを走らせて、その他のサーバーに rsync などで配布すると良いと思います。