Configurar AWS Lambda para producción

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Funcionó en pruebas

  • La función pasó todas las pruebas
  • En producción agota el tiempo y se estrangula
  • El código estaba bien; la configuración no

Una función serverless que pasó las pruebas pero falla en producción, ajustando diales de memoria y tiempo de espera

Implementación de aplicaciones en AWS

Configuración de Lambda que importa en producción

Logotipo central de Lambda con cuatro cuadros de configuración de producción: Memory con dial que escala CPU, Timeout con reloj, Ephemeral Storage y Concurrency con instancias en paralelo

  • Memory: también escala CPU y red
  • Timeout: segundos máx. antes de matar la función
  • Ephemeral storage: espacio temporal en /tmp
  • Concurrency: cuántas se ejecutan a la vez
Implementación de aplicaciones en AWS

Dimensionado de memoria y vínculo con la CPU

  • Más memoria = más CPU proporcional
  • Una función limitada por CPU va más rápido con más memoria
  • Menor duración puede suponer menos coste
  • Dimensiona probando, no adivinando

Curva memoria vs coste: la duración cae al subir memoria y luego se aplana; el coste total forma una U con el punto óptimo barato destacado en el centro

Implementación de aplicaciones en AWS

Concurrencia: reservada vs aprovisionada


Concurrencia reservada

  • Limita las ejecuciones simultáneas máximas
  • Protege sistemas posteriores y otras funciones

Concurrencia aprovisionada

  • Precalienta instancias; sin cold start
  • Para funciones sensibles a latencia y de cara a usuario
Implementación de aplicaciones en AWS

Empaquetar configuración y código compartido

  • Environment variables: configuración por entorno
  • Layers: comparte código y dependencias entre funciones
  • Extensions: se ejecutan junto a la función para herramientas
  • Mantén la config fuera del paquete de despliegue

Opciones de empaquetado en Lambda: variables de entorno con config externa, layers compartiendo librerías comunes entre funciones y extensions junto al handler para monitorización o secretos

Implementación de aplicaciones en AWS

Conectar Lambda a una VPC

Lambda conectada a una VPC privada mediante ENI en subredes privadas, grupo de seguridad controlando el acceso saliente y una NAT gateway que da conectividad a internet

  • Conecta Lambda a subredes privadas para recursos internos
  • Lambda crea ENI en tu VPC
  • Los grupos de seguridad controlan a qué puede acceder
  • Necesita un NAT o endpoint de VPC para salir
Implementación de aplicaciones en AWS

Gestionar fallos con destinations y DLQ

  • Invocaciones asíncronas reintentan automáticamente al fallar
  • Lambda Destinations: enruta onSuccess y onFailure
  • Dead-letter queue: captura eventos que nunca prosperan
  • Nunca pierdas un evento fallido en silencio

Gestión de fallos asíncronos en Lambda: bucle de reintento que lleva a Lambda Destinations con ramas onSuccess y onFailure, y una dead-letter queue que captura eventos tras agotar reintentos

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...