Почему в AWS NLB может предоставлять статические IP-адреса, а ALB - нет?

Согласно AWS,

Network Load Balancer направляет трафик к целевым объектам в Amazon Virtual Private Cloud (Amazon VPC) и способен обрабатывать миллионы запросов в секунду при сохранении сверхнизких задержек.

Кроме того, NLB поддерживает статические / эластичные IP-адреса. У меня сложилось впечатление, что AWS обычно не рекомендует IP-адреса, а вместо этого просит клиентов использовать DNS-имена, чтобы базовое оборудование могло масштабироваться (а IP-адреса могли изменяться). Как это возможно в случае NLB, когда IP-адрес может оставаться статическим и по-прежнему масштабироваться, но такая же функциональность не предлагается в ALB? - Это ограничение дизайна ALB, которое AWS улучшило в NLB? Или какие-либо технические проблемы для сохранения статического IP-адреса в случае ALB?


person Abhishek Palakkal Kaliyath    schedule 30.03.2020    source источник
comment
IP-адрес связан с виртуальным сетевым интерфейсом, а не с самим экземпляром или базовым аппаратным хостом, поэтому он более гибкий, чем вы думаете.   -  person Anton    schedule 30.03.2020
comment
Спасибо. Но почему это не относится к балансировщикам нагрузки приложений? Вместо этого рекомендуется AWS Global Accelerator.   -  person Abhishek Palakkal Kaliyath    schedule 30.03.2020


Ответы (1)


Не знаю, является ли это полным объяснением использования IP-адресов AWS в ALB и NLB, но я думаю, что это потому, что ALB работает на уровне приложения (уровень 7) модель OSI.

На уровне 7, помимо HTTP, HTTPS, FTP, у вас также есть DNS. Таким образом, вы используете DNS в качестве основного способа связи с ALB, и это то, что вам предлагает делать AWS.

NLB работает на транспортном уровне (уровень 4) модели OSI. Здесь нет DNS, а например TCP или UDP. Таким образом, когда вы хотите общаться с NLB, вам необходимо использовать IP-адрес, поскольку технически нет ни DNS, ни URL-адресов.

Тот факт, что AWS предоставляет DNS для NLB, можно использовать только для приложений, которые используют NLB и работают на уровне 7, например, когда вы используете NLB для балансировки нагрузки HTTPS / HTTP-трафика или ssh для экземпляра через NLB. Но NLB можно использовать для приложений, которые работают только на уровне 4 или используют специальные / проприетарные протоколы более высокого уровня, поэтому они должны использовать IP-адрес, поскольку DNS недоступен на уровне 4. Очевидно, что IP-адреса NLB должны быть статическими, иначе такие приложения сломались бы.

person Marcin    schedule 22.11.2020
comment
Фактически транспортный уровень - это уровень 4 в модели OSI. - person xczzhh; 13.03.2021