Module: Audit53::EC2

Includes:
Contracts
Defined in:
lib/audit53/ec2.rb

Class Method Summary collapse

Class Method Details

.client(region:) ⇒ Object



9
10
11
# File 'lib/audit53/ec2.rb', line 9

def self.client(region:)
  Aws::EC2::Client.new region: region
end

.instances(region:) ⇒ Object



14
15
16
17
18
# File 'lib/audit53/ec2.rb', line 14

def self.instances(region:)
  client(region: region).describe_instances.each_page
    .flat_map(&:reservations)
    .flat_map(&:instances)
end

.ipsObject



21
22
23
24
25
26
# File 'lib/audit53/ec2.rb', line 21

def self.ips
  @ips ||= %w(us-east-1 us-west-1 us-west-2 eu-west-1)
                 .flat_map { |r| instances region: r }
                 .map { |i| { i.public_ip_address => i.instance_id } }
                 .reduce({}, :update)
end