class Akashi::Ec2::Instance
Public Class Methods
create(ami:, instance_class:, security_group:, subnet:)
click to toggle source
# File lib/akashi/ec2/instance.rb, line 9 def create(ami:, instance_class:, security_group:, subnet:) name = "#{subnet.name}-#{next_number(subnet: subnet)}" response = Akashi::Aws.ec2.instances.create( image_id: ami.id, key_name: Akashi.name, security_group_ids: [ security_group.id ], subnet_id: subnet.id, instance_type: instance_class, associate_public_ip_address: true, ) new(response.id).tap do |instance| instance.name = name puts "Created an EC2 Instance (#{instance.id}) on a Subnet (#{subnet.id})." end end
next_number(subnet:)
click to toggle source
# File lib/akashi/ec2/instance.rb, line 27 def next_number(subnet:) "%03d" % (where(subnet_id: subnet.id).count + 1) end