Как подключить общедоступный балансировщик нагрузки к экземплярам EC2 в частном VPC

Фон

Я хочу развернуть приложение laravel в Elastic Beanstalk. В комплект входит VPC с двумя частными и двумя общедоступными подсетями. EC2, RDS и т. Д. Находятся в частных подсетях.

Только ELB находится в публичных. И должен направить все в частные.

Проблема

Если я попытаюсь подключиться через ELB, я получаю ошибку TIMEOUT.

Я не уверен, что это проблема конфигурации (VPC / подсети) или ошибка приложения (EB).

Однако, я думаю, запросы проходят и маршрутизируются правильно. Потому что, если я проверю журналы Elastic Beanstalk, например, httpd/access.log

Я вижу запросы, сделанные через ELB.

13:38:20 10.0.2.52 (94.79.175.190) - - [22/Oct/2018:13:38:19 +0000] "GET /loadbalancertest HTTP/1.1" 307 307 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.

Однако проверка работоспособности, похоже, работает нормально. И состояние приложения в порядке.

Инфраструктура

  • 1 VPC
  • 2 частных подсети
  • 2 публичные подсети

ELB

ELB находится в двух общедоступных подсетях.

Настройки группы безопасности ELB

Входящий: HTTP / TCP / 80 / 0.0.0.0/0

Исходящий: HTTP / TCP / 80 / 0.0.0.0/0


Экземпляр EC2 (создан EB)

Настройки группы безопасности VPC

Входящий: HTTP / TCP / 80 / sg-03xxxxx (ELB SG)

Исходящий: Весь трафик / 0.0.0.0/0


person Jakub Juszczak    schedule 22.10.2018    source источник


Ответы (1)


Похоже, ваш ELB настроен правильно.

У вас проблема с конфигурацией вашего бэкэнда. Служба HTTP возвращает HTTP-статус 307, который является временным перенаправлением для вашей проверки работоспособности (если я неправильно читаю ваш файл журнала - вы никогда не можете быть уверены, что к чему, с настраиваемыми форматами журнала). Странно то, что в вашем файле журнала есть 307 307. Первые 307 - это статус HTTP, а второй - количество байтов, возвращенных для запроса.

Подключитесь к одному из ваших внутренних экземпляров, а затем используйте curl с другим серверным экземпляром и убедитесь, что URL-адрес проверки работоспособности работает правильно. Затем убедитесь, что домашняя страница по умолчанию также работает правильно.

person John Hanley    schedule 26.10.2018