July 31, 2025

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?

PlataformaSoporte 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:

  1. Crea un Cluster ECS (sin instancias EC2).

  2. Define una Task Definition con:

    • Imagen Docker

    • vCPU y memoria

    • Entradas de red, logs, IAM roles, etc.

  3. Lanza una Task o Service en Fargate.

  4. Fargate crea entornos aislados para correr cada contenedor con seguridad y escalabilidad.


📦 Recursos configurables en Fargate

RecursoRango permitido
vCPU0.25 – 4 vCPU
Memoria0.5 – 30 GB
Tamaño máximo contenedorDepende 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 taskRoleArn para 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 }]
    }
  ]
}

📌 requiresCompatibilities debe incluir "FARGATE" y networkMode debe ser "awsvpc".


🧰 Integraciones clave

ServicioFunción
ECRAlmacena imágenes Docker
CloudWatch LogsRegistra logs de contenedores automáticamente
IAM RolesPermisos para la tarea (por contenedor)
ALB/NLBDistribución de tráfico con ECS Services
App MeshMalla de servicio opcional para microservicios
Auto ScalingEscalado 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ísticaFargateEC2 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

  1. ¿Cuál es el modo de red requerido para Fargate?

    • awsvpc
  2. ¿Fargate soporta Spot Instances?

    • ✅ Sí, mediante Fargate Spot
  3. ¿Qué se necesita para que Fargate escriba logs en CloudWatch?

    • executionRoleArn con permisos a logs:PutLogEvents
  4. ¿Cómo se asignan permisos de AWS a un contenedor en Fargate?

    • ✅ Con taskRoleArn
  5. ¿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