Один из моих проектов - внутреннее веб-приложение, которое мы ставим за балансировщик нагрузки. На данный момент существует только один ec2 (в производстве будет больше), и балансировщик нагрузки не может связаться с ec2-Instance.
Балансировщик нагрузки настроен на прием подключений через порт 448 и пересылку их на экземпляр ec2 на порт 80. Экземпляры ec2 перечислены в балансировщике нагрузки на консоли, но они продолжают не проверять работоспособность.
Для дальнейшей отладки я создал тестовый экземпляр ec2 (54.68.255.208) через консоль с группой безопасности, которая разрешает соединения из любой точки мира на любой порт. Я установил на него apache, и он работал по умолчанию. Затем я создал новый балансировщик нагрузки (http://lb-test-lb-512274268.us-west-2.elb.amazonaws.com/), который разрешает весь трафик на TCP-портах. Я добавил экземпляр ec2 в подсистему балансировки нагрузки, но без видимых причин проверка работоспособности завершилась неудачно, хотя я могу без проблем подключиться к экземпляру ec2 через порт 80.
Ни у кого в нашем офисе нет этой проблемы, но никто другой не может объяснить, что ее вызывает. Похоже, мне здесь что-то не хватает?
Лучший способ отладить проблему с ELB - это сделать следующее:
Убедитесь, что группы безопасности на экземплярах настроены так, чтобы разрешить входящий порт (80)
Убедитесь, что ваша проверка работоспособности настроена правильно
tail -f
(или аналогичные) журналы экземпляров, которые вы пытаетесь добавить в балансировщик.Пример пинга от средства проверки работоспособности в журналах экземпляра:
10.1.2.3 - - [16 / Dec / 2014: 15: 03: 57 +0000] "GET / health HTTP / 1.1" 200 13 "-" "ELB-HealthChecker / 1.0"
Убедитесь, что конфигурация "Listener" верна: от 80 до 80 (например)