2011-01-22 21 views
10

tengo otra pregunta para usted. Tengo la instancia de Amazon EC2 con mondodb instalado. Funciona muy bien, excepto una cosa: no puedo acceder (conectar) desde el exterior (mi PC). Creo que el problema con los grupos de seguridad. Es una especie de firewall predeterminado. ¿Alguien sabe cómo configurar la instancia EC2 para tener acceso a mongodb? Gracias de antemano.Problema con el acceso a Mongodb en Amazon EC2

Respuesta

10

Debe agregar una excepción de grupo de seguridad para el puerto 27017 si usa la configuración predeterminada para que pueda acceder desde el exterior. Para la configuración del grupo de seguridad, verifique la documentación de Amazon EC2. Y si está utilizando un puerto diferente en Mongo, cambie el puerto del grupo de seguridad en consecuencia.

--Sai

+0

Sé que debería hacer algo así, pero no puedo entender qué es exactamente. – clumpter

+22

Asegúrate de haber comentado 'bind_ip' del' mongodb.conf' –

+3

y luego no olvides reiniciar el servicio mongod –

39

Piense cuidadosamente antes de hacer esto. Si abre los puertos, asegúrese de restringir los números de IP que pueden acceder a él, de lo contrario, cualquier persona podrá acceder a su base de datos. Puede habilitar la autenticación en MongoDB, pero no es particularmente seguro, solo un nombre de usuario y contraseña. No debería tener su base de datos abierta a internet, no es una buena idea.

Una forma mejor que abrir puertos en el firewall EC2 es abrir un túnel SSH y reenviar el puerto, esto asegura que solo usted pueda acceder a la base de datos, y solo mientras el túnel SSH esté activo.

abrir un nuevo terminal y ejecuta este comando (en sustitución de usuario y host con el usuario que utiliza cuando SSH'ing a su servidor y el nombre del servidor):

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

El comando reenviará el puerto 27017 en su computadora al mismo puerto en el servidor. Para conectarse a la instancia de MongoDB, simplemente ejecute mongo en un terminal (si eso no funciona, pruebe mongo --host 127.0.0.1 o incluso mongo --host 127.0.0.1 --port 27017).

Si ejecuta MongoDB en su máquina local, tendrá que cambiar el primer puerto, ya que el servidor local ya lo está utilizando. En ese caso, ejecute este comando:

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

y luego conectar con

mongo --port 27018 

(posiblemente añadiendo --host 127.0.0.1 si no funciona).

Cuando termine de trabajar con la base de datos, salga de mongo y presione ctrl-C en el terminal con el comando SSH.

+0

Epic. El magix de port forwardz. –

5

¿Su instancia de EC2 es un servidor de Windows por casualidad? De ser así, además de los Grupos de seguridad de EC2, también debe configurar el Firewall de Windows para permitir la conexión entrante.

Vaya a Herramientas administrativas, Firewall de Windows con seguridad avanzada, y configure una nueva regla que permita las conexiones entrantes en el puerto 27017 (el puerto mongo predeterminado) o el puerto que haya elegido.

+0

Gracias amigo! Estaba teniendo este problema con mi instancia de EC2 Windows. ¡Ahora, podría acceder a eso! – Jobsamuel