Módulo 8 · Bases de datos/Lección 51
DynamoDB
Una base NoSQL de llave y valor, serverless y con respuesta en milisegundos a cualquier escala.
Amazon DynamoDB es una base NoSQL de llave-valor y documentos, totalmente administrada y serverless. No eliges instancias ni discos: creas una tabla y empiezas a escribir. Responde en milisegundos de un solo dígito tanto con mil datos como con miles de millones, y es la base por defecto de muchas aplicaciones serverless.
Tablas, ítems y llaves
Un ejemplo: una tabla de pedidos con cliente_id como llave de partición y fecha como llave de ordenamiento. Así, «los pedidos de este cliente en noviembre» es una sola consulta rápida.
| cliente_id (partition key) | fecha (sort key) | total | estado |
|---|---|---|---|
| C-1001 | 2026-11-02 | 84000 | entregado |
| C-1001 | 2026-11-08 | 23500 | en camino |
| C-2040 | 2026-10-30 | 150000 | entregado |
Vista simplificada para estudiar. Los nombres de los campos están en inglés, como en la consola real; el diseño de la consola cambia con el tiempo.
Elegir bien la llave de partición importa: si casi todo el tráfico va a una sola llave (por ejemplo, todo el mundo escribe en fecha=hoy), esa partición se calienta. Una buena llave reparte las peticiones entre muchos valores.
Capacidad: bajo demanda o aprovisionada
| Criterio | ||
|---|---|---|
| Cómo funciona | Pagas por cada lectura y escritura que haces | Defines cuántas lecturas y escrituras por segundo reservas |
| Planeación | Ninguna: se adapta sola al tráfico | Tienes que estimar la carga |
| Escalar | Automático | Con auto scaling, que ajusta la capacidad entre un mínimo y un máximo |
| Conviene si | El tráfico es nuevo, impredecible o con picos fuertes | El tráfico es estable y predecible |
Las funciones que más se usan
Global tables
Réplicas de la tabla en varias regiones. Cada región lee y escribe localmente y los cambios se propagan a las demás.DynamoDB Accelerator (DAX)
Una caché en memoria delante de la tabla, compatible con la misma API. Lleva las lecturas de milisegundos a microsegundos.DynamoDB Streams
Un registro ordenado de cada cambio en la tabla. Típicamente dispara una función Lambda que reacciona al cambio.Time to Live (TTL)
Marcas cada ítem con una fecha de vencimiento y DynamoDB lo borra solo, sin costo de escritura. Ideal para sesiones y datos temporales.
Además, DynamoDB cifra todo en reposo por defecto, ofrece respaldos bajo demanda y recuperación a un momento exacto, y se controla con IAM. No vive en tu VPC: se llega a ella por su endpoint público o por un Gateway Endpoint (ver Tablas de rutas, gateways y NAT).
Cuándo no usarla
DynamoDB brilla cuando conoces tus consultas de antemano y casi siempre buscas por llave. Se vuelve incómoda cuando necesitas:
- Joins entre muchas entidades o reportes que cruzan tablas.
- Consultas ad hoc que cambian cada semana («todos los clientes que…»).
- Analítica sobre toda la tabla. Para eso se exportan los datos a S3 y se consultan con Athena o Redshift.
En esos casos, una base relacional (RDS o Aurora) suele ser mejor elección.
Quiz
Pon a prueba lo que aprendiste
0 de 5 correctas · 5 sin responder
1.Una app móvil necesita una base NoSQL serverless que responda en milisegundos con millones de usuarios. ¿Qué elige?
2.Una tienda lanza un producto nuevo y no sabe cuánto tráfico tendrá. ¿Qué modo de capacidad de DynamoDB conviene?
3.Las lecturas de una tabla DynamoDB deben bajar a microsegundos sin cambiar el código de acceso. ¿Qué usas?
4.¿Qué función de DynamoDB borra automáticamente las sesiones vencidas?
5.¿En qué caso DynamoDB NO es la mejor elección?