Проблема с доступом к Mongodb на Amazon EC2 - PullRequest
10 голосов
/ 22 января 2011

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

Ответы [ 3 ]

39 голосов
/ 22 января 2011

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

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

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

ssh user@host -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 user@host -N -L 27018:127.0.0.1:27017

, а затем соединиться с

mongo --port 27018

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

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

10 голосов
/ 22 января 2011

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

- Sai

5 голосов
/ 15 марта 2011

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

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

...