Cómo crear un MongoDB en un VPS
MongoDB es una popular base de datos NoSQL conocida por su flexibilidad, escalabilidad y rendimiento. Almacena datos en documentos flexibles, similares a JSON, lo que es perfecto para los desarrolladores que trabajan con aplicaciones dinámicas y de rápida evolución. Si ha optado por ejecutar MongoDB en su propio Servidor Privado Virtual (VPS), le espera una experiencia gratificante que le proporcionará un control total sobre su entorno de base de datos. Esta guía le llevará paso a paso por el proceso de configuración de MongoDB en un VPS.
Requisitos previos
Antes de empezar, asegúrate de tener lo siguiente:
- Un VPS con acceso root.
- Ubuntu 20.04 o una distribución Linux similar.
- Acceso SSH a su VPS.
- Al menos 2GB de RAM (recomendado) para MongoDB.
- Conocimientos básicos de interfaz de línea de comandos (CLI) y comandos Linux.
Paso 1: Actualizar el sistema
En primer lugar, asegúrese de que su VPS está actualizado. Inicie sesión a través de SSH y ejecute los siguientes comandos para actualizar la lista de paquetes de su sistema e instalar las actualizaciones pendientes:
sudo apt update
sudo apt upgrade -y
Una vez actualizado el sistema, es una buena práctica reiniciar el servidor para asegurarse de que todas las actualizaciones se aplican correctamente:
sudo reboot
Paso 2: Instalar MongoDB
MongoDB no está incluido en los repositorios por defecto de Ubuntu, por lo que tendrás que añadir su repositorio oficial antes de instalarlo. He aquí cómo instalar MongoDB:
Añadir el repositorio de MongoDB
- Importar la clave GPG pública de MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Crear un archivo de lista para MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Actualice su lista de paquetes local:
sudo apt update
Instalar paquetes MongoDB
Ahora, instale los paquetes MongoDB ejecutando el siguiente comando:
sudo apt install -y mongodb-org
Esto instala MongoDB junto con otros componentes necesarios (como mongod, el demonio de MongoDB).
Paso 3: Iniciar y habilitar MongoDB
Una vez instalado, debe iniciar MongoDB y habilitarlo para que se ejecute al inicio:
sudo systemctl start mongod
sudo systemctl enable mongod
Para confirmar que MongoDB se está ejecutando, comprueba su estado:
sudo systemctl status mongod
Deberías ver MongoDB listado como activo (ejecutándose). Si todo se ve bien, estás listo para pasar a la configuración.
Paso 4: Asegurar MongoDB
Por defecto, MongoDB permite el acceso sin autenticación, lo que no es ideal para un entorno de producción. Para asegurar MongoDB, deberías habilitar la autenticación.
Crear un usuario administrador
- Primero, accede al shell de MongoDB:
mongo
- Cambia a la base de datos admin:
use admin
- Cree un usuario admin ejecutando el siguiente comando, sustituyendo adminuser y password por el nombre de usuario y password que desee:
db.createUser({
usuario: "adminuser",
pwd: "password",
roles: [ { rol: "userAdminAnyDatabase", db: "admin" } ]
})
- Salga del intérprete de comandos de MongoDB:
exit
Activar autenticación
- Abra el archivo de configuración de MongoDB con un editor de texto:
sudo nano /etc/mongod.conf
- En el archivo de configuración, busque la siguiente línea:
#seguridad:
- Descoméntala y añade la siguiente línea debajo de ella:
security:
authorization: enabled
- Guarda los cambios y sal del editor (en Nano, pulsa Ctrl X , luego Y y Enter).
- Reinicie MongoDB para aplicar los cambios:
sudo systemctl restart mongod
Paso 5: Configurar el acceso remoto a MongoDB (opcional)
Por defecto, MongoDB sólo escucha en localhost (127.0.0.1), lo que significa que sólo es accesible desde el propio VPS. Si necesitas acceso remoto, tendrás que configurar MongoDB para permitir conexiones desde direcciones IP externas. He aquí cómo:
- Abra el archivo de configuración de MongoDB:
sudo nano /etc/mongod.conf
- Encuentra la siguiente línea:
bindIp: 127. 0.0.1
- Sustitúyala por:
bindIp: 0. 0.0.0
Esto permite a MongoDB aceptar conexiones desde todas las direcciones IP.
- Guarde los cambios y salga del editor.
- Reinicie MongoDB:
sudo systemctl restart mongod
Acceso remoto seguro con un cortafuegos
Permita que sólo las direcciones IP de confianza se conecten a MongoDB configurando el cortafuegos de su VPS. Si estás usando UFW (Uncomplicated Firewall), aquí tienes cómo permitir conexiones remotas en el puerto por defecto de MongoDB (27017):
- Permitir el acceso desde una IP específica (sustituye tu_ip por tu dirección IP ):
sudo ufw allow desde tu_ip a cualquier puerto 27017
- Para habilitar UFW (si no está habilitado):
sudo ufw enable
- Compruebe el estado de UFW para confirmar que se ha añadido la regla:
sudo ufw status
Paso 6: Probar la configuración de MongoDB
Para verificar que MongoDB funciona correctamente, puede acceder al shell de MongoDB y autenticarse utilizando el usuario que creó anteriormente:
- Conectarse a MongoDB:
mongo -u adminuser -p --authenticationDatabase admin
- Ahora deberías estar conectado al shell de MongoDB como usuario admin.
Paso 7: Copia de seguridad y mantenimiento
Es fundamental realizar copias de seguridad de las bases de datos MongoDB con regularidad, especialmente en un entorno de producción. Puedes usar la herramienta mongodump para hacer copias de seguridad de tus datos:
mongodump --out /ruta/al/respaldo/directorio
Puedes restaurar los datos con mongorestore:
mongorestore /ruta/al/backup/directorio
Conclusión
Siguiendo estos pasos, has instalado y configurado MongoDB con éxito en tu VPS. Ahora tiene control total sobre su entorno MongoDB, que puede ajustarse para satisfacer sus necesidades específicas. Tanto si usas MongoDB para aplicaciones web, big data o simplemente para experimentar, tu instalación de MongoDB basada en VPS te ofrecerá flexibilidad y rendimiento.
Recuerda monitorizar tu instancia de MongoDB regularmente y mantenerla segura habilitando la autenticación y limitando el acceso a través de cortafuegos. ¡Feliz programación!