16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# 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
|