Решение:
Поскольку ваши серверы Tomcat находятся в частной подсети, и она пытается достичь ELB mongodb в публичной подсети, исходящий трафик серверов Tomcast должен маршрутизироваться черезшлюз NAT ( Не ELB ).
Таким образом, вместо настройки группы безопасности на разрешение порта 27017 с 0.0.0.0/0, вы можете разрешить порт 27017 с IP-адреса шлюза NAT.
Сначала необходимо проверить, используете ли вы экземпляр шлюза NAT старого стиля или новое решение шлюза VPC NAT, чтобы получить требуемый IP-адрес.
Предложения:
Во-первых, вы не хотите предоставлять трафик между вашим экземпляром и базой данных общедоступному Интернету.Вместо этого используйте частный балансировщик нагрузки.
Во-вторых, вам не нужен ELB для кластера mongodb (я предполагаю, что у вас есть кластер).Целью кластера Mongodb является высокая доступность. Запись всегда идет на основной , а - это плохая практика использовать вторичные серверы для увеличения производительности для запросов на чтение .
Вы должны настроить mongos для приема соединений и разрешатьэто позаботится о маршрутизации для вас.В этом случае ваши серверы tomcast могут подключаться к частной конечной точке mongos напрямую, не подвергая трафик Интернету.
Если вы не используете кластер mongodb (В этом случае я не понимаю, почему вы использовали балансировщик нагрузки вво-первых), тогда это еще проще, просто подключитесь, используя частный IP-адрес сервера mongodb.