AWS ELB с Terraform

ToC

  1. Packer от Hashicorp
  2. Terraform для AWS
  3. AWS VPC с Terraform
  4. AWS EC2 с Terraform
  5. AWS ELB с Terraform

Что такое EC2

Amazon Elastic Load Balancer (Amazon ELB) автоматически распределяет входящий трафик приложений по нескольким целевым объектам, таким как инстансы Amazon EC2, контейнеры или IP-адреса. Сервис входит в инфраструктуру Amazon Web Services.

Настройка

Создаем файл elb.tf с таким содержимым:

resource "aws_elb" "elb" {
  name    = "terraform-elb"
  subnets = ["${aws_subnet.aws-subnet-public.id}", "${aws_subnet.aws-subnet-private.id}"]

  listener {
    instance_port     = 80
    instance_protocol = "http"
    lb_port           = 80
    lb_protocol       = "http"
  }

  health_check {
    healthy_threshold   = 2
    unhealthy_threshold = 2
    timeout             = 3
    target              = "HTTP:80/"
    interval            = 30
  }

  instances                   = ["${aws_instance.web.*.id}"]
  cross_zone_load_balancing   = true
  idle_timeout                = 400
  connection_draining         = true
  connection_draining_timeout = 400

  tags {
    Name = "terraform-elb"
  }
}

Эти инструкции позволят нам создать Elastic Load Balancer и добавить все наши инстансы Nginx к нему, в качестве бэкэнда.

Немного об опциях:

Теперь можно добавить вывод параметров ELB в тот же файл:

output "elb_instances" {
  value = ["${aws_elb.elb.instances}"]
}

output "elb_public_dns_name" {
  value = ["${aws_elb.elb.dns_name}"]
}

Это позволит нам видеть, какие инстансы добавлены в Load Balancer и по какому DNS имени он доступен.

Думаю, что принцип работы с Terraform понятен. Он действительно не сложен и разобраться можно достаточно быстро.

В качестве домашнего задания оставляю вам поднятие RDS и создание и управление баккетами в S3. :)

Удачи и спасибо за то, что прочитали.


Comments !