Недавно я начал процесс перехода с AWS ELB на NLB, и у меня возникли некоторые проблемы с подключением.
У нас есть 2 VPC. В VPC1 расположены оба сервера баз данных EC2, старый ELB и NLB. В VPC2 у нас есть несколько серверов EC2, которые подключаются к серверам баз данных.
В VPC1 у нас нет проблем с подключением.
В VPC2 я не могу получить доступ к БД через NLB.
Насколько я понимаю в отношении того, как работает NLB, тот факт, что я могу подключиться напрямую к экземпляру EC2, означает, что я должен иметь возможность подключаться к нему через NLB - NLB не имеет собственной группы безопасности и использует группу sec из экземпляр EC2, поскольку он перенаправляет исходный IP-адрес.
У кого-нибудь есть идеи, что может быть не так?
Оказывается, хотя NLB поддерживает пиринг VPC, он работает только с так называемыми экземплярами Nitro:
Если одноранговый VPC находится в том же регионе, что и балансировщик нагрузки, клиенты должны быть экземплярами Nitro.
Экземпляры в "VPC2" относятся к типу t2.small
, которые не Нитро.
NLB не имеет собственной группы безопасности и использует группу sec экземпляра EC2, поскольку он пересылает IP-адрес источника.
Это не так. NLB не имеет группы безопасности, но также прячется группа безопасности источника. Он просто работает с IP-адресами.
Поэтому, если ваша группа безопасности БД разрешает доступ из EC2 SG, вам придется добавить другое правило, основанное на IP, чтобы разрешить доступ с клиентских IP-адресов. Как только трафик проходит через NLB, он теряет метку исходной группы безопасности.
В любом случае NLB предназначен для довольно специализированных случаев использования. Вы уверены, что вам не будет лучше работать с ALB (Application Load Balancer)? Он работает на уровне HTTP / HTTPS и дает вам больше контроля над маршрутизацией запросов и т. Д.
Надеюсь, это поможет :)
Если NLB имеет внутренний тип, это означает, что у него нет публичного IP. Чтобы иметь возможность направлять на него трафик от другого VPC через частный IP-адрес NLB, должен быть VPC-пиринг между этими VPC на месте. Для работы пиринга VPC вам также необходимо добавить маршруты для пирингового соединения в таблицу маршрутов вашей подсети (ей).