Skip to content

Instantly share code, notes, and snippets.

@JohnPreston
Created May 23, 2019 08:13
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 JohnPreston/9afdd88973a88b51e698f85ba306abd1 to your computer and use it in GitHub Desktop.
Save JohnPreston/9afdd88973a88b51e698f85ba306abd1 to your computer and use it in GitHub Desktop.
Delete default VPC in all regions
#!/usr/bin/env bash
for region in $(aws ec2 describe-regions --region eu-west-1 | jq -r .Regions[].RegionName); do
echo "* Region ${region}"
# get default vpc
vpc=$(aws ec2 --region ${region} describe-vpcs --filter Name=isDefault,Values=true | jq -r .Vpcs[0].VpcId)
if [ "${vpc}" = "null" ]; then
echo "No default vpc found"
continue
fi
echo "Found default vpc ${vpc}"
igw=$(aws ec2 --region ${region} describe-internet-gateways --filter Name=attachment.vpc-id,Values=${vpc} \
| jq -r .InternetGateways[0].InternetGatewayId)
if [ "${igw}" != "null" ]; then
echo "Detaching and deleting internet gateway ${igw}"
aws ec2 --region ${region} \
detach-internet-gateway --internet-gateway-id ${igw} --vpc-id ${vpc}
aws ec2 --region ${region} \
delete-internet-gateway --internet-gateway-id ${igw}
fi
# get subnets
subnets=$(aws ec2 --region ${region} describe-subnets --filters Name=vpc-id,Values=${vpc} \
| jq -r .Subnets[].SubnetId)
if [ "${subnets}" != "null" ]; then
for subnet in ${subnets}; do
echo "Deleting subnet ${subnet}"
aws ec2 --region ${region} \
delete-subnet --subnet-id ${subnet}
done
fi
echo "Deleting vpc ${vpc}"
aws ec2 --region ${region} \
delete-vpc --vpc-id ${vpc}
done
@JohnPreston
Copy link
Author

Fork from a previously found script, edited so there aren't any stupid special characters...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment