July 31, 2025

DocumentDB

📘 ¿Qué es Amazon DocumentDB?

Amazon DocumentDB es un servicio de base de datos de documentos gestionada diseñado para ejecutar cargas de trabajo que usan MongoDB. AWS ofrece compatibilidad con las APIs de MongoDB, pero con un backend propietario optimizado para rendimiento, escalabilidad y disponibilidad.

  • ⚙️ Servicio gestionado: backups automáticos, escalado, parches, replicación.

  • 📄 Soporta documentos JSON estilo MongoDB.

  • 🔄 Compatible con controladores y herramientas de MongoDB (mongo shell, Mongoose, etc.).


🔍 Características clave

CaracterísticaDescripción
Compatibilidad MongoDBCompatible con versiones 3.6, 4.0 y 5.0 (no 100% igual).
Alta disponibilidadArquitectura con almacenamiento distribuido en 3 AZs.
EscaladoEscalado vertical y hasta 15 réplicas de lectura.
BackupsAutomáticos, con retención configurable hasta 35 días.
SeguridadVPC, TLS en tránsito, KMS para cifrado en reposo.
MonitoreoIntegración con CloudWatch y logs de auditoría.

🧱 Arquitectura de DocumentDB

  • Separación entre capa de cómputo y almacenamiento (diseño similar a Aurora).

  • Tres copias de datos replicadas automáticamente en diferentes zonas de disponibilidad.

  • Escritorio principal (writer) + hasta 15 réplicas (readers).

  • Acceso a través de endpoint de clúster, o individual por nodo.


🛠️ Creación desde AWS Console o CLI

Vía consola:

  1. Ir a Amazon DocumentDB > “Create cluster”

  2. Elegir engine (ej: MongoDB 5.0)

  3. Elegir instancia, tamaño, réplica, configuración de red/VPC

  4. Habilitar backups, logging, etc.

Vía AWS CLI:

aws docdb create-db-cluster \
  --db-cluster-identifier docdb-cluster \
  --engine docdb \
  --master-username admin \
  --master-user-password clave123 \
  --vpc-security-group-ids sg-xxxxx
aws docdb create-db-instance \
  --db-instance-identifier docdb-instancia1 \
  --db-cluster-identifier docdb-cluster \
  --engine docdb \
  --db-instance-class db.r5.large

🧑‍💻 Conexión desde cliente MongoDB

Amazon DocumentDB requiere:

  1. Conexión segura por TLS

  2. Estar dentro del VPC (o usar EC2 Bastion host)

  3. Usar la cadena de conexión con formato:

mongo "mongodb://admin:<password>@docdb-cluster-endpoint:27017/?tls=true&tlsCAFile=rds-combined-ca-bundle.pem"

🔐 El archivo rds-combined-ca-bundle.pem es necesario para TLS, descargable desde AWS.


📚 Compatibilidad con MongoDB

FuncionalidadSoportado en DocumentDB
Operaciones CRUD
Agregaciones básicas
Índices
Transacciones multi-doc❌ (limitado)
Change Streams✅ (desde MongoDB 4.0)
MongoDB Shell (mongo)
Mongoose✅ (dependiendo del uso)
Triggers / Stored JS

🛡️ Seguridad

  • VPC: Solo accesible desde la red privada de AWS.

  • Grupos de seguridad: Controlan acceso por IP/puerto.

  • Cifrado en reposo: Activado con KMS.

  • TLS en tránsito: Requiere certificados CA.

  • IAM Authentication: No disponible aún (solo usuario/password).


🔄 Backups y recuperación

  • Automáticos: Activados por defecto, retención hasta 35 días.

  • Snapshots manuales: Se pueden crear/restaurar desde consola o CLI.

  • Point-in-time recovery (PITR): Recuperación a un punto exacto dentro del período de retención.


📈 Monitoreo y logs

  • CloudWatch Metrics: CPU, uso de almacenamiento, conexiones activas, etc.

  • Logs: Se pueden publicar en CloudWatch Logs (audit, profiler, slow query).

  • Eventos: Notificaciones mediante EventBridge o SNS.


💵 Precios

Se paga por:

  • Instancias (por hora según tipo y tamaño)

  • Almacenamiento utilizado (GB/mes)

  • Backups adicionales

  • Transferencia de datos (salida de la VPC)

💡 DocumentDB puede ser más costoso que MongoDB en EC2 o ECS, pero ofrece facilidad de operación y mantenimiento.


🎯 Casos de uso

  • Aplicaciones que usan MongoDB pero necesitan alta disponibilidad y escalabilidad.

  • Migración de MongoDB on-premise a AWS.

  • Almacenamiento de catálogos, usuarios, perfiles, contenido JSON semi-estructurado.

  • Aplicaciones web con Node.js y Mongoose.


🔁 Comparación con otros servicios

ServicioTipoComentario
DocumentDBNoSQL documentalAlta compatibilidad MongoDB, gestión total AWS
DynamoDBNoSQL clave-valorMás rápido y serverless, pero con API propietaria
RDS MySQLRelacionalSQL tradicional, no soporta documentos JSON complejos
MongoDB AtlasNoSQL documentalGestión por MongoDB Inc., más compatibilidad y features

🎓 Preguntas tipo certificación

  1. ¿Cuál es el protocolo de conexión de DocumentDB?

    • ✅ Compatible con protocolo MongoDB
  2. ¿DocumentDB permite ejecución de código JavaScript (stored procedures)?

    • ❌ No
  3. ¿Puedes acceder a DocumentDB desde Internet público?

    • ❌ No, solo dentro del VPC o vía bastion/EC2
  4. ¿DocumentDB escala automáticamente el almacenamiento?

    • ✅ Sí, hasta 64 TB