Optimización de rendimiento y recursos

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Lenta y cara

  • La app va lenta con picos de tráfico
  • La factura de Lambda sube ese mismo mes
  • Ajustar la hace más rápida y barata

Un indicador de velocidad y coste mostrando una función lenta y cara, apuntando a la optimización

Implementación de aplicaciones en AWS

Concurrencia: coste vs cold start


Reservada: limitar y proteger

  • Limita y garantiza capacidad para una función
  • Control más barato, pero no evita cold starts

Provisionada: pagar por calentar

  • Mantiene instancias precalentadas; sin cold start
  • Cuesta más; úsala solo donde la latencia importe de verdad
Implementación de aplicaciones en AWS

Dimensionar memoria con la curva duración-coste

Curva duración-coste al aumentar la memoria: la duración cae y se aplana; el coste total forma una U con el punto óptimo de memoria resaltado

  • Más memoria = más CPU = menos duración
  • Coste = precio de memoria × duración
  • El punto más barato suele estar en el medio
  • Perfila con varios tamaños y elige
Implementación de aplicaciones en AWS

Caché a nivel de aplicación

  • Reutiliza trabajo dentro del contexto de ejecución
  • Una Lambda caliente conserva globals entre invocaciones
  • Cachea configuración, clientes y búsquedas frecuentes
  • ElastiCache para una caché compartida entre instancias

Caché en el contexto de ejecución de Lambda: objeto cliente global reutilizado en invocaciones calientes, y clúster de ElastiCache compartiendo datos calientes entre múltiples instancias de la función

Implementación de aplicaciones en AWS

Caché de CloudFront en el perímetro

  • CloudFront: cachea respuestas en ubicaciones perimetrales
  • Atiende repeticiones sin tocar el backend
  • Las claves de caché pueden incluir headers, query strings, cookies
  • El contenido estático y cacheable escala gratis

Caché perimetral de CloudFront: globo con ubicaciones perimetrales sirviendo respuestas en caché a usuarios cercanos sin tocar el backend, con configuración de clave de caché mostrando headers y query strings

Implementación de aplicaciones en AWS

Elegir la capa de caché adecuada

Tres capas de caché apiladas: CloudFront en el perímetro para contenido estático muy compartido, caché en memoria por instancia para objetos calientes, y ElastiCache o DAX para lecturas compartidas de alta frecuencia

  • Perímetro (CloudFront): contenido estático y muy compartido
  • Aplicación (en memoria): objetos calientes por instancia
  • Datos (ElastiCache/DAX): lecturas calientes compartidas
  • Encapílalas; cada una reduce un coste distinto
Implementación de aplicaciones en AWS

Integrar la optimización

  • Dimensiona memoria con la curva duración-coste
  • Añade concurrencia provisionada solo donde importe la latencia
  • Cachea en las capas de perímetro, app y datos
  • Mide, cambia una cosa y vuelve a medir

Resumen de optimización: curva duración-coste para dimensionar memoria, decisión sobre concurrencia provisionada, diagrama de tres capas de caché y ciclo iterativo de medir-cambiar-medir

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...