41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# ========== Configuration ==========
|
|
AMI_ID="ami-01c7096235204c7be"
|
|
INSTANCE_TYPE="t3.xlarge"
|
|
KEY_NAME="mykey"
|
|
SECURITY_GROUP="sg-0e08dfcd575ebfe2e"
|
|
EIP_ALLOC_ID="eipalloc-0ab8a278c183034a3"
|
|
SUBNET_ID="subnet-015876fa51f73f1ad"
|
|
|
|
# ========== Launch EC2 instance ==========
|
|
echo "Launching EC2 instance..."
|
|
INSTANCE_ID=$(aws ec2 run-instances \
|
|
--image-id $AMI_ID \
|
|
--instance-type $INSTANCE_TYPE \
|
|
--key-name $KEY_NAME \
|
|
--security-group-ids $SECURITY_GROUP \
|
|
--subnet-id $SUBNET_ID \
|
|
--associate-public-ip-address \
|
|
--block-device-mappings "[{\"DeviceName\":\"/dev/sda1\",\"Ebs\":{\"VolumeSize\":400,\"VolumeType\":\"gp3\"}}]" \
|
|
--query "Instances[0].InstanceId" \
|
|
--output text)
|
|
|
|
echo "Waiting for instance $INSTANCE_ID to start..."
|
|
aws ec2 wait instance-running --instance-ids $INSTANCE_ID
|
|
echo "Instance $INSTANCE_ID is now running."
|
|
|
|
# ========== Associate Elastic IP ==========
|
|
echo "Associating Elastic IP..."
|
|
aws ec2 associate-address \
|
|
--instance-id $INSTANCE_ID \
|
|
--allocation-id $EIP_ALLOC_ID
|
|
|
|
# ========== Get Elastic IP ==========
|
|
PUBLIC_IP=$(aws ec2 describe-addresses \
|
|
--allocation-ids $EIP_ALLOC_ID \
|
|
--query "Addresses[0].PublicIp" \
|
|
--output text)
|
|
|
|
echo "Elastic IP $PUBLIC_IP has been successfully associated with instance $INSTANCE_ID."
|