Amazon ElastiCache
Caché en memoria administrada, compatible con Redis y Memcached, para responder en microsegundos.
En palabras simples
Es la libreta que tienes al lado del teclado: en vez de bajar al archivo cada vez que alguien pregunta lo mismo, lo anotaste y lo lees al instante.
Cuándo aplicarlo
Cuando la misma consulta cara se repite muchas veces, o cuando hace falta guardar datos efímeros —sesiones, contadores, colas de espera— con latencia mínima.
- ▸Guardar el resultado de consultas pesadas para no repetirlas contra la base de datos
- ▸Almacenar sesiones de usuario fuera de las instancias de la aplicación
- ▸Marcadores y contadores en tiempo real de un juego o una votación
- ▸Limitar la tasa de peticiones de una API por usuario
Vocabulario mínimo
- Nodo
- La unidad de cómputo y memoria de la caché. Su tipo determina cuántos datos caben.
- Clúster
- El conjunto de nodos. En Redis puede tener réplicas y repartir los datos entre fragmentos.
- TTL
- El tiempo de vida de cada clave. Es lo que evita servir datos viejos indefinidamente.
- Política de expulsión
- Qué borra la caché cuando se llena la memoria: lo menos usado recientemente, lo más antiguo, o nada.
- Aparte de la caché (cache-aside)
- El patrón habitual: la aplicación busca en la caché; si no está, consulta la base y guarda el resultado.
Costo y capa gratuita
- Cómo se cobra
- Por hora de nodo encendido, según su tipo, más la transferencia entre zonas. La modalidad sin servidores cobra por datos almacenados y por peticiones.
- Capa gratuita
- 750 horas al mes de un nodo cache.t2.micro o cache.t3.micro durante los primeros 12 meses.
Cuidado con los créditos
- ⚠Un clúster olvidado encendido: la caché no escala a cero, cobra por hora igual que una instancia.
- ⚠Dimensionar por miedo a quedarse corto: la memoria es la parte cara del precio del nodo.
- ⚠Usar ElastiCache como base de datos principal, cuando lo que se necesita —persistencia durable— lo da MemoryDB.
Descripción
Una consulta a disco tarda milisegundos; una consulta a memoria, microsegundos. ElastiCache existe para explotar esa diferencia de tres órdenes de magnitud en el caso más común de todos: la misma pregunta repetida muchísimas veces.
Administra dos motores conocidos. Redis es el que se usa casi siempre, porque además de claves y valores ofrece estructuras de datos, publicación y suscripción, y réplicas. Memcached es más simple y sirve cuando solo hace falta una caché plana que se reparta entre nodos.
Cómo funciona
- Creas un clúster dentro de tu VPC, en subredes privadas y con su grupo de seguridad.
- La aplicación se conecta con cualquier cliente estándar de Redis o Memcached.
- Se aplica el patrón aparte de la caché: buscar en la caché, y si no está, consultar la base de datos y guardar el resultado con un TTL.
- Cuando la memoria se llena, la política de expulsión decide qué claves se descartan.
- La invalidación es la parte difícil: un dato que cambió en la base de datos debe borrarse de la caché, o los usuarios verán información vieja.
Manos a la obra
- Crea un clúster Redis de un solo nodo
cache.t3.microdentro de tu VPC. - Desde una instancia EC2 de la misma red, conéctate con
redis-cliy guarda un par de claves. - Implementa el patrón aparte de la caché en un script: mide el tiempo de la primera consulta y el de la segunda.
- Fija un TTL de 60 segundos y observa la clave desaparecer sola.
- Borra el clúster al terminar: en memoria no queda nada que valga la pena conservar.
Ejemplo visual
La caché nunca es la fuente de verdad: es una copia acelerada y desechable. Si perderla rompe la aplicación, el servicio que se necesitaba era MemoryDB.
Cuándo NO es la mejor opción
- Amazon MemoryDB for Redis — si los datos en memoria son la fuente de verdad y no pueden perderse ante un reinicio.
- DynamoDB Accelerator — si lo que quieres acelerar es específicamente DynamoDB, su caché propia se integra sin cambiar el código.
- CloudFront — si lo repetido son respuestas HTTP completas, cachear en el borde evita incluso llegar a la aplicación.
Se usa junto con
Aparece en certificaciones
- AWS Certified Solutions Architect – Associate
- AWS Certified Developer – Associate
- AWS Certified Database – Specialty