Advertisement
Javi

AWS: CLI for deleting vpc with dependencies

Aug 12th, 2019
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. [ -z "$1" ] && echo "delete-vpc VPC_NAME" && exit
  4.  
  5. vpcs=$(aws ec2 describe-vpcs --query Vpcs[].[VpcId] --filters "Name=tag:Name,Values=$1" --output text)
  6.  
  7. [ -z "$vpcs" ] && exit
  8.  
  9. while read -r vpcID; do
  10. echo "Deleting dependencies for vpc (${vpcID})"
  11.  
  12. instances=$(aws ec2 describe-instances --filters "Name=vpc-id,Values=$vpcID" --query Reservations[].Instances[].[InstanceId] --output text)
  13. echo **$instances**
  14. [ ! -z "$instances" ] && echo "...instances detected on vpc $vpcID, skipping." && continue
  15.  
  16. aws ec2 describe-subnets --query Subnets[].[SubnetId] --filters "Name=vpc-id,Values=$vpcID" --output text |
  17. while read subnetID; do
  18. echo "...deleting subnet (${subnetID}) ..."
  19. aws ec2 delete-subnet --subnet-id ${subnetID}
  20. done
  21.  
  22. aws ec2 describe-security-groups --filter "Name=vpc-id,Values=$vpcID" --query SecurityGroups[].[GroupId] --output text |
  23. while read sgID; do
  24. echo "...deleting security group (${sgID}) ..."
  25.  
  26. aws ec2 delete-security-group --group-id ${sgID}
  27. done
  28.  
  29. aws ec2 describe-internet-gateways --filter "Name=attachment.vpc-id,Values=$vpcID" --query InternetGateways[].[InternetGatewayId] --output text |
  30. while read igwID; do
  31. echo "...deleting internet gateway (${igwID}) ..."
  32.  
  33. aws ec2 detach-internet-gateway --internet-gateway-id=${igwID} --vpc-id=${vpcID}
  34. aws ec2 delete-internet-gateway --internet-gateway-id=${igwID}
  35. done
  36.  
  37. aws ec2 describe-route-tables --filter "Name=vpc-id,Values=$vpcID" --query RouteTables[].[RouteTableId] --output text |
  38. while read routeID; do
  39. echo "...deleting route table (${routeID}) ..."
  40.  
  41. aws ec2 delete-route-table --route-table-id ${routeID} &>/dev/null
  42. done
  43.  
  44. echo "Deleting vpc (${vpcID})"
  45. aws ec2 delete-vpc --vpc-id ${vpcID}
  46.  
  47. done <<< "$vpcs"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement