Amazon DynamoDB Accelerator icono

Amazon DynamoDB Accelerator Especializadodesde 2017

Un servicio de caché en memoria para DynamoDB que proporciona latencia de lectura a nivel de microsegundos

Qué hace

Amazon DynamoDB Accelerator (DAX) es un servicio de caché en memoria completamente administrado y altamente disponible para DynamoDB. Proporciona tiempos de respuesta de microsegundos para lecturas, incluso con millones de solicitudes por segundo. DAX es compatible con la API de DynamoDB, por lo que puedes añadirlo a aplicaciones existentes con cambios mínimos de código. Maneja automáticamente la invalidación de caché y la replicación.

Casos de uso

Se utiliza para aplicaciones que requieren latencia de lectura ultra-baja (juegos en tiempo real, trading, ad-tech), reducir costos de DynamoDB al absorber lecturas repetitivas en caché, manejar picos de tráfico de lectura sin aprovisionar capacidad adicional en DynamoDB, y acelerar consultas de datos que se leen con mucha más frecuencia de la que se escriben.

Analogía cotidiana

Piensa en él como la memoria a corto plazo de un bibliotecario. Cuando muchas personas preguntan por el mismo libro (dato), en lugar de ir al almacén (DynamoDB) cada vez, el bibliotecario (DAX) recuerda dónde está y responde instantáneamente. Solo va al almacén cuando alguien pregunta por algo nuevo o cuando la información cambia.

¿Qué es Amazon DAX?

Amazon DAX es una capa de caché en memoria diseñada específicamente para DynamoDB. Mientras que DynamoDB proporciona latencias de milisegundos de un solo dígito, DAX reduce esto a microsegundos para lecturas en caché. Es completamente administrado: AWS gestiona el aprovisionamiento, parcheo, replicación y recuperación de fallos del clúster de caché.

Cómo funciona el caché

DAX mantiene dos cachés: el item cache (resultados de GetItem y BatchGetItem) y el query cache (resultados de Query y Scan). Cuando tu aplicación lee un dato, DAX lo busca primero en caché. Si está (cache hit), responde en microsegundos. Si no está (cache miss), lee de DynamoDB, almacena el resultado en caché y responde. Las escrituras pasan directamente a DynamoDB y actualizan el caché.

Configuración del clúster

Un clúster DAX consiste en uno o más nodos. Para producción, se recomiendan al menos 3 nodos en diferentes zonas de disponibilidad para alta disponibilidad. El tipo de nodo determina la memoria disponible para caché. El TTL (Time to Live) controla cuánto tiempo permanecen los datos en caché antes de ser invalidados. Para más detalles sobre la configuración, los libros en Amazon son útiles.

Cómo empezar

Crea un clúster DAX en la consola, seleccionando el tipo de nodo y el número de nodos. Configura el grupo de subredes (DAX debe estar en la misma VPC que tu aplicación). Modifica tu código para usar el cliente DAX en lugar del cliente DynamoDB estándar (el SDK de DAX es compatible con la API de DynamoDB). Las lecturas se servirán automáticamente desde caché.

Aspectos a tener en cuenta

  • El clúster de DAX debe ubicarse dentro de una VPC, así que para usarlo desde Lambda coloque la función Lambda en la misma VPC
  • En cargas de trabajo con muchas escrituras el efecto de DAX es limitado. Rinde al máximo en cargas de trabajo con muchas lecturas
  • DAX se cobra por instancia (por horas), así que, al igual que ElastiCache, tenga en cuenta que el costo se genera de forma continua
CompartirXB!