class Sgdoc::Client

TODO: VPCから順に構造体にしていく方法にした方がいい

Attributes

security_groups[R]

Public Class Methods

new(ec2_client: nil, ec2_resource: nil) click to toggle source
# File lib/sgdoc/client.rb, line 6
def initialize(ec2_client: nil, ec2_resource: nil)
  @ec2_client = ec2_client || Aws::EC2::Client.new
  @ec2_resource = ec2_resource || Aws::EC2::Resource.new(client: @ec2_client)
end

Public Instance Methods

instances_by_vpc_id() click to toggle source
# File lib/sgdoc/client.rb, line 19
def instances_by_vpc_id
  instances = @ec2_resource.instances.map { |i| Sgdoc::EC2::Instance.new(i) }
  instances.group_by { |i| i.vpc_id }
end
security_groups_by_vpc_id() click to toggle source
# File lib/sgdoc/client.rb, line 11
def security_groups_by_vpc_id
  describe_security_groups = @ec2_client.describe_security_groups.security_groups
  security_groups = describe_security_groups.map { |sg| Sgdoc::EC2::SecurityGroup.new(sg) }

  # vpcIDのキーをvpcのオブジェクトにしても良い
  security_groups.group_by { |sg| sg.vpc_id }
end