Qué es
AWS Lambda ejecuta tu código (una función) cuando ocurre un evento: una petición HTTP (HyperText Transfer Protocol: protocolo de la web), un fichero nuevo en S3 (Simple Storage Service), un mensaje en una cola, una programación horaria… AWS arranca, escala y apaga los entornos de ejecución por ti. No pagas por tener nada encendido: pagas por invocación y por la duración, medida en milisegundos.
Conceptos clave
- Límites principales: hasta 15 minutos por invocación,
memoria de 128 MB a 10.240 MB (la CPU (Central Processing Unit: procesador) crece en proporción a la memoria),
almacenamiento
/tmpde 512 MB a 10.240 MB y carga útil de 6 MB en invocación síncrona (petición y respuesta) y 1 MB en asíncrona. - Modelos de invocación:
- Síncrona: el llamante espera la respuesta (API Gateway, ALB (Application Load Balancer: balanceador HTTP/HTTPS), SDK (Software Development Kit: bibliotecas para programar contra AWS)).
- Asíncrona: Lambda encola el evento y reintenta hasta 2 veces si falla (S3, SNS (Simple Notification Service), EventBridge). Los fallos pueden ir a una DLQ (Dead-Letter Queue: cola donde acaban los mensajes que fallan) o a un destino.
- Event source mapping: Lambda lee por lotes de SQS (Simple Queue Service), Kinesis, DynamoDB Streams o Kafka.
- Concurrencia: número de ejecuciones simultáneas (1.000 por región por defecto, ampliable). La concurrencia reservada garantiza y a la vez limita la de una función. La concurrencia aprovisionada mantiene entornos preparados para evitar arranques en frío.
- Arranque en frío (cold start): latencia extra al crear un entorno nuevo. Se mitiga con concurrencia aprovisionada o con SnapStart (Java, Python y .NET).
- Versiones y alias: versiones inmutables; un alias puede repartir tráfico entre dos versiones (despliegue canary).
- Capas (layers): código o dependencias compartidas, hasta 5 por función. También se pueden desplegar imágenes de contenedor de hasta 10 GB.
- Lambda en una VPC (Virtual Private Cloud): accede a recursos privados (RDS (Relational Database Service), ElastiCache). Para salir a internet necesita un NAT Gateway (Network Address Translation: traducción de direcciones de red); para S3 o DynamoDB, mejor endpoints de VPC.
- URL (Uniform Resource Locator: dirección web) de función: endpoint HTTPS (HTTP Secure: HTTP cifrado con TLS) propio de una función, sin API Gateway.
Casos de uso típicos
- Backends de APIs serverless con API Gateway.
- Procesar ficheros al subirlos a S3 (miniaturas, validación, extracción de metadatos).
- Consumidores de colas y flujos (SQS, Kinesis, DynamoDB Streams).
- Tareas programadas con EventBridge Scheduler (sustituye a un cron en una instancia).
- Automatización de operaciones: reaccionar a eventos de la cuenta (por ejemplo, etiquetar recursos nuevos).
Cuándo NO usarlo
- Procesos que duran más de 15 minutos: mejor ECS (Elastic Container Service)/Fargate, AWS Batch o dividir el trabajo con Step Functions.
- Cargas muy estables y continuas con uso alto de CPU: contenedores o instancias pueden salir más baratos.
- Aplicaciones que necesitan estado local persistente o conexiones de larga duración.
- Latencia ultrabaja y predecible sin tolerar ningún arranque en frío, salvo que se pague concurrencia aprovisionada.
Comparativa con servicios parecidos
| Necesidad | Lambda | Fargate (ECS/EKS) | EC2 (Elastic Compute Cloud) |
|---|---|---|---|
| Gestión de servidores | Ninguna | Ninguna (gestionas contenedores) | Toda (SO (sistema operativo), parches) |
| Duración máxima | 15 min | Sin límite | Sin límite |
| Modelo de cobro | Por invocación y ms | Por vCPU y memoria por segundo | Por instancia encendida |
| Mejor para | Eventos y tráfico variable | Servicios en contenedores | Control total o software legado |
Modelo de precios
Se paga por número de invocaciones y por GB-segundo (memoria configurada
por duración, redondeada al milisegundo). La arquitectura Arm (Graviton) es más barata que x86.
La concurrencia aprovisionada, el almacenamiento /tmp adicional y la transferencia
de datos se cobran aparte. El nivel gratuito mensual (1 millón de peticiones y 400.000
GB-segundo) no caduca.
Seguridad y alta disponibilidad
- Cada función tiene un rol de ejecución con sus permisos (mínimo privilegio).
- Una política basada en recurso define quién puede invocarla (S3, SNS, otra cuenta…).
- Variables de entorno cifradas con KMS (Key Management Service); para secretos, mejor Secrets Manager.
- Se ejecuta en varias zonas de disponibilidad de forma automática. En una VPC conviene configurar subredes de al menos dos zonas.
Así lo uso en Kopi
Todo el backend de Kopi son funciones Lambda pequeñas en Node.js, de un solo propósito y sin
framework: API Gateway resuelve la ruta y cada función es un handler. El código
común vive en una capa compartida. Además de las que están detrás de la API (Application Programming Interface: interfaz para que los programas se comuniquen),
hay funciones disparadas por eventos: el disparador de registro de Cognito y una función que
reacciona a cada objeto nuevo en S3 para mantener DynamoDB sincronizado. Con el tráfico de un
proyecto personal, el coste de Lambda cabe en el nivel gratuito.
Trampas de examen
- "Más de 15 minutos": no es Lambda; piensa en Fargate, Batch o Step Functions.
- "Evitar arranques en frío": concurrencia aprovisionada o SnapStart, no más memoria (ayuda algo, pero no lo evita).
- "Una función no debe consumir toda la concurrencia" o "proteger una base de datos": concurrencia reservada.
- "Lambda en VPC sin salida a internet": falta un NAT Gateway (en subred pública) o un endpoint de VPC.
- "Muchas conexiones a RDS desde Lambda": RDS Proxy.
- "Despliegue gradual": alias con tráfico ponderado (con CodeDeploy).
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is AWS Lambda?, documentación de AWS (consultada el 25/09/2026).
- Lambda quotas, documentación de AWS (consultada el 25/09/2026).
- Understanding Lambda function scaling, documentación de AWS (consultada el 25/09/2026).
- Understanding Lambda function invocation methods, documentación de AWS (consultada el 25/09/2026).