Ahorre 15% en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código: Skills Comenzar
Secciones
Administración Linux Servidores virtuales

Cómo Instalar y Configurar MongoDB en un VPS (Guía Completa 2024)

MongoDB es una de las bases de datos NoSQL más adoptadas en el mundo — y con razón. Su modelo de documento flexible, rendimiento de lectura/escritura de alto rendimiento, y escalabilidad horizontal nativa la convierten en la opción preferida para APIs modernas, plataformas SaaS, CRMs, motores de comercio electrónico, y aplicaciones intensivas en datos. A diferencia de los servicios de bases de datos en la nube administrados, ejecutar MongoDB en tu propio VPS Hosting te da control completo sobre la optimización del rendimiento, el endurecimiento de la seguridad, y los costos a largo plazo.

Esta guía te acompaña a través de una instalación de MongoDB Community Edition 8.0 de grado de producción en un VPS Linux — cubriendo la configuración del repositorio oficial para Debian 12 y Ubuntu LTS, gestión de servicios, creación de usuarios y bases de datos, endurecimiento de seguridad (autenticación, vinculación de red, reglas de firewall), estrategias de copia de seguridad, y pasos comunes de solución de problemas. Ya sea que estés lanzando tu primera aplicación o migrando una carga de trabajo existente, esta guía pone MongoDB funcionando de manera confiable desde el primer día.

1. Requisitos previos

Antes de comenzar, asegúrate de que se cumplan las siguientes condiciones:

RequisitoDetalles
Acceso VPSAcceso SSH a nivel root o sudo
Sistema operativoDebian 12 (Bookworm) de 64 bits o Ubuntu 22.04/24.04 LTS
RAMMínimo 1 GB; se recomienda 2 GB+ para producción
AlmacenamientoSe recomienda encarecidamente almacenamiento respaldado por SSD
FirewallUFW o iptables disponibles

> Importante: MongoDB 8.0 soporta oficialmente Debian 12 y versiones LTS de Ubuntu. Siempre instala desde los repositorios oficiales de MongoDB — nunca uses el paquete mongodb incluido en tu distribución Linux, ya que está desactualizado, no tiene soporte y puede entrar en conflicto con el paquete oficial mongodb-org.

Si aún no tienes un servidor, los planes de VPS Hosting de AlexHost ofrecen instancias VPS Linux respaldadas por SSD en infraestructura de alto rendimiento — ideales para ejecutar cargas de trabajo de bases de datos en producción.

Actualiza tu sistema primero

Siempre comienza con un sistema completamente actualizado:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Instalar MongoDB en Debian 12 (Bookworm)

MongoDB no está disponible en los repositorios predeterminados de Debian, por lo que debe agregar el repositorio oficial de MongoDB APT manualmente.

Paso 1 — Importar la clave de firma GPG de MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Esto descarga y almacena la clave GPG utilizada para verificar la integridad del paquete. Sin este paso, APT se negará a instalar paquetes del repositorio de MongoDB.

Paso 2 — Agregar el repositorio oficial de MongoDB

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Paso 3 — Instalar MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT ahora extraerá la última versión de MongoDB 8.0 directamente desde el CDN oficial de MongoDB.

3. Instalar MongoDB en Ubuntu LTS (24.04 / 22.04)

El proceso es casi idéntico a Debian, pero la URL del repositorio difiere según el nombre de código de Ubuntu.

Paso 1 — Importar la clave de firma GPG de MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Paso 2 — Agregar el repositorio para su versión de Ubuntu

Ubuntu 24.04 (Noble Numbat):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Paso 3 — Instalar MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

4. Iniciar y Habilitar el Servicio MongoDB

Una vez instalado, utiliza systemctl para iniciar MongoDB y configurarlo para que se lance automáticamente al reiniciar el servidor.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

¿Por qué daemon-reload?

La documentación oficial de MongoDB recomienda específicamente ejecutar systemctl daemon-reload antes de iniciar el servicio. Si omites este paso y ves el error "Unit mongod.service not found", ejecuta daemon-reload primero — fuerza a systemd a releer los archivos de unidad desde el disco.

Salida Esperada

Un servicio MongoDB saludable mostrará una salida similar a:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Si el estado muestra failed o inactive, ve a la sección Solución de Problemas.

5. Crear Bases de Datos y Usuarios

MongoDB no aplica autenticación por defecto después de una instalación nueva. Esto significa que debes crear tu usuario administrador y usuarios de aplicación antes de habilitar la autenticación — de lo contrario, corres el riesgo de bloquearte a ti mismo.

Abrir el Shell de MongoDB

Conectarse a MongoDB localmente en el VPS:

mongosh

Paso 1 — Crear un Usuario Administrativo

Cambiar a la base de datos admin y crear una cuenta de administrador privilegiada:

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Consejo de seguridad: Reemplaza STRONG_PASSWORD_HERE con una contraseña generada aleatoriamente de al menos 20 caracteres. Usa un gestor de contraseñas o ejecuta openssl rand -base64 24 en tu servidor para generar una.

Paso 2 — Crear una Base de Datos de Aplicación y Usuario

Crear una base de datos dedicada y un usuario con privilegios mínimos limitado solo a esa base de datos:

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Esto sigue el principio del menor privilegio — tu aplicación solo tiene acceso de lectura/escritura a su propia base de datos, no a toda la instancia de MongoDB.

Paso 3 — Verificar que los Usuarios Fueron Creados

use admin
db.getUsers()

Salir del shell:

exit

6. Asegura tu instancia de MongoDB

Esta es la sección más crítica de la guía. Las instancias de MongoDB mal configuradas expuestas a internet público han sido responsables de numerosas brechas de datos de alto perfil. La propia lista de verificación de seguridad de MongoDB es explícita: refuerza tu instancia antes de exponerla a cualquier red.

A) Vincula MongoDB solo a Localhost (Recomendado por defecto)

Por defecto, MongoDB puede escuchar en todas las interfaces de red. Restrínguelo a localhost a menos que tenga una necesidad específica y justificada de acceso remoto.

Edita /etc/mongod.conf:

net:
  bindIp: 127.0.0.1

Aplica el cambio:

sudo systemctl restart mongod

Esto asegura que MongoDB solo sea accesible desde el servidor mismo — no desde internet público.

B) Habilita la autenticación

Sin autenticación habilitada, cualquier proceso local puede conectarse a MongoDB sin contraseña. Edita /etc/mongod.conf:

security:
  authorization: enabled

Reinicia el servicio:

sudo systemctl restart mongod

Ahora prueba que la autenticación se aplique:

mongosh -u admin -p --authenticationDatabase admin

C) Configura el Firewall

Si necesitas permitir conexiones remotas (por ejemplo, desde un servidor de aplicaciones en una máquina diferente), restringe el puerto 27017 solo a una dirección IP confiable específica. Nunca abras el puerto 27017 a 0.0.0.0/0.

Usando UFW:

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Verifica que la regla esté activa:

sudo ufw status verbose

D) Usa SSH Tunneling para acceso remoto seguro (Mejor práctica)

La forma más segura de acceder a MongoDB de forma remota es a través de un túnel SSH. Esto evita abrir el puerto 27017 completamente y cifra todo el tráfico en tránsito.

Desde tu máquina local:

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Luego conecta desde tu shell de MongoDB local como si fuera local:

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Este enfoque se recomienda fuertemente para desarrolladores que acceden a bases de datos de producción desde laptops o estaciones de trabajo remotas.

Resumen de endurecimiento de seguridad

Medida de seguridadUbicación de configuraciónPrioridad
Vincula solo a localhost/etc/mongod.confnet.bindIpCrítica
Habilita autenticación/etc/mongod.confsecurity.authorizationCrítica
Restricción de puerto del firewallUFW / iptablesAlta
SSH tunnel para acceso remotoConfiguración SSH del clienteAlta
Usa usuarios de BD con privilegios mínimosmongoshdb.createUser()Alta
Mantén MongoDB actualizadoapt-get upgrade mongodb-orgMedia

7. Copia de seguridad y restauración

Las copias de seguridad regulares son imprescindibles para cualquier base de datos de producción. MongoDB incluye mongodump y mongorestore como parte del paquete MongoDB Database Tools.

Crear un archivo de copia de seguridad comprimido

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Esto crea un único archivo comprimido que contiene un volcado lógico de todas las bases de datos.

Restaurar desde un archivo de copia de seguridad

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Automatizar copias de seguridad con Cron

Programa copias de seguridad diarias usando cron:

crontab -e

Añade la siguiente línea para ejecutar una copia de seguridad cada día a las 2:00 AM:

0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip

> Consejo profesional: Para redundancia fuera del sitio, considera sincronizar archivos de copia de seguridad a una ubicación de almacenamiento externo usando rsync o rclone. Nunca almacenes tu única copia de seguridad en el mismo servidor que tu base de datos.

8. Solución de problemas comunes

Verificar registros de servicio

El primer lugar donde buscar cuando MongoDB no se inicia o se comporta de manera inesperada:

sudo journalctl -u mongod --no-pager -n 200

Esto muestra las últimas 200 líneas del journal de systemd de MongoDB — generalmente suficiente para identificar la causa raíz.

Verificar que MongoDB esté escuchando en el puerto esperado

sudo ss -lntp | grep 27017

Salida esperada si MongoDB se está ejecutando y está vinculado a localhost:

LISTEN  0  128  127.0.0.1:27017  0.0.0.0:*  users:(("mongod",...))

Si no hay salida, MongoDB no se está ejecutando o está vinculado a una interfaz diferente.

Verificar la versión instalada de MongoDB

mongod --version

Mensajes de error comunes y soluciones

ErrorCausa probableSolución
Unit mongod.service not foundsystemd no ha cargado el archivo de unidadEjecutar sudo systemctl daemon-reload
Address already in useEl puerto 27017 está ocupado por otro procesoEjecutar `sudo ss -lntpgrep 27017` para identificar el conflicto
Authentication failedCredenciales incorrectas o authSource incorrectoVerificar nombre de usuario, contraseña y authenticationDatabase
Connection refusedMongoDB no se está ejecutando o está vinculado a IP incorrectaVerificar bindIp en mongod.conf y estado del servicio
mongod.conf permission deniedProblema de permisos de archivoEjecutar sudo chmod 600 /etc/mongod.conf

9. Reflexiones Finales

Ejecutar MongoDB en un VPS es un enfoque probado y rentable para cargas de trabajo de producción que demandan flexibilidad, rendimiento y control total de la infraestructura. Siguiendo esta guía, has instalado MongoDB 8.0 desde repositorios oficiales, configurado autenticación y vinculación de red, creado usuarios de base de datos con privilegios mínimos, establecido reglas de firewall y creado una rutina de copias de seguridad.

Algunos puntos clave a recordar:

  • Siempre habilita la autenticación — una instancia de MongoDB sin autenticación es una vulnerabilidad de seguridad crítica.
  • Nunca expongas el puerto 27017 a Internet público — utiliza túneles SSH o restringe el acceso a IPs específicas de confianza.
  • Mantén MongoDB actualizado — ejecuta sudo apt-get upgrade mongodb-org regularmente para recibir parches de seguridad.
  • Prueba tus copias de seguridad — una copia de seguridad que nunca has restaurado es una copia de seguridad en la que no puedes confiar.

Para equipos que necesitan una base confiable y de alto rendimiento para implementaciones de MongoDB, el VPS Hosting de AlexHost proporciona almacenamiento SSD NVMe, acceso root completo y escalado flexible de recursos. Si tu carga de trabajo crece más allá de un único VPS, los Servidores Dedicados ofrecen recursos de CPU y RAM dedicados sin efectos de vecino ruidoso — ideales para conjuntos de réplicas MongoDB de alto tráfico o clústeres fragmentados.

¿Necesitas una pila de hosting completa? Combina tu VPS de base de datos con Hosting Web Compartido para tu front-end o activos estáticos, y asegura el tráfico de tu aplicación con un Certificado SSL para proteger los datos en tránsito entre tus usuarios y tus servidores.

*Última actualización para MongoDB Community Edition 8.0 en Debian 12 (Bookworm) y Ubuntu 22.04/24.04 LTS.*