Проблема с доступом к Mongodb на Amazon EC2

У меня есть еще один вопрос для вас. У меня есть экземпляр Amazon EC2 с установленным mondodb. Он отлично работает, кроме одного - я не могу получить доступ к нему извне (мой компьютер). Я думаю, проблема с группами безопасности. Это своего рода брандмауэр по умолчанию. Кто-нибудь знает, как настроить экземпляр EC2 для доступа к mongodb? Спасибо заранее.

Ответ 1

Вам нужно добавить исключение группы безопасности для порта 27017, если вы используете конфигурацию по умолчанию для доступа к ней извне. Для конфигурации группы безопасности ознакомьтесь с документацией Amazon EC2. И если вы используете другой порт на Mongo, соответствующим образом измените порт группы безопасности.

- Sai

Ответ 2

Подумайте, прежде чем делать это. Если вы открываете порты, убедитесь, что вы ограничиваете номера IP, которые могут получить к нему доступ, иначе любой сможет получить доступ к вашей базе данных. Вы можете включить аутентификацию в MongoDB, но это не особенно безопасно, просто имя пользователя и пароль. Вы не должны открывать свою базу данных в Интернете, это не очень хорошая идея.

Лучшим способом, чем открытие портов в брандмауэре EC2, является открытие туннеля SSH для пересылки порта, это гарантирует, что только вы можете получить доступ к базе данных и только в то время, когда туннель SSH активен.

Откройте новый терминал и запустите эту команду (заменив пользователя и хост на пользователя, который вы используете, когда SSH'ing на ваш сервер и имя сервера):

ssh [email protected] -N -L 27017:127.0.0.1:27017

Команда переадресует порт 27017 на ваш компьютер в тот же порт на сервере. Для подключения к экземпляру MongoDB просто запустите mongo в терминале (если это не сработает, попробуйте mongo --host 127.0.0.1 или даже mongo --host 127.0.0.1 --port 27017).

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

ssh [email protected] -N -L 27018:127.0.0.1:27017

а затем подключиться к

mongo --port 27018

(возможно, добавив --host 127.0.0.1, если он не работает).

Когда вы закончите работу с базой данных, выйдите из mongo и нажмите ctrl-C в терминале командой SSH.

Ответ 3

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

Перейдите в "Администрирование", "Брандмауэр Windows с расширенной безопасностью" и настройте новое правило, которое позволяет входящие соединения на порт 27017 (порт монгонга по умолчанию) или любой другой порт, который вы выбрали.