Балансировка нагрузки aws для разных экземпляров и одинаковых портов
У меня есть два экземпляра EC2, на которых запущены веб-сайты через порт 80.
Можно ли использовать / настроить 1 балансировщик нагрузки для этих двух экземпляров / сервисов? Когда я пытаюсь добавить прослушиватель на существующий балансировщик нагрузки, он говорит: "Возможно, у вас не определены дубликаты портов балансировки нагрузки".
Или я должен использовать 2 балансировщика нагрузки, по одному для каждого экземпляра?
1 ответ
Балансировщики нагрузки определяют слушателей по портам входящего трафика, которые они прослушивают. Когда клиентское соединение достигает балансировщика нагрузки на определенном порту (т. Е. 443 или 80), прослушиватель перенаправляет этот запрос целевой группе. Чтобы прослушиватель на порту 80 переадресовывал соединения на несколько экземпляров, все, что вам нужно сделать, - это создать целевую группу, содержащую эти экземпляры.
Наиболее распространенный подход для общедоступных веб-сайтов - использовать что-то вроде https://aws.amazon.com/certificate-manager/ для создания TLS-сертификатов для веб-сайта. Затем они загружают этот сертификат в балансировщик нагрузки и прослушивают порт 443 (типичный порт для HTTPS) и передают соединения через HTTP (обычно порт 80) целевым группам. Обычно это называется TLS или SSL Termination.
Если экземпляры размещают разные веб-сайты, но вы хотите выполнить маршрутизацию на основе предоставленного имени хоста (например, example.com и example1.com), вы можете создать отдельную целевую группу для каждого веб-сайта и использовать балансировщик нагрузки приложения (ALB) для маршрутизации на основе на имени хоста, предоставленного инициатором запроса.
Это можно сделать после того, как вы создали ALB, перейдя на подсистему ALB и изменив правила прослушивателя, подобные скриншотам ниже.
Чтобы обслуживать отдельный сертификат для каждого хоста, вам также необходимо добавить эти сертификаты в прослушиватель, как я написал в своем блоге, описывающем эту функцию.