AWS Builder Center

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 VirtualesContenedores
Incluyen un sistema operativo completoComparten el sistema operativo del host
Consumen más recursosSon más ligeros y rápidos
Arranque lentoArranque 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ísticaECSEKS
Facilidad de uso⭐⭐⭐⭐⭐⭐
Curva de aprendizajeBajaAlta
Estándar de la industriaAWS nativoKubernetes
Integración con AWSExcelenteMuy 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:latest
Esto permite enfocarse en el flujo de AWS sin necesidad de crear una imagen personalizada.

Paso 2: Crear un clúster de ECS

  1. Accede a la consola de Amazon ECS
  2. Selecciona Clusters → Create cluster
  3. Elige Networking only (Powered by AWS Fargate)
  4. Asigna un nombre al clúster y créalo
No es necesario aprovisionar instancias EC2.

Paso 3: Crear una definición de tarea

  1. Ve a Task Definitions → Create new task definition
  2. Selecciona Fargate
  3. Configura:
    1. CPU: 0.25 vCPU
    2. Memoria: 0.5 GB
  4. Agrega un contenedor:
    1. Imagen: nginx:latest
    2. Mapeo de puertos: puerto del contenedor 80
  5. Guarda la definición de tarea.

Paso 4: Ejecutar el contenedor como un servicio

  1. Dentro del clúster, selecciona Create service
  2. Tipo de lanzamiento: Fargate
  3. Selecciona la definición de tarea creada
  4. Tareas deseadas: 1
  5. 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:
  1. Abre el detalle de la tarea
  2. Copia la dirección IP pública
  3. 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.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article