テスト用に300インスタンス立ち上げる機会があり、起動はManagement Consoleで一気に300インスタンス立ち上げれるのですが、Public DNSをManagement Consoleで調べるのは大変なので、コマンドラインツールを利用して一気に取得してみました。
利用したツールはAmazon EC2 API Tools(Windows)です。
Javaの環境やPATHまわりなどを適当に設定し、下記コマンドを実行すると、インスタンス情報を取得できます。
> ec2-describe-instances ^ ? -K P:commonetcawsaws-stresspk.pem ^ ? -C P:commonetcawsaws-stresscert.pem ^ ? --region us-east-1 ^ ? -F "tag:Name=TEST1" ^ ? > stress.txt
-Fで取得情報をフィルタリングすることができ、ここでは、NameタグにTEST1が設定されているものだけ取得しています。
詳しくはec2-describe-instancesを参照してください。
取得情報は下記のとおりです。
【stress.txt】
INSTANCE i-xxxxxxxx ami-xxxxxxxx ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ip-xxx-xxx-xxx-xxx.ec2.internal running aws-stress_us-east-1 0 t1.micro 2011-02-16T00:40:05+0000 us-east-1a windows monitoring-enabled xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx ebs hvm BLOCKDEVICE /dev/sda1 vol-xxxxxxxx 2011-02-16T00:40:31.000Z TAG instance i-xxxxxxxx Name TEST1
あとは、”sed”などを使って必要な情報(Public DNS)のみになるように整形します。