題名の通りです。シンプルですが。
前提
JSON扱うので環境に応じてjqが実行できる環境が必要です。 https://stedolan.github.io/jq/download/
MacならHomebrewでインストールも可能です。
brew install jq
スクリプト
#EC2作成関連の変数 PRIVATE_IP=172.22.10.10 INSTANCE_TYPE=t2.micro IMAGE_ID=ami-abcd1234 SEC_GRP=sg-abcd1234 SUBNET_ID=subnet-abcd1234 KEY_PAIR=your_key_pair IAM_ROLE_NAME=your_role_name #タグ関連の変数 TAG_NAME=infra-test TAG_PROJECT=your_project echo "-----Create EC2 Instance" echo "PRIVATE_IP=${PRIVATE_IP}" echo "INSTANCE_TYPE=${INSTANCE_TYPE}" echo "IMAGE_ID=${IMAGE_ID}" echo "SEC_GRP=${SEC_GRP}" echo "SUBNET_ID=${SUBNET_ID}" echo "KEY_PAIR=${KEY_PAIR}" echo "IAM_ROLE_NAME=${IAM_ROLE_NAME}" echo "TAG_NAME=${TAG_NAME}" echo "TAG_PROJECT=${TAG_PROJECT}" echo "" read -p "Are you sure? (y/n) :" YN if [ "${YN}" != "y" ]; then echo "exit script!" exit 1; fi instance_id=$(aws ec2 run-instances \ --image-id ${IMAGE_ID} \ --security-group-ids ${SEC_GRP} \ --instance-type ${INSTANCE_TYPE} \ --subnet-id ${SUBNET_ID} \ --key-name ${KEY_PAIR} \ --private-ip-address ${PRIVATE_IP} \ --iam-instance-profile Name=${IAM_ROLE_NAME} \ --count 1 \ --no-associate-public-ip-address \ | jq -r ".Instances[0].InstanceId" ) echo "------Instance Created" echo "InstanceID=${instance_id}" echo "" #タグ付け aws ec2 create-tags --resources ${instance_id} \ --tag Key=Name,Value=${TAG_NAME} aws ec2 create-tags --resources ${instance_id} \ --tag Key=Project,Value=${TAG_PROJECT} echo "completed"