Provides an Elastic Load Balancer resource.
https://www.terraform.io/docs/providers/aws/r/elb.html
Variable | Description | Default Value |
---|---|---|
availability_zones | (Required for an EC2-classic ELB) The AZ's to serve traffic in. | - |
subnets | (Required for a VPC ELB) A list of subnet IDs to attach to the ELB. | - |
listener | (Required) A list of listener blocks. | - |
Variable | Description | Default Value |
---|---|---|
name | (Optional) The name of the ELB. By default generated by Terraform. | - |
name_prefix | (Optional, Forces new resource) Creates a unique name beginning with the specified prefix. Conflicts with name. | - |
access_logs | (Optional) An Access Logs block. Access Logs documented below. | - |
security_groups | (Optional) A list of security group IDs to assign to the ELB. | - |
instances | (Optional) A list of instance ids to place in the ELB pool. | - |
internal | (Optional) If true, ELB will be an internal ELB. | - |
health_check | (Optional) A health_check block. | - |
cross_zone_load_balancing | (Optional) Enable cross-zone load balancing. | true |
idle_timeout | (Optional) The time in seconds that the connection is allowed to be idle. | 60 |
connection_draining | (Optional) Boolean to enable connection draining. | false |
connection_draining_timeout | (Optional) The time in seconds to allow for connections to drain. | 300 |
tags | (Optional) A mapping of tags to assign to the resource. | - |
Exactly one of availability_zones or subnets must be specified: this determines if the ELB exists in a VPC or in EC2-classic.
Variable | Description |
---|---|
id | The name of the ELB |
name | The name of the ELB |
dns_name | The DNS name of the ELB |
instances | The list of instances in the ELB |
source_security_group | The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only. |
source_security_group_id | The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC. |
zone_id | The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record) |
# Create a new load balancer
resource "aws_elb" "bar" {
source = "github.com/monotype/infra-terraform//modules//elb"
name = "foobar-terraform-elb"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
access_logs {
bucket = "foo"
bucket_prefix = "bar"
interval = 60
}
listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 443
lb_protocol = "https"
ssl_certificate_id = "arn:aws:iam::123456789012:server-certificate/certName"
}
health_check {
healthy_threshold = 2
unhealthy_threshold = 2
timeout = 3
target = "HTTP:8000/"
interval = 30
}
instances = ["${aws_instance.foo.id}"]
cross_zone_load_balancing = true
idle_timeout = 400
connection_draining = true
connection_draining_timeout = 400
tags {
Name = "foobar-terraform-elb"
}
}