Skip to content

Instantly share code, notes, and snippets.

@igorrs
Last active October 24, 2019 16:25
Show Gist options
  • Save igorrs/79d3252a5355eb40f80153c042c7a50f to your computer and use it in GitHub Desktop.
Save igorrs/79d3252a5355eb40f80153c042c7a50f to your computer and use it in GitHub Desktop.
Dump AWS RDS and EC2 instance types to CSV files
#!/usr/bin/env ruby
# Install dependencies with:
# gem install aws-sdk-rds aws-sdk-ec2
require 'aws-sdk-rds'
require 'aws-sdk-ec2'
require 'csv'
aws_regions = %w[us-east-1 us-east-2 us-west-1 us-west-2 sa-east-1]
CSV.open('rds-instances.csv', 'wb') do |csv|
csv << %w[Type Multi-AZ Region Zone Identifier]
aws_regions.each do |region|
puts "Connecting to RDS in region #{region}"
rds_client = Aws::RDS::Client.new(region: region)
rds_client.describe_db_instances[:db_instances].each do |i|
csv << [i.db_instance_class, i.multi_az, region, i.availability_zone, i.db_instance_identifier]
end
end
end
CSV.open('ec2-instances.csv', 'wb') do |csv|
csv << %w[Type Region Zone KeyName]
aws_regions.each do |region|
puts "Connecting to EC2 in region #{region}"
ec2_client = Aws::EC2::Client.new(region: region)
ec2_client.describe_instances[:reservations].each do |reservation|
reservation[:instances].each do |i|
csv << [i.instance_type, region, i.placement.availability_zone, i.key_name]
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment