Cómo entendí los contenedores en AWS: Docker, ECS y EKS explicados desde cero
Cuando comencé a aprender sobre contenedores en AWS, términos como Docker, ECS y EKS aparecían constantemente, pero entender cómo se relacionaban no fue inmediato. En este artículo comparto cómo fui comprendiendo los conceptos básicos de los contenedores en AWS, desde Docker hasta los servicios administrados para ejecutarlos, con un enfoque práctico pensado para quienes están dando sus primeros pasos.
🐳 Introducción a contenedores en AWS
En los últimos años, los contenedores se han convertido en una de las tecnologías más importantes en el mundo cloud. Si estás comenzando en AWS, es muy probable que hayas escuchado términos como Docker, ECS o EKS, pero no siempre queda claro qué problema resuelven, cómo se relacionan entre sí y cuándo usar cada uno.
En este artículo te llevaré paso a paso desde el concepto básico de contenedores hasta los servicios administrados de AWS para ejecutarlos, con un enfoque práctico y para nivel principiante.
🚀 ¿Qué es un contenedor?
Un contenedor es una forma ligera de empaquetar una aplicación junto con todo lo que necesita para ejecutarse:
- Código
- Librerías
- Dependencias
- Configuración básica
Todo esto se empaqueta en una sola unidad que puede ejecutarse de forma consistente en cualquier entorno.
🆚 Contenedores vs Máquinas Virtuales
En comparación sencilla:
| Máquinas Virtuales | Contenedores |
|---|---|
| Incluyen un sistema operativo completo | Comparten el sistema operativo del host |
| Consumen más recursos | Son más ligeros y rápidos |
| Arranque lento | Arranque casi inmediato |
Esto hace que los contenedores sean ideales para:
- Microservicios
- Escalamiento rápido
- Entornos de desarrollo y pruebas
- Aplicaciones modernas
🐳 Docker: el punto de partida
Docker es la tecnología más popular para crear y ejecutar contenedores. Con Docker puedes:
- Definir cómo se construye tu aplicación
(Dockerfile) - Crear una imagen
- Ejecutar esa imagen como un contenedor
Ejemplo conceptual:
“Esta es mi aplicación, con esta versión de Python, estas librerías y esta configuración”.Una vez creada la imagen, puedes ejecutarla:
- En tu laptop
- En un servidor
- En la nube (como AWS)
Aquí es donde AWS entra en escena.
☁️ Contenedores en AWS: ¿qué opciones existen?
AWS ofrece servicios administrados para ejecutar contenedores sin que tengas que preocuparte por toda la infraestructura subyacente.
Los dos principales son:
- Amazon ECS (Elastic Container Service)
- Amazon EKS (Elastic Kubernetes Service)
- Antes de ver sus diferencias, hay un concepto clave.
⚙️ ¿Qué es un orquestador de contenedores?
Cuando ejecutas uno o dos contenedores, Docker es suficiente. Pero en producción normalmente necesitas:
- Ejecutar muchos contenedores
- Escalarlos automáticamente
- Reiniciarlos si fallan
- Distribuir tráfico
- Actualizarlos sin downtime
Un orquestador de contenedores se encarga de todo esto.
👉 ECS y EKS son orquestadores administrados por AWS.
🧩 Amazon ECS: contenedores de forma sencilla
Amazon ECS es el servicio nativo de AWS para ejecutar contenedores.
Características clave:
- No necesitas aprender Kubernetes
- Se integra fácilmente con otros servicios de AWS
- Ideal para empezar con contenedores
Modos de ejecución:
- EC2: tú administras las instancias
- Fargate: AWS administra la infraestructura por ti (recomendado para principiantes)
¿Cuándo usar ECS?
- Estás comenzando con contenedores
- Quieres algo más simple
- Tu arquitectura está fuertemente ligada a AWS
☸️ Amazon EKS: Kubernetes en AWS
Amazon EKS es el servicio administrado de Kubernetes en AWS. Kubernetes es un estándar de la industria para orquestación de contenedores y se usa ampliamente en múltiples nubes.
Características clave:
- Mayor flexibilidad y control
- Portabilidad entre nubes
- Curva de aprendizaje más alta
¿Cuándo usar EKS?
- Ya conoces Kubernetes (o planeas aprenderlo)
- Necesitas portabilidad multi-cloud
- Tienes arquitecturas más complejas
🆚 ECS vs EKS: comparación rápida
| Característica | ECS | EKS |
|---|---|---|
| Facilidad de uso | ⭐⭐⭐⭐ | ⭐⭐ |
| Curva de aprendizaje | Baja | Alta |
| Estándar de la industria | AWS nativo | Kubernetes |
| Integración con AWS | Excelente | Muy buena |
| Ideal para principiantes | ✅ | ❌ (al inicio) |
🏁 ¿Por dónde debería empezar?
Si estás iniciando en contenedores en AWS, una ruta recomendada sería:
- Aprende conceptos básicos de Docker
- Usa Amazon ECS con Fargate
- Entiende cómo escalar y monitorear contenedores
- Más adelante, da el salto a EKS y Kubernetes
- No es necesario aprender todo al mismo tiempo.
😎 Hands-on demo: ejecuta tu primer contenedor en AWS con ECS y Fargate
En esta demostración práctica se ejecutará un contenedor en AWS sin necesidad de administrar servidores.
Prerrequisitos
- Una cuenta de AWS
- Acceso a la consola de AWS
- Uso de una imagen pública desde Docker Hub
Paso 1: Seleccionar una imagen de contenedor
Para simplificar el ejercicio, utilizaremos una imagen pública de NGINX:
1
nginx:latestEsto permite enfocarse en el flujo de AWS sin necesidad de crear una imagen personalizada.
Paso 2: Crear un clúster de ECS
- Accede a la consola de Amazon ECS
- Selecciona Clusters → Create cluster
- Elige Networking only (Powered by AWS Fargate)
- Asigna un nombre al clúster y créalo
No es necesario aprovisionar instancias EC2.
Paso 3: Crear una definición de tarea
- Ve a Task Definitions → Create new task definition
- Selecciona Fargate
- Configura:
- CPU: 0.25 vCPU
- Memoria: 0.5 GB
- Agrega un contenedor:
- Imagen:
nginx:latest - Mapeo de puertos: puerto del contenedor
80
- Imagen:
- Guarda la definición de tarea.
Paso 4: Ejecutar el contenedor como un servicio
- Dentro del clúster, selecciona Create service
- Tipo de lanzamiento: Fargate
- Selecciona la definición de tarea creada
- Tareas deseadas: 1
- Habilita Auto-assign public IP
Completa la creación del servicio.
Paso 5: Acceder a la aplicación
Una vez que la tarea esté en ejecución:
- Abre el detalle de la tarea
- Copia la dirección IP pública
- Pégala en tu navegador
Deberías ver la página de bienvenida de NGINX.
¿Qué aprendiste con esta demo?
Con este ejercicio práctico se pretende lograr:
- Ejecutar un contenedor sin administrar servidores
- Utilizar AWS Fargate para abstraer la infraestructura
- Desplegar un entorno de orquestación listo para producción
Estos conceptos son fundamentales en arquitecturas reales en AWS.
Próximos pasos (estaré trabajando en estos siguientes artículos)
- Construir una imagen Docker personalizada
- Habilitar logs con Amazon CloudWatch
- Configurar autoescalado en un servicio de ECS
- Aprender los fundamentos de Kubernetes antes de migrar a EKS
📌 Conclusión
Los contenedores son una pieza clave en la arquitectura moderna en la nube. AWS ofrece opciones tanto para quienes buscan simplicidad como para quienes necesitan flexibilidad avanzada.
- Docker te permite empaquetar aplicaciones
- ECS te ayuda a ejecutarlas fácilmente en AWS
- EKS te abre la puerta al mundo de Kubernetes
Empezar poco a poco y con bases sólidas marcará una gran diferencia en tu camino en la nube.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article