Как разрешить сетевой поток между двумя частными экземплярами, которые подключены к разным elb? - PullRequest
0 голосов
/ 13 сентября 2018

Я создал VPC с публичными и частными подсетями.Для публичных подсетей я подключил интернет-шлюз для частных подсетей nat gateway. Отсюда мой план - запустить все мои экземпляры в частной подсети и соединить их с внешним миром, используя elb, для этого я запустил свой сервер Tomcat в частной подсети и подключил к elb, которыйнаходится в публичной подсети, и я запустил mongodb в частной подсети, и к нему присоединена публичная подсеть elb.Теперь, когда я вызываю API с сервера tomcat, он должен получить данные из базы данных. Это происходит, когда я разрешаю 27017 (порт mongodb) из любой точки elb sg. Здесь я сталкиваюсь с проблемой, которую я не хочу разрешатьпорт из любого места, где только серверы tomcat должны общаться с mongodb через elb, как настроить группы безопасности elb для пропуска трафика только с серверов tomcat.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы можете создать группу безопасности, предназначенную для этой связи между вашими серверами и БД, и прикрепить эту группу безопасности к ним обоим.

Я не рекомендую использовать NAT для общедоступных приложений, поскольку этот экземпляр NAT может не поддерживать пики нагрузки.

0 голосов
/ 13 сентября 2018

Решение:

Поскольку ваши серверы 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.

...