$ ruby ./instance_to_elb.rb
The output is a JSON containing the mapping of LB->instances as well as Instance->LBs.
| require 'rubygems' | |
| require 'json' | |
| require 'aws-sdk' | |
| ec2 = AWS::EC2.new | |
| aws_elb = AWS::ELB.new | |
| instances = {} | |
| elbs = {} | |
| parent = {} | |
| aws_elb.load_balancers.each do |elb| | |
| puts elb.name | |
| elbs[elb.name] = Array.new | |
| elb.instances.each do |instance| | |
| elbs[elb.name].push(instance.tags.Name) | |
| if (instances[instance.tags.Name].nil?) | |
| instances[instance.tags.Name] = Array.new | |
| end | |
| instances[instance.tags.Name].push(elb.name) | |
| end | |
| end | |
| parent['elb-to-instance'] = elbs | |
| parent['instance-to-elb'] = instances | |
| puts JSON.pretty_generate(parent) |