Назад | Перейти на главную страницу

Нет доступа к экземпляру EC2, но нет NLB в другом VPC

Недавно я начал процесс перехода с 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 вам также необходимо добавить маршруты для пирингового соединения в таблицу маршрутов вашей подсети (ей).