How to Clean Up AWS VPC Resources
When deleting AWS VPCs, dependent network resources are sometimes left behind.
Fix Inventory's cleanup-aws-vpcs infrastructure app can find and delete these orphaned resources:
- AWS VPC Peering Connections
- AWS EC2 Network ACLs
- AWS EC2 Network Interfaces
- AWS ELB
- AWS ALB
- AWS ALB Target Groups
- AWS EC2 Subnets
- AWS EC2 Security Groups
- AWS EC2 Internet Gateways
- AWS EC2 NAT Gateways
- AWS EC2 Route Tables
Prerequisites​
This guide assumes that you have already installed and configured Fix Inventory to collect your AWS resources.
Directions​
-
Execute the following command in Fix Inventory Shell to open the Fix Inventory Worker configuration for editing:
> config edit fix.worker -
Enable cleanup by modifying the
fixworkersection of the configuration as follows:fixworker:
# Enable cleanup of resources
cleanup: true
# Do not actually cleanup resources, just create log messages
cleanup_dry_run: false
# How many cleanup threads to run in parallel
cleanup_pool_size: 16When cleanup is enabled, marked resources will be deleted as a part of the
collect_and_cleanupworkflow, which runs each hour by default.tipSet
cleanup_dry_runtotrueto simulate cleanup without actually deleting resources. -
Use the
app installcommand to install thecleanup-aws-vpcsapp:> app install cleanup-aws-vpcsinfoFix Inventory will create a default config
fix.apps.cleanup_aws_vpcs. -
Execute the following command in Fix Inventory Shell to open the infrastructure app configuration for editing:
> config edit fix.apps.cleanup_aws_vpcs -
Update the configuration to set the
min_ageproperty to the desired threshold for load balancer cleanup:cleanup_aws_vpcs configurationclouds_and_accounts:
aws:
- '1234567'
- '567890' -
Run the app using the
app runcommand:> app run cleanup-aws-vpcstipAdd the optional
--dry-runflag to see what commands the app would perform, without actually executing them.noteItems tagged with
expiration: neverwill not be flagged for cleanup. -
Create an event-based job to run the app automatically:
> jobs create --name "Clean Up VPC Resources" --wait-for-event cleanup_plan 'app run cleanup-aws-vpcs'infoThe
cleanup-aws-vpcsinfrastructure app will now run each time Fix Inventory emits thecleanup_planevent. Thepost_cleanup_planevent is emitted in thecleanupphase of thecollect_and_cleanupworkflow.
Each time the cleanup-aws-vpcs infrastructure app runs, network resources associated with VPCs that have been deleted or marked for cleanup will also be flagged for removal during the next cleanup run.