Saltar al contenido
aprendeaws.dev

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.

Al terminar podrás

  • →Explicar tablas, ítems, llave de partición y llave de ordenamiento
  • →Elegir entre capacidad bajo demanda y aprovisionada
  • →Reconocer cuándo DynamoDB es la elección correcta

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

ConceptoEn DynamoDB
La pared de casillerosTablaNo tiene esquema fijo, salvo la llave
La ficha dentro del casilleroÍtemUn registro. Cada ítem puede tener atributos distintos
Cada dato de la fichaAtributoTexto, número, listas, mapas (como JSON)
El número de la fila de casillerosLlave de partición (partition key)Obligatoria. Decide dónde se guarda el ítem
La posición dentro de la filaLlave de ordenamiento (sort key)Opcional. Ordena los ítems que comparten partición

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.

DynamoDB › Tables › pedidos › Explore items
Items returned
cliente_id (partition key)fecha (sort key)totalestado
C-10012026-11-0284000entregado
C-10012026-11-0823500en camino
C-20402026-10-30150000entregado
Los dos pedidos de C-1001 viven juntos y ordenados por fecha.

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

CriterioBajo demanda (on-demand)Aprovisionada (provisioned)
Cómo funcionaPagas por cada lectura y escritura que hacesDefines cuántas lecturas y escrituras por segundo reservas
PlaneaciónNinguna: se adapta sola al tráficoTienes que estimar la carga
EscalarAutomáticoCon auto scaling, que ajusta la capacidad entre un mínimo y un máximo
Conviene siEl tráfico es nuevo, impredecible o con picos fuertesEl 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. 1.Una app móvil necesita una base NoSQL serverless que responda en milisegundos con millones de usuarios. ¿Qué elige?

  2. 2.Una tienda lanza un producto nuevo y no sabe cuánto tráfico tendrá. ¿Qué modo de capacidad de DynamoDB conviene?

  3. 3.Las lecturas de una tabla DynamoDB deben bajar a microsegundos sin cambiar el código de acceso. ¿Qué usas?

  4. 4.¿Qué función de DynamoDB borra automáticamente las sesiones vencidas?

  5. 5.¿En qué caso DynamoDB NO es la mejor elección?