Skip to content

Instantly share code, notes, and snippets.

@junaidk
Last active November 7, 2019 09:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save junaidk/400c8d888106390db6139e26fc6c6dfe to your computer and use it in GitHub Desktop.
Save junaidk/400c8d888106390db6139e26fc6c6dfe to your computer and use it in GitHub Desktop.
Delete vpc and its dependencies from AWS
#!/bin/bash
#name=${1:-docundotapvpc1}
#region=${2:-us-east-1}
#id=${1:-vpc-08343443447ef34b}
#aws ec2 describe-vpcs --region ${region} | jq -r ".Vpcs[] | select(.VpcId | contains(\"${id}\")) | .VpcId" 2>/dev/null |
name=testingnetwork
region=ap-southeast-1
aws ec2 describe-vpcs --region ${region} | jq -r ".Vpcs[] | select(.Tags[].Value | contains(\"${name}\")) | .VpcId" 2>/dev/null |
while read vpcID; do
echo "# deleting vpc (${vpcID}) ..."
aws ec2 describe-network-interfaces --filter Name=vpc-id,Values=${vpcID} --region ${region} | jq -r '.NetworkInterfaces[] | .NetworkInterfaceId' |
while read netID; do
echo "# deleting network interface (${netID}) ..."
aws ec2 delete-network-interface --network-interface-id ${netID} --region ${region}
done
aws ec2 describe-security-groups --filter Name=vpc-id,Values=${vpcID} --region ${region} | jq -r '.SecurityGroups[] | select(.GroupName != "default") | .GroupId' |
while read sgID; do
echo "# deleting security group (${sgID}) ..."
aws ec2 delete-security-group --group-id ${sgID} --region ${region}
done
aws ec2 describe-subnets --filters Name=vpc-id,Values=${vpcID} --region ${region} | jq -r '.Subnets[].SubnetId' |
while read subnetID; do
echo "# deleting subnet (${subnetID}) ..."
aws ec2 delete-subnet --subnet-id ${subnetID} --region ${region}
done
aws ec2 describe-internet-gateways --filter Name=attachment.vpc-id,Values=${vpcID} --region ${region} | jq -r '.InternetGateways[].InternetGatewayId' |
while read igwID; do
echo "# deleting internet gateway (${igwID}) ..."
aws ec2 detach-internet-gateway --internet-gateway-id=${igwID} --vpc-id=${vpcID} --region ${region}
aws ec2 delete-internet-gateway --internet-gateway-id=${igwID} --region ${region}
done
aws ec2 describe-route-tables --filter Name=vpc-id,Values=${vpcID} --region ${region} | jq -r '.RouteTables[].RouteTableId' |
while read routeID; do
echo "# deleting route table (${routeID}) ..."
aws ec2 delete-route-table --route-table-id ${routeID} --region ${region} &>/dev/null
done
aws ec2 delete-vpc --vpc-id ${vpcID} --region ${region}
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment