Skip to content

Instantly share code, notes, and snippets.

@danfaizer
Last active August 29, 2015 14:05
Show Gist options
  • Save danfaizer/5091f9f916afbdf695f8 to your computer and use it in GitHub Desktop.
Save danfaizer/5091f9f916afbdf695f8 to your computer and use it in GitHub Desktop.
AWS - VPC Cleaner
#!/usr/bin/env ruby
# gem install aws-sdk
require 'aws-sdk'
access_key_id = ""
secret_access_key = ""
regions = ["eu-west-1", "sa-east-1", "us-east-1", "ap-northeast-1", "us-west-2", "us-west-1", "ap-southeast-1","sa-east-1"]
avoid_vpcs = ["vpc-51d9693a", "vpc-7784a01f", "vpc-4963702b", "vpc-d4e797bc", "vpc-8ff2eded", "vpc-c8845fad"]
AWS.config(:access_key_id => access_key_id, :secret_access_key => secret_access_key )
STDOUT.write ("Starting VPC clean up process ...\n")
regions.each do |region|
ec2 = AWS::EC2.new(:region => region)
ec2.vpcs.each do |vpc|
if not avoid_vpcs.include? vpc.vpc_id
vpc.instances.each do |instance|
instance.terminate
end
internet_gateway = vpc.internet_gateway
internet_gateway.detach(vpc) unless internet_gateway.nil?
internet_gateway.delete unless internet_gateway.nil?
vpc.subnets.each do |subnet|
subnet.delete
end
STDOUT.write ("Deleting VPC: "+vpc.vpc_id+" in region "+region+"\n")
vpc.delete
else
STDOUT.write ("Avoiding default VPC: "+vpc.vpc_id+" in region "+region+"\n")
end
end
end
STDOUT.write ("VPC clean up process finished\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment