Skip to content

Instantly share code, notes, and snippets.

@rosmo
Last active November 15, 2021 12:24
Show Gist options
  • Save rosmo/ef21aee90fb7bd58bb6640efdd27e332 to your computer and use it in GitHub Desktop.
Save rosmo/ef21aee90fb7bd58bb6640efdd27e332 to your computer and use it in GitHub Desktop.
Deleting AWS default VPCs (except for one region) via CLI
delete_vpc_components() {
echo aws ec2 "describe-${7}" --filters "Name=$4,Values=$3" --output text --query "*[*].$5" --region $1
for id in $(aws ec2 "describe-${7}" --filters "Name=$4,Values=$3" --output text --query "*[*].$5" --region $1)
do
echo "Deleting $2: $id"
if [ "$2" == "internet-gateway" ] ; then
aws ec2 detach-internet-gateway $6 $id --vpc-id $3 --region $1
fi
aws ec2 "delete-${2}" $6 $id --region $1
done
}
for region in $(aws ec2 describe-regions --output text --query 'Regions[?RegionName!=`eu-north-1`].RegionName')
do
for vpc in $(aws ec2 describe-vpcs --region $region --output text --query 'Vpcs[*].VpcId')
do
delete_vpc_components "$region" "internet-gateway" "$vpc" "attachment.vpc-id" "InternetGatewayId" "--internet-gateway-id" "internet-gateways"
delete_vpc_components "$region" "subnet" "$vpc" "vpc-id" "SubnetId" "--subnet-id" "subnets"
delete_vpc_components "$region" "security-group" "$vpc" "vpc-id" "GroupId" "--group-id" "security-groups"
delete_vpc_components "$region" "network-acl" "$vpc" "vpc-id" "NetworkAclId" "--network-acl-id" "network-acls"
delete_vpc_components "$region" "vpc-peering-connection" "$vpc" "requester-vpc-info.vpc-id" "VpcPeeringConnectionId" "--vpc-peering-connection-id" "vpc-peering-connections"
delete_vpc_components "$region" "vpc-endpoints" "$vpc" "vpc-id" "VpcEndpointId" "--vpc-endpoint-ids" "vpc-endpoints"
delete_vpc_components "$region" "route-table" "$vpc" "vpc-id" "RouteTableId" "--route-table-id" "route-tables"
echo "Deleting VPC $vpc in region $region..."
aws ec2 delete-vpc --vpc-id $vpc --region $region
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment