Cómo crear una instancia de MongoDB en un VPS
Cómo crear una instancia de MongoDB en un VPS
Implementar MongoDB en un Virtual Private Server (VPS) te brinda control total sobre la infraestructura de tu base de datos, ideal para desarrolladores, startups y organizaciones que priorizan el rendimiento, la flexibilidad y la soberanía de los datos. Esta guía te llevará a través de los pasos avanzados para instalar, configurar, asegurar y optimizar MongoDB en un VPS.
🛠️ Paso 1: Actualiza tu sistema
sudo apt update && sudo apt upgrade -yConfigura tu hostname y zona horaria:
hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC📦 Paso 2: Instala MongoDB
1. Importa la clave GPG de MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg2. Añade el repositorio de MongoDB
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listNota: Reemplaza focal con jammy o tu versión si usas Ubuntu 22.04.
3. Instala MongoDB
sudo apt updatesudo apt install -y mongodb-org🧪 Paso 3: Inicia y habilita MongoDB
sudo systemctl start mongodsudo systemctl enable mongodComprueba el estado:
sudo systemctl status mongod🔐 Paso 4: Asegura tu servidor MongoDB
De forma predeterminada, MongoDB se enlaza a 127.0.0.1. Si quieres acceso remoto:
1. Edita la configuración
sudo nano /etc/mongod.confEncuentra la línea bindIp bajo net: y modifica:
bindIp: 127.0.0.1,0.0.0.02. Habilita la autenticación
Bajo la sección security:, añade:
security:
authorization: enabledReinicia MongoDB:
sudo systemctl restart mongod👤 Paso 5: Crea un usuario administrador
Accede al shell de MongoDB:
mongoshCrea un usuario administrador:
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})Sal con exit, luego prueba el inicio de sesión:
mongosh -u admin -p --authenticationDatabase admin🛡️ Paso 6: Refuerza el VPS y MongoDB
1. Firewall UFW
sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enablePara acceso remoto desde una sola IP:
sudo ufw allow from YOUR.IP.ADDRESS to any port 270172. Fail2Ban (Protección SSH)
sudo apt install fail2ban -ysudo systemctl enable fail2ban⚙️ Paso 7: Optimización avanzada (opcional)
1. Replica Set para alta disponibilidad
Modifica /etc/mongod.conf:
replication:
replSetName: "rs0"Inicializa:
mongosh
rs.initiate()2. Estrategia de copias de seguridad
Usa mongodump para las copias de seguridad:
mongodump --out /var/backups/mongodb/$(date +%F)Automatiza con cron:
crontab -e
# Daily at 2 AM
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date +%F)3. Usa TLS/SSL para conexiones cifradas
Genera certificados y configura la sección net.ssl en mongod.conf. Esto requiere más configuración y una autoridad de certificación (CA) de confianza.
🧪 Paso 8: Prueba tu implementación
Puedes probar la conectividad remota:
mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"Reemplaza your-server-ip con la IP de tu VPS o nombre de dominio.
📊 Paso 9: Supervisa tu MongoDB
Considera herramientas como:
MongoDB Atlas Monitoring Agent (opcional)
Prometheus + Grafana con exporters
Alertas personalizadas con cron y logwatch
También puedes ver los logs directamente:
sudo tail -f /var/log/mongodb/mongod.log✅ Lista de verificación final
MongoDB instalado y en ejecución
Acceso remoto asegurado
Autenticación de administrador aplicada
Firewall configurado
Copias de seguridad en su lugar
Supervisión opcional habilitada
🧩 Conclusión
Ejecutar MongoDB en un VPS te brinda una flexibilidad inigualable, pero requiere prestar especial atención a la seguridad, las copias de seguridad y el rendimiento. Siguiendo esta guía, has creado una instancia de MongoDB segura y lista para producción, preparada para escalar a medida que tu aplicación crece.


