Una noche llegaron cerca de 100 mil solicitudes a nuestra API en menos de un minuto. La arquitectura en ese momento era API Gateway -> Lambda -> RDS.
Todo funcionó bien hasta que dejó de hacerlo:
- Lambda alcanzó su concurrencia máxima
- RDS estuvo a punto de colapsar por exceso de conexiones
- Los cold starts dispararon la latencia
La solución no fue glamorosa, fue un truco clásico de sistemas: poner un búfer en medio.
Migramos a API Gateway -> SQS -> Lambda, afinando algunos parámetros de AWS:
- Concurrencia reservada para limitar Lambda a un nivel seguro
- DLQ para no perder mensajes problemáticos
- Alarmas de CloudWatch para profundidad de cola y edad de mensajes
- RDS Proxy para evitar tormentas de conexiones Lambda -> base de datos
Así se ve la configuración de concurrencia reservada en la práctica:
aws lambda put-function-concurrency --function-name ProcessOrders --reserved-concurrent-executions 50
De este modo, aunque se acumulen 100 mil solicitudes, nunca saturamos la base de datos.
Importante: esto funciona para APIs asíncronas donde el cliente acepta un 202. Si la API debe ser síncrona, necesitarás otras herramientas como rate limiting, provisioned concurrency o incluso contenedores.
Pregunta para la comunidad: cómo gestionas picos repentinos de tráfico en tus APIs, con colas como búfer, escalado de contenedores u otra táctica
En Q2BSTUDIO ayudamos a empresas a diseñar y operar plataformas resilientes en la nube, combinando arquitectura serverless, automatización y observabilidad. Somos una empresa de desarrollo de software con aplicaciones a medida y software a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si quieres fortalecer tu arquitectura y preparar tus sistemas para crecer sin sobresaltos, descubre nuestros servicios cloud en AWS y Azure y potencia tus productos con aplicaciones a medida con estándares de seguridad y rendimiento de nivel empresarial.