class Akashi::Elb::LoadBalancer
Public Class Methods
create(security_group:, subnets:, ssl_certificate:)
click to toggle source
# File lib/akashi/elb/load_balancer.rb, line 16 def create(security_group:, subnets:, ssl_certificate:) Akashi::Aws.elb.client.create_load_balancer( load_balancer_name: Akashi.name, security_groups: [ security_group.id ], subnets: Array.wrap(subnets).map(&:id), listeners: [ { protocol: "HTTPS", load_balancer_port: 443, instance_protocol: "HTTP", instance_port: 80, ssl_certificate_id: ssl_certificate.arn, }, { protocol: "HTTP", load_balancer_port: 80, instance_protocol: "HTTP", instance_port: 80, }, ], ) new(Akashi.name).tap do |instance| instance.modify_attributes( load_balancer_attributes: { cross_zone_load_balancing: { enabled: true, }, connection_draining: { enabled: true, timeout: 300, }, }, ) instance.configure_health_check( target: Akashi.manifest.elb.health_check.target, interval: 60, timeout: 30, unhealthy_threshold: 2, healthy_threshold: 2, ) puts "Created a LoadBalancer (#{instance.name})." end end
Public Instance Methods
modify_attributes(options)
click to toggle source
# File lib/akashi/elb/load_balancer.rb, line 6 def modify_attributes(options) Akashi::Aws.elb.client. modify_load_balancer_attributes(options.merge({ load_balancer_name: name })) end
register_instances(instances)
click to toggle source
# File lib/akashi/elb/load_balancer.rb, line 11 def register_instances(instances) @object.instances.register(Array.wrap(instances).map(&:id)) end