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

AWS, NodeJS - подключение приложения к Mongodb на другом экземпляре EC2

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

Во-первых, экземпляр моего приложения находится в группе автомасштабирования, которая находится за ELB. Параметры входящей безопасности для экземпляра и ELB разрешают доступ к порту 80 из любого места, а также весь трафик из собственной группы безопасности.

Экземпляр EC2, на котором работает Mongo, может принимать соединения, если группа безопасности для этого экземпляра принимает весь входящий трафик из любого места. Любая другая конфигурация, которую я пробовал, заставляет приложение сообщать, что оно не может установить соединение с удаленным адресом. Я установил правила для приема входящего трафика от всех групп безопасности, которые у меня есть, но кажется, что они работают только тогда, когда я разрешаю весь трафик из любого места.

Кроме того, мой экземпляр db настроен с эластичным ip. Должен ли я иметь этот экземпляр за ELB?

Итак, мои вопросы таковы:

1) Как я могу безопасно подключиться к моему экземпляру EC2, на котором работает mongo?

2) С точки зрения архитектуры, имеет ли смысл запускать мою базу данных таким образом, или я должен иметь это за балансировщиком нагрузки?

Эта проблема сбивает меня с толку гораздо больше, чем я думал, поэтому любая помощь будет принята с благодарностью.

НОТА

Я также установил bind_ip=0.0.0.0 в /etc/mongo.conf

Ваша проблема в том, что вы используете общедоступный эластичный IP-адрес для подключения к серверу базы данных с других серверов. Это означает, что соединение выходит в Интернет и возвращается в ваш VPC, что вызывает следующие проблемы:

  1. Проблемы с безопасностью из-за того, что передача данных не содержится в вашем VPC
  2. Проблемы с задержкой в ​​сети
  3. Группа безопасности вашего сервера базы данных не может определить группу безопасности входящих подключений

Избавьтесь от эластичного IP-адреса на сервере MongoDB, в нем нет необходимости, если вы не планируете подключаться к нему извне вашего VPC. Измените свои серверы, чтобы использовать частный внутренний IP-адрес, назначенный вашему серверу базы данных, при создании подключений к нему. Наконец, снова заблокируйте свою группу безопасности, чтобы разрешить доступ к БД только из других групп безопасности.

Необязательно: создайте частную размещенную зону в Route53 с записью A, указывающей на частный IP-адрес вашего сервера базы данных, затем используйте это имя хоста вместо внутреннего IP-адреса.