Operación de contenedores serverless con AWS Fargate - Patrones de uso con ECS y EKS
Contenedores serverless sin gestión de instancias, con diferenciación de uso entre ECS y EKS y optimización de costos mediante dimensionamiento de tareas.
Mecanismo de Fargate y diferencias con el tipo de lanzamiento EC2
Fargate es un motor de cómputo serverless para ECS y EKS. Con el tipo de lanzamiento EC2, se deben gestionar las instancias que ejecutan los contenedores (aprovisionamiento, escalado, parches). Con Fargate, solo se especifican vCPU (0.25 a 16) y memoria (0.5 GiB a 120 GiB) en la definición de tarea, y AWS aprovisiona automáticamente el entorno de ejecución. Cada tarea se ejecuta en una microVM aislada basada en Firecracker, eliminando la compartición de kernel entre tareas y reforzando el aislamiento de seguridad. No hay acceso al OS del host y no se pueden ejecutar contenedores privilegiados. Las versiones de plataforma (ECS) gestionan el kernel del OS y la versión del runtime; al especificar LATEST se aplica automáticamente la versión estable más reciente.
Diferenciación entre ECS on Fargate y EKS on Fargate
ECS on Fargate es la orquestación de contenedores nativa de AWS, operable con tres conceptos: definiciones de tarea, servicios y clústeres. Proporciona integración con ALB, service mesh vía Service Connect y descubrimiento de servicios vía CloudMap de forma nativa. ECS Exec permite conectar un shell interactivo a contenedores dentro de tareas para depuración en producción. EKS on Fargate ejecuta Pods de Kubernetes en Fargate. Los Fargate Profiles definen selectores de namespace y labels, y los Pods que coinciden se programan automáticamente en Fargate. Es adecuado cuando se quiere aprovechar el ecosistema de Kubernetes (Helm, Argo CD, Prometheus, etc.) o estandarizar en Kubernetes multi-cloud. Sin embargo, EKS on Fargate no soporta DaemonSets, no puede montar volúmenes EBS (sí EFS), no tiene instancias GPU, y el inicio es más lento que los nodos EC2 porque se asigna un ENI por Pod.
Optimización de costos
Fargate cobra por vCPU-segundo y GB-segundo de memoria asignados a la tarea. El dimensionamiento correcto es clave: asignar más recursos de los necesarios desperdicia dinero. Monitoree el uso real de CPU y memoria con CloudWatch Container Insights y ajuste la configuración. Fargate Spot ofrece hasta un 70% de descuento para cargas de trabajo tolerantes a interrupciones, con 30 segundos de gracia tras la señal SIGTERM. Es ideal para workers basados en cola y procesamiento por lotes. Compute Savings Plans aplican a Fargate, Lambda y EC2, ofreciendo hasta 50% de descuento con compromiso de 1 año. Para un entendimiento sistemático de Fargate, consulte libros relacionados (Amazon).
Mejores prácticas de diseño y errores comunes
Existe una matriz de combinaciones válidas de vCPU y memoria; no se pueden especificar combinaciones arbitrarias (por ejemplo, 0.25 vCPU solo permite 0.5/1/2 GiB). Sin configurar correctamente el período de gracia del health check (healthCheckGracePeriodSeconds), los contenedores de inicio lento entran en un bucle infinito de parada y reinicio por fallos en el health check. El almacenamiento efímero es de 20 GiB por defecto (máximo 200 GiB) y se pierde al terminar la tarea, así que use EFS o S3 para datos persistentes. El modo de red awsvpc es obligatorio, y como cada tarea obtiene un ENI, vigile el agotamiento de direcciones IP en las subnets. Para cargas con muchas tareas, aprovisione al menos un CIDR /19 o habilite ENI Trunking.
Fargate vs. App Runner
App Runner es un servicio de contenedores de abstracción aún mayor que Fargate, que construye, despliega y escala automáticamente desde código fuente o imágenes de contenedor. No requiere configuración de VPC ni definiciones de tarea, siendo la ruta más rápida para desplegar aplicaciones web y APIs. Fargate, por otro lado, ofrece ubicación en VPC, control granular de security groups, contenedores sidecar, definiciones de tarea multi-contenedor, montajes EFS y soporte GPU (tipo de lanzamiento EC2) para networking avanzado y personalización. App Runner es ideal para APIs web con tráfico estable; ECS on Fargate para procesamiento por lotes, configuraciones multi-contenedor y cargas que requieren acceso directo a recursos en la VPC. EKS on Fargate se elige cuando se reutilizan manifiestos y herramientas Kubernetes existentes.
Resumen
Fargate es un motor de cómputo serverless que elimina la gestión de infraestructura de las operaciones de contenedores. Comience con ECS on Fargate y migre a EKS on Fargate cuando necesite Kubernetes. Optimice costos con Fargate Spot y Savings Plans, y monitoree continuamente la utilización con Container Insights. Comprender los errores típicos como el agotamiento de IPs en subnets, las combinaciones válidas de vCPU/memoria y la configuración del health check garantiza operaciones de producción estables.