Qué es
Amazon ElastiCache es un almacén de datos en memoria totalmente gestionado, compatible con Valkey, Redis OSS (Open Source Software: la versión de código abierto) y Memcached. Se coloca delante de una base de datos o de un cálculo costoso para servir los datos frecuentes en microsegundos, o se usa directamente como almacén rápido de sesiones, colas o clasificaciones. Puedes crearlo sin servidor (ElastiCache Serverless, que escala solo) o como clúster de nodos que dimensionas tú.
Conceptos clave
- Valkey / Redis OSS: estructuras de datos ricas (hashes, listas, conjuntos ordenados, streams), persistencia con instantáneas, replicación, Multi-AZ con conmutación automática, pub/sub y transacciones. Valkey es la bifurcación de código abierto de Redis que AWS promueve y resulta más barata.
- Memcached: caché simple de clave-valor, multihilo, sin replicación ni persistencia. Si un nodo cae, sus datos se pierden.
- Modo clúster (Valkey/Redis OSS): reparte los datos en varios shards, cada uno con una primaria y hasta 5 réplicas, para escalar escrituras y memoria. Sin modo clúster hay un único shard.
- Serverless: sin elegir tipos de nodo; escala según la demanda y guarda los datos de forma redundante en varias zonas sin configurar nada.
- Patrones de caché:
- Lazy loading (cache-aside): la aplicación consulta la caché; si falla, lee la base de datos y guarda el resultado. Solo se cachea lo que se pide, pero el primer acceso es lento y los datos pueden quedar obsoletos.
- Write-through: al escribir en la base de datos también se actualiza la caché. Datos siempre frescos, a costa de cachear cosas que quizá nadie lea.
- TTL (Time To Live: tiempo de vida antes de caducar): caducidad de las claves para limitar datos obsoletos y memoria.
- Global Datastore (Valkey/Redis OSS): réplicas en otras regiones para lecturas locales y recuperación ante desastres.
Casos de uso típicos
- Cachear resultados de consultas a RDS (Relational Database Service) o Aurora y reducir su carga.
- Guardar sesiones de usuario para que las instancias web no tengan estado.
- Clasificaciones de juegos con conjuntos ordenados.
- Limitación de peticiones (rate limiting) y contadores.
- Caché semántica de respuestas de modelos de IA (inteligencia artificial) generativa, con búsqueda vectorial en Valkey.
Cuándo NO usarlo
- Como almacén principal y duradero de datos críticos: una base de datos (o MemoryDB, que es duradera y compatible con Valkey/Redis OSS).
- Para acelerar solo lecturas de DynamoDB sin cambiar el código: DAX (DynamoDB Accelerator: caché en memoria para DynamoDB).
- Para contenido estático en el borde, cerca del usuario: CloudFront.
Valkey/Redis OSS frente a Memcached
| Necesidad | Valkey / Redis OSS | Memcached |
|---|---|---|
| Alta disponibilidad y réplicas | Sí (Multi-AZ, conmutación automática) | No |
| Persistencia y copias | Sí (instantáneas) | No |
| Estructuras de datos complejas | Sí | Solo cadenas |
| Pub/sub, transacciones | Sí | No |
| Multihilo, caché simple | — | Sí |
Modelo de precios
En Serverless se paga por los datos almacenados (GB-hora) y por las unidades de procesamiento consumidas (ECPU). En clústeres de nodos, por hora de cada nodo según su tipo, con nodos reservados de 1 o 3 años. Aparte, las copias de seguridad y la transferencia de datos entre zonas o regiones. Valkey tiene un precio menor que Redis OSS.
Seguridad y alta disponibilidad
- Solo accesible dentro de la VPC (Virtual Private Cloud), con security groups.
- Cifrado en tránsito (TLS) y en reposo con KMS (Key Management Service); autenticación con usuarios y RBAC (Role-Based Access Control: permisos según el rol), AUTH o IAM (Identity and Access Management) en Valkey/Redis OSS.
- Multi-AZ con réplicas en otras zonas y conmutación automática (siempre activa en modo clúster).
- Serverless reparte los datos en varias zonas automáticamente.
- Global Datastore para desastres regionales.
Trampas de examen
- "Reducir la carga de lectura de RDS" con datos consultados a menudo: ElastiCache (o réplicas de lectura si no se puede tocar el código).
- "Sesiones compartidas entre instancias": ElastiCache (o DynamoDB).
- "Alta disponibilidad, persistencia o estructuras complejas": Valkey/Redis OSS, no Memcached.
- "Caché simple y multihilo": Memcached.
- "Los datos de la caché quedan obsoletos": TTL o write-through.
- "Microsegundos en DynamoDB sin cambiar el código": DAX, no ElastiCache.
- "Clasificación en tiempo real": conjuntos ordenados de Valkey/Redis OSS.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is Amazon ElastiCache?, documentación de AWS (consultada el 26/09/2026).
- Comparing Valkey, Memcached, and Redis OSS self-designed clusters, documentación de AWS (consultada el 26/09/2026).
- Caching strategies, documentación de AWS (consultada el 26/09/2026).
- Minimizing downtime in ElastiCache by using Multi-AZ with Valkey and Redis OSS, documentación de AWS (consultada el 26/09/2026).