Amazon DynamoDB
Base de datos NoSQL totalmente gestionada, con latencia de milisegundos a cualquier escala.
En palabras simples
Es un casillero gigante: si sabes el número del casillero, abrirlo es instantáneo sin importar cuántos casilleros haya. Pero buscar "todos los casilleros con algo rojo adentro" es caro.
Cuándo aplicarlo
Cuando necesitas guardar y consultar datos con acceso predecible por clave —"dame el usuario X"— a alta velocidad y sin administrar servidores de base de datos.
- ▸Guardar sesiones de usuario o carritos de compra
- ▸Tablas de estado para aplicaciones serverless, junto a Lambda
- ▸Datos de alto volumen con lecturas y escrituras simples y muy frecuentes
- ▸Registro de asistencia a eventos del club
Vocabulario mínimo
- Partition key
- La clave principal por la que DynamoDB distribuye y localiza los datos. Elegirla mal es el error de diseño más común.
- Sort key
- Clave secundaria opcional que permite ordenar y filtrar dentro de una misma partition key.
- Item
- Un registro de la tabla. A diferencia de SQL, cada item puede tener atributos distintos.
- On-demand vs. Provisioned
- Dos modos de capacidad: pagar por petición realizada, o reservar capacidad fija por hora.
Costo y capa gratuita
- Cómo se cobra
- En modo on-demand, por lectura y escritura realizada. En modo provisioned, por capacidad reservada por hora. Más el almacenamiento por GB.
- Capa gratuita
- 25 GB de almacenamiento y 25 unidades de capacidad de lectura y escritura al mes, de forma permanente (no expira a los 12 meses).
Cuidado con los créditos
- ⚠Usar Scan en lugar de Query: Scan lee la tabla entera y se cobra por todo lo leído, no por lo que devuelve.
- ⚠Dejar capacidad provisionada alta después de una prueba de carga.
- ⚠Crear índices secundarios globales que no se usan: cada uno duplica el costo de escritura.
Descripción
DynamoDB es una base de datos NoSQL (clave-valor y documentos) completamente gestionada: no hay un servidor que administrar, ni versiones que actualizar, y escala automáticamente para soportar desde unas pocas consultas por segundo hasta millones.
A cambio de esa simplicidad operativa, pide que diseñes tus tablas pensando primero en cómo vas a consultarlas. No funciona como una base de datos relacional, donde modelas los datos y después escribes cualquier consulta que se te ocurra.
Cómo funciona
- Creas una tabla y defines su partition key (y opcionalmente una sort key).
- Insertas items: registros con los atributos que quieras, sin esquema fijo.
- Consultas con Query cuando conoces la clave — rápido y barato — o con Scan cuando no la conoces, que recorre toda la tabla y conviene evitar.
- DynamoDB reparte los datos internamente entre particiones sin que tú lo administres.
Manos a la obra
- Crea una tabla
AsistenciaEventoscon partition keyemaily sort keyfechaEvento. - Inserta tres items desde la consola.
- Haz un Query por un email concreto y observa lo rápido y barato que resulta.
- Haz un Scan con un filtro y compara las unidades de lectura consumidas: esa diferencia es la lección más importante del servicio.
Ejemplo visual
La clave del diseño está en la tabla: con email como partition key y fechaEvento como sort key,
consultar «a qué eventos vino esta persona» es un Query barato. Sin esa decisión, sería un Scan.
Cuándo NO es la mejor opción
- Amazon RDS — si tus datos tienen relaciones complejas y necesitas consultas flexibles tipo SQL con joins y agregaciones.
- Amazon S3 — si en realidad estás guardando archivos completos y no registros que se consultan por clave.
Se usa junto con
Aparece en certificaciones
- AWS Certified Cloud Practitioner
- AWS Certified Solutions Architect – Associate
- AWS Certified Developer – Associate