#mongodb #amazon-web-services #amazon-ec2 #amazon-vpc #outbound
#mongodb #amazon-веб-сервисы #amazon-ec2 #amazon-vpc #исходящие
Вопрос:
Я только что запустил новый экземпляр и развернул очень простое Java-приложение, чтобы попытаться подключиться к MongoDB Atlas, и приложение не может подключиться. То же самое приложение работает нормально локально. Это экземпляр общего назначения в VPC, а не классический. Существует ли конфигурация для включения исходящих вызовов? Я проверил таблицу маршрутизации, и нет никаких правил для блокировки любых исходящих вызовов. Прикрепленное изображение также показывает общедоступный IP-адрес, но я не могу выполнить пинг сервера, но я могу подключиться через ssh.
Я также пытался назначить экземпляру Elastic IP, и это тоже не сработало.
Обновить:
Оказалось, что проблема была в MongoDB для этого случая. Основываясь на том, что я видел в Интернете, это позволило мне понять, что это была проблема с Amazon VPC, но на самом деле это была проблема с белым списком в Mongo DB Atlas. Я не понимал, что это так, поскольку соединение с моего локального работало, хотя это и не предполагалось.
Для отправки исходящего вызова вам НЕ нужен NAT-сервер.
Комментарии:
1. Похоже, что он находится в частной подсети. Или, возможно, вы не назначили экземпляру общедоступный IP-адрес. Или, возможно, ваш маршрут VPC к вашему интернет-шлюзу отсутствует или неверен.
2. Я только что добавил скриншот общедоступного IP-адреса, который я не могу пинговать. Однако я могу подключиться к серверу с помощью ssh.
3. «Вам НЕ нужен NAT-сервер для отправки исходящего вызова» в вашем случае, нет, поскольку у вас есть общедоступный IP-адрес. Если у хоста нет общедоступного IP-адреса, требуется NAT
4. Это правильно. Однако в Интернете так много сообщений, в которых указано иное. Вот что вызывает путаницу.
Ответ №1:
MongoDB Atlas фактически теперь имеет пиринг VPC, который больше не потребует от вас внесения в белый список 0.0.0.0 / 0
https://www.mongodb.com/blog/post/introducing-vpc-peering-for-mongodb-atlas
Ответ №2:
Убедитесь, что ваш ACL для этой подсети разрешает 0.0.0.0/0
Убедитесь, что вы можете выполнить пинг www.google.com изнутри экземпляра
Проверьте маршруты вашей подсети и убедитесь, что у нее есть маршрут 0.0.0.0/0
к интернет-шлюзу.