2009年05月04日
インスタンスのメタデータを出力したい
WakameにMySQLのレプリケーション設定を組み込むための調査で書いたシェルスクリプトをblogにアウトプット。
Instance Metadataに書かれている通り、
http://169.254.169.254/2008-02-01/meta-data/からメタデータを取得出来る。
具体的に何が出て来るのかざっくり見たかったので、シェルスクリプトを書いた。
dump-meta-data.sh
root@ip-10-251-91-3:~/.ec2# cat dump-meta-data.sh
#!/bin/sh
api_base_uri=http://169.254.169.254/2008-02-01/meta-data/
retrieve_meta_data() {
curl -s -f --retry 3 ${api_base_uri}$1
}
meta_data() {
local param=$1
echo ${param} | egrep '/$' -q && {
for i in $(retrieve_meta_data ${param}); do
meta_data ${param}${i}
done
} || {
echo -n "${param} = "
echo $(retrieve_meta_data ${param})
}
}
meta_data /
exit 0
実行結果
root@ip-10-251-91-3:~/.ec2# ./dump-meta-data.sh /ami-id = ami-3c7f9855 /ami-launch-index = 0 /ami-manifest-path = unakatsuo-ami/wakame-0.2-snapshot20090409.manifest.xml /ancestor-ami-ids = ami-9225c0fb ami-4d24c124 ami-be3adfd7 ami-bd1cf9d4 ami-f51aff9c ami-1c5db975 ami-75b0571c ami-8f9176e6 ami-e29f788b ami-59e30430 ami-59ea0d30 ami-bbe80fd2 ami-cef413a7 ami-94f215fd ami-f3ff189a ami-e6fd1a8f ami-bfc720d6 ami-67c4230e ami-72c4231b ami-a9c423c0 ami-bac92ed3 ami-19d43370 ami-81df38e8 ami-b7dd3ade ami-85dd3aec ami-76dc3b1f ami-35dc3b5c ami-0adc3b63 ami-17d93e7e ami-3327c05a ami-3626c15f ami-8c0cebe5 ami-ae1ff8c7 ami-b91ff8d0 ami-6d1ef904 ami-0f668166 ami-2365824a ami-2b6a8d42 ami-de7295b7 /block-device-mapping/ami = sda1 /block-device-mapping/ephemeral0 = sda2 /block-device-mapping/root = /dev/sda1 /block-device-mapping/swap = sda3 /hostname = ip-10-251-91-3.ec2.internal /instance-id = i-cf9ee9a6 /instance-type = m1.small /kernel-id = aki-873bdcee /local-hostname = ip-10-251-91-3.ec2.internal /local-ipv4 = 10.251.91.3 /placement/availability-zone = us-east-1a /public-hostname = ec2-75-101-215-22.compute-1.amazonaws.com /public-ipv4 = 75.101.215.22 /public-keys/0=hansode = /ramdisk-id = ari-853bdcec /reservation-id = r-3bfa6c52 /security-groups = wakame-default
なるほど。
今回使う事になったのは下記2つ。
EBSのボリューム作成時に使う。
- /instance-id
- /placement/availability-zone