у меня есть еще вопрос к вам. У меня есть экземпляр Amazon EC2 с установленным mondodb. Он отлично работает, за исключением одного - я не могу получить к нему доступ (подключиться) извне (с моего ПК). Думаю проблема с Security Groups. Это своего рода брандмауэр по умолчанию. Кто-нибудь знает, как настроить экземпляр EC2 для доступа к mongodb? Заранее спасибо.
Проблема с доступом к Mongodb на Amazon EC2
Ответы (3)
Вам необходимо добавить исключение группы безопасности для порта 27017, если вы используете конфигурацию по умолчанию для доступа к ней извне. Для настройки группы безопасности см. документацию amazon EC2. И если вы используете другой порт в Mongo, соответствующим образом измените порт группы безопасности.
--Сай
bind_ip
из mongodb.conf
- person Rakesh Sankar; 14.10.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.
Ваш экземпляр EC2 случайно не является сервером Windows? Если это так, в дополнение к группам безопасности EC2 вам также необходимо настроить брандмауэр Windows, чтобы разрешить входящее соединение.
Перейдите в «Администрирование», «Брандмауэр Windows в режиме повышенной безопасности» и настройте новое правило, разрешающее входящие подключения через порт 27017 (порт mongo по умолчанию) или любой другой порт, который вы выбрали.