Подключение к балансировщику нагрузки по различным протоколам

#amazon-web-services #https #protocols #amazon-elb #aws-load-balancer

Вопрос:

При подключении к балансировщику нагрузки AWS я знаю, что у каждого из них разные протоколы, например, Network Lb-TCP и UDP, а Application Lb-Http/s, но записано ли где-нибудь в коде приложения, с каким протоколом должно подключаться приложение?

Я работаю в Devops и пытаюсь лучше понять, как работают эти соединения, поскольку я хочу отойти от классического Lb

И поэтому, если бы я хотел знать, следует ли мне создавать NLB или ALB, должен ли я спрашивать разработчиков, какой протокол использует приложение для подключения к Интернету?

Ответ №1:

Балансировщики сетевой нагрузки (NLB) — это балансировщики нагрузки уровня 4, что означает, что они могут маршрутизировать трафик TCP и UDP. Поскольку HTTP/HTTPS проходит через TCP, NLBS также можно использовать для трафика HTTP/HTTPS.

Балансировщик нагрузки приложений (ALB) — это балансировщики нагрузки уровня 7, они могут маршрутизировать только трафик HTTP/HTTPS (без голого TCP-трафика, без UDP).

Хотя и ALB, и NLB могут маршрутизировать трафик HTTP/HTTPS, разница между ними заключается в том, что ALB может понимать протокол HTTP, а это означает, что у нас могут быть правила маршрутизации, основанные на заголовках HTTP, переменных пути, параметрах запросов и т. Д. Это невозможно, если мы используем NLBS, балансировщики сетевой нагрузки могут маршрутизировать на основе IP-адреса источника/назначения и портов.

Как правило, используйте ALBs, если у вас в основном веб-приложения и вам нужны все функции, которые может предоставить балансировщик нагрузки L7. Используйте NLB для всего остального.