Amazon DynamoDB Accelerator Especializado2017年〜
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
- DAX クラスターは VPC 内に配置する必要があるため、Lambda から利用する場合は Lambda を同じ VPC に配置すること
- 書き込みが多いワークロードでは DAX の効果が限定的。読み取りが多いワークロードで最も効果を発揮する
- DAX はインスタンスベースの課金 (時間単位) のため、ElastiCache と同様にコストが常時発生する点に注意