連続するIPアドレスで複数台のインスタンスを起動する〜追加EBSも添えて〜
172.16.11.101〜 17216.11.120 まで、連続したIPアドレス群でインスタンス起動したいとうような事があります(hostsファイル必要なアレとか)。一緒にEBSをががっと付けたい時もあります。CLIでやった時のメモ。
まずはEBS構成。Block Device Mappingを指定した bdmapping.json を用意。
[
{"DeviceName": "/dev/sdb",
"Ebs": {
"VolumeSize": 100,
"DeleteOnTermination": true,
"VolumeType": "gp2"
}
},
{
"DeviceName": "/dev/sdc",
"Ebs": {
"VolumeSize": 100,
"DeleteOnTermination": true,
"VolumeType": "io1",
"Iops": 3000
}
}
]
上記だと、 /dev/sdbに 100GBの汎用SSD EBS を、/dev/sdcに 100GB 3000IOPSの PIOPS EBSをアタッチする指定。
で、以下の様な感じで実行する。
for IP in `seq 101 120`
do
aws ec2 run-instances \
--region us-west-2 \
--image-id ami-xxxxxx \
--security-group-ids sg-yyyyyyy \
--key-name id_rsa \
--instance-type c4.8xlarge \
--placement GroupName=C4 \
--subnet-id subnet-zzzzzzz \
--block-device-mappings file://bdmapping.json \
--private-ip-address 172.16.11.$IPdone
上記例だと、 172.16.11.101〜172.16.11.120までの20台の C4.8xlargeを、 Placement Group名 C4 内に起動する事になる。