|Tag名|用途|インスタンスID|グローバルIPアドレス|ブライベートIPアドレス|インスタンスタイプ|ディスクサイズ|OS|AMIバックアップ|備考| | ------------- | ------------- | | test-web-01 | Webサーバ|i-0asdbcdfadsaa2 | 8.8.8.8 | 10.0.0.1 | m4.large | 100GB | CentOS7.4 | | |
#!/bin/bash
## Profile名の取得
if [[ -z "$1" ]]; then
echo "Profile名を指定してください"
exit 1
fi
profile=$1
BASE_OPTS="--output text --profile ${profile}"
## インスタンスIDの取得
InstanceIds=$(aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" ${BASE_OPTS})
if [[ -z "${InstanceIds}" ]]; then
echo "インスタンスIDが取得出来ませんでした"
exit 1
fi
rows="|Tag名|用途|インスタンスID|グローバルIPアドレス|ブライベートIPアドレス|インスタンスタイプ|ディスクサイズ|OS|AMIバックアップ|備考|"
rows="${rows}""\n""| ------------- | ------------- |"
for InstanceId in ${InstanceIds}
do
## パブリックIPの取得
PublicIP=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].PublicIpAddress" ${BASE_OPTS})
## プライベートIPの取得
PrivateIP=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].PrivateIpAddress" ${BASE_OPTS})
## インスタンスタイプの取得
InstanceType=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].InstanceType" ${BASE_OPTS})
## Nameタグの取得
NameTag=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].Tags[?Key==\`Name\`]" ${BASE_OPTS})
## EBSのサイズの取得
DiskSize=$(aws ec2 describe-volumes --filters "Name=attachment.instance-id,Values=${InstanceId}" --query "Volumes[].Size" ${BASE_OPTS})
row="| ${NameTag} | | ${InstanceId} | ${PublicIP} | ${PrivateIP} | ${InstanceType} | ${DiskSize}GB | | | |"
rows="${rows}""\n""${row}"
done
echo -e ${rows}