Amazon DynamoDB es un servicio de base de datos NoSQL completamente gestionado que proporciona un rendimiento rápido y predecible con escalabilidad automática. DynamoDB permite a los desarrolladores crear aplicaciones que requieren tiempos de respuesta de milisegundos en cualquier escala, y soporta tanto modelos de datos de documentos como de clave-valor.
Características principales de Amazon DynamoDB
1. Rendimiento y escalabilidad
- Rendimiento de milisegundos a cualquier escala: DynamoDB ofrece tiempos de respuesta de un solo dígito en milisegundos y la capacidad de escalar automáticamente a través del uso de tablas y particiones distribuidas.
- Escalabilidad automática: Mediante el uso de AWS Auto Scaling, DynamoDB ajusta automáticamente su capacidad para mantener el rendimiento en niveles óptimos mientras mantiene los costos controlados.
2. Modelo de datos flexible
- Soporta tanto un modelo de clave-valor como un modelo de documentos, permitiendo a los desarrolladores elegir el esquema que mejor se adapte a sus necesidades sin necesidad de predefinir esquemas rígidos.
3. Durabilidad y disponibilidad
- Almacenamiento replicado en varias zonas de disponibilidad: DynamoDB automáticamente replica los datos a través de tres zonas de disponibilidad en una región AWS para asegurar la alta disponibilidad y la durabilidad de los datos.
4. Seguridad
- Cifrado en reposo y en tránsito: Ofrece cifrado integrado de los datos en reposo y en tránsito, utilizando AWS KMS (AWS Key Management Service) para manejar la encriptación y desencriptación de manera transparente.
- Control de acceso fino: Utiliza AWS IAM para controlar el acceso a la base de datos, permitiendo especificar quién puede acceder y qué operaciones están permitidas.
5. Desarrollo simplificado
- Integración con AWS Lambda: Permite a los desarrolladores disparar funciones en AWS Lambda en respuesta a cambios en los datos en tiempo real.
- Indexación flexible: Puedes crear índices secundarios para mejorar la eficiencia de las consultas, eligiendo entre índices secundarios globales o locales dependiendo de las necesidades específicas de consulta.
6. Gestión del rendimiento de consultas
- DAX (DynamoDB Accelerator): Es un caché en memoria totalmente gestionado que proporciona tiempos de respuesta aún más rápidos (microsegundos) para acceder a los datos de DynamoDB.
7. Soporte para transacciones
- Soporta transacciones ACID para agrupar múltiples operaciones en una sola, lo cual es útil para aplicaciones que necesitan leer y escribir en múltiples elementos como parte de una única operación lógica y coherente.
Casos de uso comunes