#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 для всего остального.