Optimización de costes AWS: De 3800$ a 1000$ con EKS, KEDA y Karpenter
En el mundo del cloud computing, uno de los retos más grandes para las empresas es mantener los costes bajo control sin sacrificar el rendimiento. En este artículo, comparto cómo hemos conseguido reducir los costes de computación de nuestra infraestructura AWS en más de un 70% mediante la migración de arquitecturas tradicionales a una solución basada en Kubernetes con EKS, KEDA y Karpenter.
El punto de partida: Una infraestructura costosa
Nuestra arquitectura original se basaba en dos servicios de AWS para ejecutar procesos en segundo plano (background workers):
AWS Elastic Beanstalk Workers
Nuestros workers de Elastic Beanstalk representaban una parte elevada de la factura mensual:
- Coste mensual: 2.500 - 2.800 $
- Operación: 24x7, siempre activos
- Problemática: Recursos estáticos, sin adaptación a la carga real
- Ineficiencia: Pagábamos por recursos que no utilizábamos durante las horas valle
AWS Lambda
Para tareas más específicas, utilizábamos Lambda:
- Coste mensual: 500 - 1.000 $
- Limitaciones: Timeout máximo de 15 minutos
- Recursos estáticos: Sin optimización dinámica
Coste total mensual: Aproximadamente 3.000 - 3.800 $ para mantener esta infraestructura operativa.
La solución: EKS + KEDA + Karpenter
Después de analizar diferentes alternativas, decidimos migrar nuestra infraestructura a una arquitectura basada en:
- EKS (Elastic Kubernetes Service): Plataforma orquestada de Kubernetes de AWS
- KEDA (Kubernetes Event-driven Autoscaling): Escalado automático basado en eventos
- Karpenter: Provisionamiento automático y elástico de nodos
Esta combinación nos permite:
- Ajustar los recursos dinámicamente según la carga real
- Escalar a cero cuando no hay trabajo pendiente
- Optimizar la agregación de computación para reducir el despilfarro
- Controlar totalmente los timeouts y estados de los procesos
El proceso de migración
La migración siguió un proceso estructurado en varias fases:
1. Identificación y análisis
Primero, identificamos todos los procesos que se ejecutaban tanto en Beanstalk como en Lambda, entendiendo:
- Los patrones de consumo de recursos
- Los picos de demanda
- Las dependencias entre servicios
2. Contenedorización
Creamos imágenes Docker para cada proyecto y las subimos a ECR (Elastic Container Registry), estandarizando el formato de todos nuestros servicios.
3. Estandarización del CI/CD
Uno de los grandes beneficios ha sido la creación de un pipeline único de CI/CD para todos los proyectos:
- Unificación del proceso de despliegue
- Reducción del tiempo de integración de nuevos servicios
- Mejora en la consistencia y calidad de los despliegues
4. Configuración de KEDA y Karpenter
Configuramos:
- KEDA: Para escalar automáticamente los pods basándose en colas de mensajes (SQS y Redis según el caso)
- Karpenter: Para provisionar nodos solo cuando hacen falta, con el tamaño óptimo según la carga
Resultados: Más de un 70% de ahorro
Después de la migración completa, los resultados han sido muy significativos:
Impacto económico
- Coste mensual resultante: ~1.000 $
- Ahorro mensual: 2.000 - 2.800 $
- Reducción de costes: >70%
Beneficios operativos
Más allá del ahorro económico, hemos obtenido mejoras significativas en la operativa:
- Simplificación de la infraestructura: Menos servicios gestionados, más control
- Control unificado: Todos los procesos siguen los mismos patrones
- Flexibilidad: Podemos añadir nuevos servicios en segundo plano de forma rápida y estandarizada
- Visibilidad: Mejor monitorización y comprensión del comportamiento de los servicios

Conclusiones
La migración de una infraestructura basada en Beanstalk y Lambda a EKS con KEDA y Karpenter ha sido un éxito rotundo. Los beneficios no son solo económicos, sino que también hemos simplificado nuestra arquitectura y mejorado nuestra capacidad de escalar de manera eficiente.
Aprendizajes clave
- No todos los servicios gestionados son los más económicos: A veces, una solución más compleja inicialmente puede ser mucho más eficiente a largo plazo
- El auto-scaling inteligente es esencial: La capacidad de escalar a cero y adaptarse a la carga real es clave para optimizar costes
- La estandarización es valor: Un pipeline único y patrones consistentes reducen la complejidad operativa
Si estáis considerando optimizar los costes de vuestra infraestructura AWS, os recomiendo evaluar soluciones basadas en Kubernetes con auto-scaling basado en eventos. El retorno de la inversión puede ser muy rápido, como en nuestro caso.