Saltar al contenido
aprendeaws.dev

Módulo 8 · Bases de datos/Lección 52

Caché y bases especializadas

ElastiCache para responder en microsegundos y bases para documentos, grafos, series de tiempo y búsqueda.

Al terminar podrás

  • →Explicar para qué sirve una caché en memoria
  • →Reconocer DocumentDB, Neptune, Keyspaces, Timestream y OpenSearch

Muchas aplicaciones preguntan lo mismo una y otra vez: el menú de la página principal, el perfil del usuario, los productos más vendidos. Ir a la base de datos cada vez gasta tiempo y capacidad. Una caché en memoria guarda esas respuestas en RAM y las entrega en microsegundos.

Al final de esta lección está el resto de bases de propósito específico: documentos, grafos, columnas anchas, series de tiempo y búsqueda.

Cómo funciona una caché

La estrategia más común se llama carga diferida (lazy loading):

  1. 1

    La app busca primero en la caché

    Si el dato está (cache hit), lo devuelve de inmediato.
  2. 2

    Si no está (cache miss), va a la base

    Hace la consulta normal a RDS, DynamoDB o la que sea.
  3. 3

    Guarda la respuesta en la caché

    La próxima petición igual ya la encuentra en memoria.
  4. 4

    El dato vence con un TTL

    Después de N segundos se borra solo, y la siguiente lectura trae la versión actual.

El TTL (time to live) es el equilibrio entre velocidad y frescura: un TTL largo da más aciertos, pero datos más viejos. La otra estrategia, escritura directa (write-through), actualiza la caché cada vez que se escribe en la base: los datos siempre están frescos, a cambio de guardar cosas que quizá nadie lea.

Amazon ElastiCache y Amazon MemoryDB

  • Amazon ElastiCache

    La libreta del recepcionista

    Caché en memoria administrada, compatible con Valkey, Redis OSS y Memcached. Puede ser serverless (sin elegir nodos) o un clúster de nodos que tú dimensionas.
  • Amazon MemoryDB

    Una libreta que además se fotocopia y se archiva

    Base de datos en memoria y durable, compatible con Valkey y Redis OSS. Guarda cada escritura en un registro replicado en varias zonas: sirve como base principal, no solo como caché.

Usos típicos de ElastiCache: caché delante de una base relacional, sesiones de usuario, marcadores de juegos y límites de peticiones. Si lo que necesitas es acelerar DynamoDB, existe DAX (en DynamoDB).

Las bases especializadas

  • Amazon DocumentDB

    Base de documentos JSON compatible con MongoDB. Para catálogos, perfiles y contenido con forma variable.
  • Amazon Neptune

    Base de grafos. Para relaciones: redes sociales, recomendaciones, detección de fraude, grafos de conocimiento.
  • Amazon Keyspaces

    Base de columnas anchas compatible con Apache Cassandra, serverless. Para migrar cargas Cassandra sin administrar clústeres.
  • Amazon Timestream

    Series de tiempo: medidas con fecha y hora, como sensores o métricas. Para clientes nuevos, AWS recomienda Timestream for InfluxDB.
  • Amazon OpenSearch Service

    Búsqueda de texto libre y análisis de logs, con paneles para visualizarlos. Basado en OpenSearch.

La palabra clave de cada pregunta

Si la pregunta dice…Piensa en
Caché, microsegundos, sesiones, Redis o ValkeyAmazon ElastiCache
En memoria pero durable, base principal compatible con RedisAmazon MemoryDB
MongoDB, documentos JSONAmazon DocumentDB
Grafos, relaciones, recomendaciones, fraudeAmazon Neptune
CassandraAmazon Keyspaces
Series de tiempo, IoT, telemetríaAmazon Timestream
Búsqueda de texto, análisis de logsAmazon OpenSearch Service

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Una base RDS recibe miles de consultas idénticas por segundo para mostrar la página principal. ¿Qué reduce la carga?

  2. 2.En la estrategia de carga diferida (lazy loading), ¿qué pasa en un cache miss?

  3. 3.Una empresa quiere migrar su base MongoDB a un servicio administrado de AWS compatible. ¿Cuál usa?

  4. 4.Un banco quiere detectar fraude analizando relaciones entre cuentas, dispositivos y transacciones. ¿Qué base encaja mejor?

  5. 5.¿Qué servicio es compatible con Apache Cassandra?