Base de datos compatible con MongoDB con Amazon DocumentDB - Patrones de diseño y escalado
Seleccione clases de instancia en DocumentDB compatible con MongoDB y asegure la escalabilidad con sharding mediante Elastic Clusters. También presentamos estrategias de backup.
Características de DocumentDB y diferencias con MongoDB
DocumentDB es una base de datos de documentos administrada que proporciona una API compatible con MongoDB. Se pueden usar directamente los drivers de MongoDB, ODMs (como Mongoose) y herramientas de administración (mongosh, Compass). Sin embargo, la arquitectura interna difiere de MongoDB, adoptando un motor de almacenamiento similar al de Aurora. El almacenamiento replica automáticamente 6 copias en 3 AZ y se expande automáticamente en unidades de 10 GB hasta un máximo de 128 TiB. El mayor beneficio es que se elimina la necesidad de gestionar la operación de replica sets y sharding de MongoDB. Por otro lado, algunas funciones de MongoDB (cifrado a nivel de campo del lado del cliente, algunos patrones de $graphLookup, etc.) no están soportadas, por lo que es necesario verificar la compatibilidad antes de la migración.
Diseño de instancias y escalado
La clase de instancia estándar para DocumentDB es db.r6g (optimizada para memoria, Graviton2). La instancia primaria procesa las escrituras y hasta 15 réplicas de lectura distribuyen las lecturas. Las réplicas de lectura también funcionan como objetivos de failover, promoviéndose automáticamente en caso de fallo del primario. Para cargas de trabajo a gran escala se utilizan Elastic Clusters. Elastic Clusters distribuyen automáticamente los datos basándose en la clave de shard, soportando datos a escala de petabytes y rendimiento de millones de operaciones por segundo. La selección de la clave de shard impacta directamente en el rendimiento, por lo que es importante elegir un campo con alta cardinalidad que coincida con los patrones de consulta.
Backup y alta disponibilidad
DocumentDB toma automáticamente backups continuos en S3, con restauración point-in-time disponible a cualquier segundo dentro de un máximo de 35 días. Los snapshots manuales se pueden almacenar sin límite de período de retención, y la copia entre regiones permite DR. En despliegues multi-AZ, el primario y las réplicas de lectura se colocan en diferentes AZ, y el failover ante fallo de AZ se completa normalmente en menos de 30 segundos. Al usar clústeres globales, se pueden colocar réplicas de lectura en hasta 5 regiones y promover una réplica de otra región a primario en caso de fallo regional. El lag de replicación es normalmente inferior a 1 segundo. Para conocimientos prácticos sobre MongoDB, también puede consultar libros relacionados en Amazon.
Precios de DocumentDB
Los precios de DocumentDB se componen de horas de instancia, almacenamiento e I/O. db.r6g.large cuesta aproximadamente 0.277 dólares por hora (aproximadamente 199 dólares mensuales). El almacenamiento cuesta aproximadamente 0.10 dólares por GB al mes, y el I/O en clústeres Standard aproximadamente 0.20 dólares por millón de solicitudes. Los clústeres I/O-Optimized tienen un precio de almacenamiento aproximadamente 25% mayor pero sin cargo de I/O, reduciendo el costo total para cargas de trabajo con alta carga de I/O. Elastic Clusters (sharding) cuestan aproximadamente 0.1386 dólares por hora de vCPU y escalan según el número de shards.
Resumen
DocumentDB es un servicio para operar bases de datos de documentos de forma administrada con API compatible con MongoDB. Logra alta durabilidad y disponibilidad con un motor de almacenamiento basado en Aurora, y también soporta cargas de trabajo a gran escala con Elastic Clusters. La verificación previa de compatibilidad es importante al migrar desde MongoDB, pero reduce significativamente la carga de gestión operativa.