Amazon DocumentDB
Base de datos de documentos completamente administrada con API compatible con MongoDB que ejecuta de forma escalable el almacenamiento, consulta e indexación de documentos JSON
Descripción general
Amazon DocumentDB (with MongoDB compatibility) es un servicio de base de datos de documentos completamente administrado que ofrece API compatible con MongoDB 3.6/4.0/5.0. Almacena datos en formato de documentos JSON flexibles y proporciona capacidades de consulta e indexación ricas. La capa de almacenamiento se replica automáticamente 6 veces en 3 zonas de disponibilidad, logrando alta durabilidad y disponibilidad. Al separar la capa de cómputo de la capa de almacenamiento, permite escalar las réplicas de lectura de forma independiente, soportando cargas de trabajo de lectura intensiva.
Compatibilidad con MongoDB y límites de incompatibilidad
DocumentDB implementa el protocolo de cable de MongoDB, por lo que los drivers y herramientas existentes de MongoDB pueden conectarse tal cual. Sin embargo, no es una réplica completa de MongoDB; existen diferencias en funcionalidades específicas. Las principales incompatibilidades incluyen: el framework de agregación no soporta todos los operadores (como $graphLookup con restricciones), las transacciones multi-documento tienen limitaciones en el número de documentos, y el sharding del lado del servidor no está disponible (el escalado se realiza mediante réplicas de lectura). Para la migración desde MongoDB, es esencial ejecutar la herramienta de evaluación de compatibilidad para identificar las funcionalidades utilizadas que no son compatibles. Las aplicaciones que usan operaciones CRUD básicas y consultas de agregación simples pueden migrar con cambios mínimos, pero las que dependen de funcionalidades avanzadas de MongoDB (Change Streams con configuración compleja, operaciones $merge específicas) requieren modificaciones en el código de la aplicación.
Selección de clases de instancia y optimización de costos
DocumentDB ofrece dos modos de implementación: basado en instancias y Elastic Clusters. El modo basado en instancias selecciona clases de instancia (db.r5, db.r6g, db.t3, etc.) según los requisitos de memoria y CPU. Para entornos de producción se recomienda db.r6g (basado en Graviton2) por su mejor relación rendimiento/precio. El modo Elastic Clusters escala automáticamente la capacidad de cómputo y almacenamiento, siendo adecuado para cargas de trabajo con patrones de acceso impredecibles. Para optimización de costos, las instancias reservadas ofrecen descuentos de hasta el 50% respecto al precio bajo demanda. Además, detener los clústeres no utilizados (hasta 7 días) elimina los cargos de cómputo, siendo efectivo para entornos de desarrollo y pruebas. El almacenamiento se cobra por GB-mes, y los datos eliminados liberan espacio automáticamente.
Criterios de selección frente a DynamoDB
La elección entre DocumentDB y DynamoDB depende de los patrones de acceso a datos y los requisitos de consulta. DocumentDB es adecuado cuando se necesitan consultas complejas (agregaciones multi-etapa, búsqueda de texto completo, consultas geoespaciales) y esquemas flexibles con documentos anidados profundos. DynamoDB es óptimo para patrones de acceso por clave conocidos de antemano, requisitos de latencia de un solo dígito de milisegundos y escalado automático sin gestión de capacidad. En la práctica, muchas aplicaciones utilizan ambos servicios: DynamoDB para datos de sesión y perfiles de usuario con acceso por clave, y DocumentDB para catálogos de productos y contenido con consultas complejas. El costo también difiere: DocumentDB cobra por hora de instancia independientemente del uso, mientras que DynamoDB en modo bajo demanda cobra solo por las operaciones realizadas.