zkt25/sk1/aws config/deploy-instance.sh
2025-04-13 13:54:16 +02:00

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."