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