Fargate
📘 ¿Qué es AWS Fargate?
AWS Fargate es un motor de cómputo serverless para contenedores que funciona con Amazon ECS y Amazon EKS. Permite ejecutar contenedores sin aprovisionar, administrar ni escalar servidores o clústeres de instancias EC2.
💡 Fargate elimina la necesidad de administrar la infraestructura subyacente. Tú defines cuánto CPU y memoria necesita tu contenedor, y Fargate se encarga del resto.
🎯 Casos de uso
-
Microservicios y APIs REST
-
Workloads por lotes o programados
-
Aplicaciones event-driven (con SQS, SNS, EventBridge)
-
CI/CD pipelines en contenedores
-
Backend de apps móviles/web
🧩 ¿Dónde se puede usar Fargate?
| Plataforma | Soporte Fargate |
|---|---|
| Amazon ECS | ✅ Sí |
| Amazon EKS | ✅ Sí |
| AWS Batch | ✅ (vía soporte en ECS Fargate) |
| AWS App Runner | ❌ (aunque es similar en enfoque) |
⚙️ ¿Cómo funciona Fargate?
🔁 Flujo de trabajo con ECS + Fargate:
-
Crea un Cluster ECS (sin instancias EC2).
-
Define una Task Definition con:
-
Imagen Docker
-
vCPU y memoria
-
Entradas de red, logs, IAM roles, etc.
-
-
Lanza una Task o Service en Fargate.
-
Fargate crea entornos aislados para correr cada contenedor con seguridad y escalabilidad.
📦 Recursos configurables en Fargate
| Recurso | Rango permitido |
|---|---|
| vCPU | 0.25 – 4 vCPU |
| Memoria | 0.5 – 30 GB |
| Tamaño máximo contenedor | Depende del vCPU/memoria elegidos |
Fargate v2 (actualización) permite larger tasks, mejor rendimiento y menor latencia.
🔐 Seguridad en Fargate
-
Redes aisladas: Cada tarea corre en su propia ENI (Elastic Network Interface).
-
IAM Roles: Usa
taskRoleArnpara dar permisos a la aplicación. -
Secrets y Parameters: Inyección segura desde Secrets Manager o SSM Parameter Store.
-
SGs y VPCs: Cada tarea está en una VPC privada, protegida por Security Groups.
🌐 Conectividad de red
-
Puedes lanzar tareas en:
-
Subredes públicas (con IP pública)
-
Subredes privadas + NAT Gateway (más seguro)
-
-
Cada tarea usa su propia ENI (dirección IP dedicada)
🧪 Ejemplo Task Definition para Fargate (ECS)
{
"family": "mi-app",
"requiresCompatibilities": ["FARGATE"],
"networkMode": "awsvpc",
"cpu": "512",
"memory": "1024",
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
"taskRoleArn": "arn:aws:iam::123456789012:role/appTaskRole",
"containerDefinitions": [
{
"name": "web",
"image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/miapp:latest",
"portMappings": [{ "containerPort": 80 }]
}
]
}
📌
requiresCompatibilitiesdebe incluir"FARGATE"ynetworkModedebe ser"awsvpc".
🧰 Integraciones clave
| Servicio | Función |
|---|---|
| ECR | Almacena imágenes Docker |
| CloudWatch Logs | Registra logs de contenedores automáticamente |
| IAM Roles | Permisos para la tarea (por contenedor) |
| ALB/NLB | Distribución de tráfico con ECS Services |
| App Mesh | Malla de servicio opcional para microservicios |
| Auto Scaling | Escalado horizontal por métrica |
📈 Escalado en Fargate
-
ECS Services: usa Application Auto Scaling para ajustar el número de tareas según CPU, memoria o métricas personalizadas.
-
Fargate Spot: opción económica para workloads tolerantes a interrupciones (~70% más barato).
🧱 Comparativa Fargate vs EC2
| Característica | Fargate | EC2 con ECS/EKS |
|---|---|---|
| Gestión de servidores | ❌ No necesaria | ✅ Necesaria |
| Auto Scaling | ✅ Automático por tarea | ✅ Manual/ASG |
| Precio | 💲 Por segundo, más caro | 💲 Más control con Spot/RIs |
| Personalización | ❌ Limitada | ✅ Alta (AMIs, drivers, daemonSets) |
| Seguridad | ✅ Alta (aislamiento por tarea) | ⚠️ Depende de configuración |
🎓 Preguntas tipo certificación
-
¿Cuál es el modo de red requerido para Fargate?
- ✅
awsvpc
- ✅
-
¿Fargate soporta Spot Instances?
- ✅ Sí, mediante Fargate Spot
-
¿Qué se necesita para que Fargate escriba logs en CloudWatch?
- ✅
executionRoleArncon permisos alogs:PutLogEvents
- ✅
-
¿Cómo se asignan permisos de AWS a un contenedor en Fargate?
- ✅ Con
taskRoleArn
- ✅ Con
-
¿Cuál es el tamaño mínimo de CPU y memoria en Fargate?
- ✅ 0.25 vCPU y 0.5 GB RAM
📚 Recursos útiles
✅ Buenas prácticas
-
Usa Fargate para cargas impredecibles, microservicios o eventos serverless
-
No uses Fargate si necesitas drivers personalizados o acceso root
-
Minimiza tareas o contenedores innecesarios para reducir costos
-
Usa Fargate Spot si toleras interrupciones
-
Mantén políticas IAM lo más estrictas posible (principio de mínimo privilegio)
-
Centraliza logs y monitoreo desde el inicio