AWS Lambda y Computación Serverless
Entiende el modelo serverless con AWS Lambda: ejecución de código sin administrar servidores.
AWS Lambda es el servicio de computación serverless de AWS que permite ejecutar código sin aprovisionar ni administrar servidores. Solo pagas por el tiempo de cómputo consumido, sin cargo cuando el código no se ejecuta.
1¿Qué es Serverless?
Serverless no significa "sin servidores" - significa que tú no administras servidores.
Características del modelo serverless:
- Sin aprovisionamiento: No configuras servidores, OS ni parches
- Escalado automático: De cero a miles de ejecuciones simultáneas
- Pago por uso: Solo pagas cuando tu código se ejecuta
- Alta disponibilidad integrada: AWS gestiona la infraestructura
Ventajas:
- Menor costo operativo
- Tiempo de desarrollo más rápido
- Escalabilidad automática
- Sin capacidad ociosa
Limitaciones:
- Timeout máximo (15 minutos en Lambda)
- Estado efímero (stateless)
- Cold starts (latencia inicial)
2Cómo Funciona Lambda
Componentes de una función Lambda:
- Código: Tu función (Python, Node.js, Java, Go, etc.)
- Trigger: Evento que invoca la función
- Configuración: Memoria, timeout, permisos
Flujo de ejecución:
- Un evento dispara la función
- AWS provisiona un contenedor (si no existe)
- Tu código se ejecuta
- Retorna resultado o error
- El contenedor puede reutilizarse
Lenguajes soportados:
- Node.js, Python, Java, Go, Ruby
- .NET (C#/PowerShell)
- Custom Runtime (cualquier lenguaje)
Configuración clave:
- Memoria: 128 MB a 10 GB
- Timeout: Hasta 15 minutos
- Concurrencia: Hasta miles de ejecuciones paralelas
# Ejemplo de función Lambda (Python)
def lambda_handler(event, context):
# event: datos del trigger
# context: información de la ejecución
name = event.get('name', 'World')
return {
'statusCode': 200,
'body': f'Hello, {name}!'
}3Triggers y Eventos
Lambda puede ser invocado por múltiples servicios AWS:
API y HTTP:
- API Gateway (APIs REST/HTTP)
- Application Load Balancer
- Function URLs (endpoints directos)
Almacenamiento:
- S3 (cuando se sube/modifica un objeto)
- DynamoDB Streams (cambios en tablas)
- Kinesis (streaming de datos)
Mensajería:
- SNS (notificaciones)
- SQS (colas de mensajes)
- EventBridge (eventos programados y personalizados)
Otros:
- CloudWatch Events/Logs
- Cognito (autenticación)
- IoT Core (dispositivos IoT)
- Step Functions (orquestación)
Tipos de invocación:
- Síncrona: Espera respuesta (API Gateway)
- Asíncrona: Fire-and-forget (S3, SNS)
- Poll-based: Lambda lee de fuente (SQS, Kinesis)
4Modelo de Precios
Componentes del costo:
1. Número de solicitudes:
- Primer millón de solicitudes/mes: GRATIS
- Después: $0.20 por millón de solicitudes
2. Duración de ejecución:
- Cobro por GB-segundo
- Basado en memoria asignada × tiempo de ejecución
- 400,000 GB-segundos/mes: GRATIS
Ejemplo de cálculo:
- Función con 512 MB de memoria
- 3 millones de invocaciones/mes
- 200 ms promedio de ejecución
- Costo: ~$5.60/mes
Free Tier (siempre gratis):
- 1 millón de solicitudes/mes
- 400,000 GB-segundos/mes
Optimización de costos:
- Ajustar memoria al mínimo necesario
- Optimizar tiempo de ejecución
- Usar Provisioned Concurrency solo si necesitas evitar cold starts
Lambda puede ser extremadamente económico para cargas de trabajo intermitentes o de baja frecuencia.
5Casos de Uso Comunes
Procesamiento de Datos:
- Transformar archivos subidos a S3
- Procesar logs en tiempo real
- ETL para data warehouses
APIs y Backends:
- APIs REST con API Gateway
- Backends para aplicaciones móviles
- GraphQL con AppSync
Automatización:
- Respuesta a eventos de infraestructura
- Tareas programadas (cron jobs)
- Procesamiento de webhooks
Machine Learning:
- Inferencia en tiempo real
- Preprocesamiento de datos
- Integración con SageMaker
Ejemplos específicos:
- Redimensionar imágenes al subirlas a S3
- Procesar pagos en e-commerce
- Enviar notificaciones push
- Validar formularios
- Generar reportes programados
6Lambda vs Otros Servicios de Cómputo
| Característica | Lambda | EC2 | ECS/EKS | Fargate |
|---|---|---|---|---|
| Administración | Ninguna | Total | Parcial | Mínima |
| Escalado | Automático | Manual/Auto | Manual/Auto | Automático |
| Precio | Por ejecución | Por hora | Por instancia | Por recurso |
| Duración máx | 15 min | Ilimitada | Ilimitada | Ilimitada |
| Estado | Stateless | Stateful | Stateful | Stateful |
Cuándo usar Lambda:
- Tareas cortas (< 15 min)
- Carga de trabajo variable/intermitente
- Eventos puntuales
Cuándo NO usar Lambda:
- Procesos de larga duración
- Aplicaciones con estado persistente
- Requisitos de GPU/hardware específico
Puntos Clave para el Examen
- Lambda ejecuta código sin aprovisionar servidores, pagas solo por ejecución
- Escala automáticamente de 0 a miles de ejecuciones concurrentes
- Timeout máximo de 15 minutos por ejecución
- Puede ser disparado por S3, API Gateway, DynamoDB, SNS, SQS y más
- Free tier incluye 1M solicitudes y 400K GB-segundos mensuales