Elegir dónde correr el código en AWS debería ser una decisión de arquitectura, pero en la práctica muchos equipos la resuelven por costumbre: “usamos lo mismo que en el proyecto anterior”. El problema es que EKS, ECS y Lambda resuelven problemas distintos, y elegir el que no corresponde se paga después en operación, en costo o en velocidad de entrega.

Esta guía compara las tres opciones de cómputo de AWS con criterios de decisión pensados para CTO y gerentes de tecnología, no solo para el equipo de infraestructura.

Las tres opciones en una frase

  • AWS Lambda: cómputo serverless por eventos. Subes código, AWS lo ejecuta cuando algo sucede y cobra solo por el tiempo que corre. Sin servidores ni clústeres que administrar.
  • Amazon ECS (Elastic Container Service): el orquestador de contenedores propio de AWS. Corre tus contenedores Docker como servicios de larga duración, con integración nativa al resto de AWS y menos piezas que configurar que Kubernetes.
  • Amazon EKS (Elastic Kubernetes Service): Kubernetes administrado por AWS. Mismo motor de orquestación que usarías en cualquier nube o centro de datos propio, con el plano de control operado por AWS.

Los tres pueden correr con o sin servidores que administres directamente: Lambda siempre es serverless; ECS y EKS pueden operarse con instancias EC2 propias o con AWS Fargate, que elimina la gestión de servidores mientras conservas el modelo de contenedores.

Los criterios que realmente deciden

1. Tipo de carga de trabajo

Lambda encaja con procesos cortos y disparados por eventos: una API que responde en milisegundos, un archivo que llega y se procesa, una integración entre sistemas. Cada invocación de Lambda tiene un límite de 15 minutos de ejecución. ECS y EKS están hechos para servicios de larga duración —una API que atiende tráfico constante, un proceso con estado en memoria, un worker que corre de forma sostenida—, donde mantener el contenedor corriendo es más eficiente que reiniciar cómputo en cada evento.

2. Expertise del equipo

Este es el criterio que más se subestima. Kubernetes tiene una curva de aprendizaje real: conceptos como pods, deployments, services, ingress y namespaces no son intuitivos para un equipo que recién empieza. ECS usa el modelo mental de AWS —definiciones de tarea, servicios, clústeres— con menos conceptos nuevos que aprender. Si tu equipo ya opera Kubernetes en otro entorno (on-premise, otra nube), EKS aprovecha ese conocimiento. Si no, ECS suele ser más rápido de poner en producción con buenos resultados.

3. Portabilidad y lock-in operativo

Una aplicación en Kubernetes (EKS) usa APIs y manifiestos estándar que —con matices— funcionan igual en Google Cloud, Azure o un clúster propio. Eso importa si tu estrategia contempla multi-nube, si vienes de un entorno híbrido, o si la portabilidad es un requisito de negocio. ECS y Lambda son servicios propios de AWS: no hay problema si tu estrategia es “AWS como nube principal”, pero migrar esas cargas a otra nube implica más rediseño.

4. Control fino del entorno de ejecución

Lambda administra el entorno de ejecución por ti, con las limitaciones que eso implica (tiempo máximo, memoria configurable dentro de rangos, runtimes soportados). Los contenedores en ECS o EKS —sobre todo con instancias EC2 propias en vez de Fargate— dan control total sobre el sistema operativo, las librerías instaladas y el hardware (GPUs específicas, por ejemplo), algo relevante para cargas de cómputo intensivo o requisitos de compliance muy particulares.

5. Costo y modelo operativo (a alto nivel, sin tarifas)

Lambda cobra por invocación y tiempo de ejecución: sin tráfico, no hay costo de cómputo. Es eficiente para cargas intermitentes y caro relativo si un proceso corre de forma casi constante —ahí un contenedor corriendo sin pausa suele salir más eficiente—. ECS y EKS con Fargate cobran por los recursos de cómputo reservados mientras el contenedor corre, sin importar cuánto tráfico atienda; con EC2 propio, el costo depende de las instancias que mantengas encendidas. La forma correcta de comparar no es “cuál es más barato” en abstracto, sino modelar el patrón de tráfico real de cada carga.

Comparativa directa

CriterioAWS LambdaAmazon ECSAmazon EKS
ModeloServerless, por eventosContenedores administrados por AWSKubernetes administrado
Duración típica de la cargaSegundos a 15 minutos máx.Servicios de larga duraciónServicios de larga duración
Curva de aprendizajeBajaMediaAlta
Portabilidad multi-nubeBaja (servicio propio de AWS)Baja (servicio propio de AWS)Alta (API estándar de Kubernetes)
Administración de servidoresNuncaOpcional (Fargate la elimina)Opcional (Fargate la elimina)
Control fino del entornoLimitadoAlto (con EC2)Alto (con EC2)
Mejor paraAPIs event-driven, integraciones, automatizaciones, tareas programadasServicios AWS-first sin necesidad de portabilidadEquipos con expertise Kubernetes o necesidad de portabilidad
Escalado a cero (sin tráfico = sin costo de cómputo)No (con Fargate/EC2 sigue reservado)No (con Fargate/EC2 sigue reservado)

Árbol de decisión simplificado

  1. ¿La carga es corta y se dispara por un evento (archivo, mensaje, petición API puntual)? → Empieza por Lambda.
  2. ¿Es un servicio de larga duración y tu equipo ya sabe Kubernetes o necesitas portabilidad multi-nube?EKS.
  3. ¿Es un servicio de larga duración, tu equipo es AWS-first y quieres el camino más simple?ECS (con Fargate si además quieres evitar administrar servidores).
  4. ¿Tu arquitectura combina las tres cosas? → Es lo más común: Lambda para la parte event-driven, contenedores en ECS o EKS para los servicios centrales. No es una decisión de todo-o-nada. Y para conectar esas piezas entre sí sin acoplarlas, la mensajería se elige con SQS vs SNS vs EventBridge.

Cómo ayuda Caleidos

En Caleidos, como AWS Advanced Tier Services Partner, definimos esta arquitectura de cómputo como parte de nuestra práctica de Cloud Native Apps: evaluamos el patrón de carga real de cada componente, el expertise de tu equipo y los requisitos de portabilidad antes de recomendar Lambda, ECS o EKS —o la combinación de los tres—, y lo llevamos a producción con observabilidad y FinOps desde el día uno. Si ya operas Kubernetes o lo estás evaluando, profundizamos en Amazon EKS; si tu caso es serverless, en AWS Lambda.

¿Evaluando qué cómputo usar en tu próximo proyecto en AWS?

Conversemos sobre tu arquitectura: en 30 minutos te damos una recomendación concreta de si tu carga encaja mejor en Lambda, ECS o EKS.