Terraform: инфраструктура на уровне кода | страница 59



Пришло время собрать это все воедино. Для этого мы создадим правила прослушивателя, используя ресурс aws_lb_listener_rule:

resource "aws_lb_listener_rule" "asg" {

  listener_arn = aws_lb_listener.http.arn

  priority     = 100

  condition {

    field  = "path-pattern"

    values = ["*"]

  }

  action {

    type             = "forward"

    target_group_arn = aws_lb_target_group.asg.arn

  }

}

Этот код добавляет правило прослушивателя, которое отправляет запросы, соответствующие любому пути, к целевой группе с ASG внутри.

Прежде чем разворачивать балансировщик нагрузки, нужно сделать еще кое-что — поменять старый вывод public_ip одного сервера EC2 на вывод доменного имени ALB:

output "alb_dns_name" {

  value       = aws_lb.example.dns_name

  description = "The domain name of the load balancer"

}

Выполните terraformapply и почитайте полученный план. Согласно ему наш исходный сервер EC2 удаляется, а вместо него Terraform создает конфигурацию запуска, ASG, ALB и группу безопасности. Если с планом все в порядке, введите yes и нажмите клавишу Enter. Когда команда apply завершит работу, вы должны увидеть вывод alb_dns_name:

Outputs:

alb_dns_name = terraform-asg-example-123.us-east-2.elb.amazonaws.com

Скопируйте этот URL-адрес. Подождите, пока наши серверы загрузятся и ALB пометит их как работоспособные. Тем временем можете просмотреть то, что вы развернули. Открыв раздел ASG консоли EC2 (https://amzn.to/2MH3mId), вы должны увидеть, что группа автомасштабирования уже создана (рис. 2.12).

Рис. 2.12. Группа автомасштабирования

Если перейти на вкладку Instances (Серверы), можно увидеть запуск двух серверов EC2, как показано на рис. 2.13.

Рис. 2.13. Запуск серверов EC2 в ASG

Щелкнув на вкладке Load Balancers (Балансировщики нагрузки), вы увидите свой экземпляр ALB, как показано на рис. 2.14.

Рис. 2.14. Application Load Balancer

Чтобы найти целевую группу, как показано на рис. 2.15, перейдите на вкладку Target Groups (Целевые группы).

Рис. 2.15. Целевая группа

Если вы выберете свою целевую группу и щелкнете на вкладке Targets (Цели) в нижней части экрана, то сможете увидеть, как ваши серверы регистрируются в целевой группе и проходят проверки работоспособности. Подождите, пока их индикатор состояния не начнет показывать healthy. Это обычно занимает одну-две минуты. После проверьте вывод alb_dns_name, который вы скопировали ранее:

$ curl http://>

Hello, World

Получилось! ALB направляет трафик к вашим серверам EC2. Каждый раз, когда вы обращаетесь по этому URL-адресу, он выбирает другой сервер для обработки запроса. Вы получили полностью рабочий кластер веб-серверов!