Optimización de Rendimiento de Lambda y Aplicaciones - Concurrencia, Almacenamiento en Caché, Políticas de Filtro

Estrategia de concurrencia de Lambda, almacenamiento en caché de ElastiCache/DAX, políticas de filtro de SQS/SNS, creación de perfiles de rendimiento.

Cuando una aplicacion es lenta, los usuarios se van. El examen AWS DVA-C02 pregunta como hacer tu aplicacion mas rapida. Cubramos los temas clave desde la optimizacion de Lambda hasta estrategias de cache.

 

Optimizacion de Concurrencia de Lambda

¿Que es la Concurrencia?

La concurrencia es el numero de instancias de funciones Lambda ejecutandose simultaneamente en un momento dado. Si 100 usuarios envian solicitudes al mismo tiempo, Lambda ejecuta 100 instancias simultaneamente.

El limite predeterminado es 1.000 por region. Cuando se supera, ocurre throttling (error 429). Como un restaurante completamente lleno que no puede sentar mas clientes.

Dos Estrategias de Concurrencia

Concurrencia Reservada (Reserved Concurrency): Pre-asigna capacidad fija para una funcion especifica. Protege funciones importantes de ser bloqueadas por otras funciones que consumen toda la capacidad.

Concurrencia Provisionada (Provisioned Concurrency): Pre-calienta entornos de ejecucion eliminando cold starts (el tiempo extra de inicio en la primera invocacion). Genera costo adicional.

Optimizacion de Memoria de Lambda

Asignar mas memoria tambien aumenta CPU y ancho de banda de red.

Hecho interesante: duplicar la memoria puede reducir el tiempo de ejecucion a la mitad — manteniendo o reduciendo los costos.

AWS Lambda Power Tuning prueba automaticamente multiples configuraciones de memoria y encuentra el tamano optimo.

 

Estrategias de Cache

El cache almacena datos frecuentes en almacenamiento rapido para no buscar en la fuente lenta cada vez. Como tener libros de uso frecuente en el escritorio en lugar de en la biblioteca.

| Objetivo | Servicio | Proposito | |---------|---------|----------| | Respuestas API | CloudFront | Cache en servidores edge globales, reduce latencia | | Lecturas BD | ElastiCache (Redis) | Cache de datos frecuentes en memoria | | DynamoDB | DAX | Cache dedicado, respuestas en microsegundos | | API Gateway | API Gateway Cache | Cache de respuestas por stage |

 

Optimizacion de Mensajeria

SNS Filter Policies

Cada suscriptor recibe solo mensajes relevantes. Ej: el servicio de pedidos recibe solo mensajes "type=order". Reduce procesamiento innecesario.

SQS Batch Size

Configurar cuantos mensajes recupera Lambda de una vez. Mas mensajes por lote = menos invocaciones = menos costo.

Ejemplo: 100 mensajes, batch size 10 = 10 invocaciones (vs 100 con batch size 1).

 

Identificar Cuellos de Botella

X-Ray: Visualiza latencia entre servicios CloudWatch Logs Insights: Analiza consultas lentas y patrones de errores Lambda Insights: Monitoriza memoria, tiempo de ejecucion y cold starts

 

Puntos Clave del Examen

"Eliminar cold starts de Lambda" -- Provisioned Concurrency

"Prevenir throttling de Lambda" -- Reserved Concurrency

"Encontrar memoria optima de Lambda" -- Lambda Power Tuning

"Cache de API global" -- CloudFront

"Cache de DynamoDB en microsegundos" -- DAX

"Recibir solo mensajes que coincidan" -- SNS Filter Policies

"Reducir invocaciones Lambda" -- Mayor SQS batch size

"Visualizar cuellos de botella" -- X-Ray Service Map

Mas memoria = mas CPU = posiblemente menor tiempo de ejecucion

Volver a la lista del blog