Módulo 5 · Cómputo: máquinas e instancias/Lección 36
Contenedores: ECS, EKS, ECR y Fargate
Empaquetar la aplicación con todo lo que necesita y correrla igual en cualquier parte. Quién orquesta y dónde corre.
«En mi máquina funciona» es la frase más cara del software. La aplicación corre en el portátil del desarrollador, pero en el servidor falta una librería, la versión del lenguaje es otra o una variable no existe.
Un contenedor empaqueta la aplicación con todo lo que necesita: código, librerías, dependencias y configuración. Ese paquete corre igual en el portátil, en un servidor de pruebas y en producción.
Contenedor o máquina virtual
| Criterio | ||
|---|---|---|
| Qué incluye | Un sistema operativo completo, más la aplicación | Solo la aplicación y sus dependencias |
| Comparte | El hardware, a través del hipervisor | El núcleo del sistema operativo del servidor |
| Tamaño típico | Gigabytes | Megabytes a pocos gigabytes |
| Arranque | Minutos | Segundos |
| Aislamiento | Más fuerte: cada una tiene su sistema operativo | Por proceso, dentro del mismo sistema operativo |
No compiten: lo normal es correr muchos contenedores dentro de máquinas virtuales. La pregunta es quién administra esas máquinas.
Las cuatro piezas
Imagen
El contenedor ya cargado y sellado
Un paquete inmutable que se construye con un archivo de instrucciones (Dockerfile). Cada versión de tu app es una imagen nueva.Amazon ECR
El patio de contenedores
Registro privado de imágenes, con permisos de IAM y escaneo de vulnerabilidades. También tiene una galería pública.Amazon ECS
Las grúas del puerto
El orquestador de AWS: decide dónde corre cada contenedor, cuántos hay y reemplaza los que fallan.Amazon EKS
Las grúas, en el modelo estándar de la industria
Kubernetes administrado: AWS opera el plano de control en varias zonas de disponibilidad.
El orquestador decide qué corre y dónde. Falta el qué: los servidores donde corren los contenedores. Ahí eliges entre instancias EC2 que administras tú o AWS Fargate.
Amazon ECS: tareas y servicios
- 1
Clúster
Agrupación lógica donde corren tus contenedores. - 2
Definición de tarea (task definition)
La receta: qué imagen, cuánta CPU y memoria, qué puertos, qué rol de IAM y adónde van los logs. - 3
Tarea (task)
Una copia en ejecución de esa definición. Puede tener uno o varios contenedores que viven juntos. - 4
Servicio (service)
Mantiene N tareas corriendo, reemplaza las que fallan, las registra en un balanceador y puede escalar con Auto Scaling.
ECS es propio de AWS y se integra directo con IAM, CloudWatch, el ALB y el resto de servicios. Para el caso más simple, ECS Express Mode recibe una imagen y crea el servicio en Fargate, el Application Load Balancer, el escalado y la red en tu cuenta.
Cuándo elegir Amazon EKS
Kubernetes es el orquestador de código abierto más usado. EKS lo ofrece administrado: AWS opera el plano de control y tú defines tus aplicaciones con las mismas herramientas que en cualquier otro Kubernetes. Elige EKS cuando:
- Tu equipo ya sabe Kubernetes o tu empresa lo estandarizó.
- Necesitas portabilidad: correr lo mismo en AWS, en otra nube o en tu centro de datos.
- Quieres el ecosistema de Kubernetes: Helm, operadores y herramientas de la comunidad.
Si no tienes ninguna de esas razones, ECS suele ser más simple de operar. ECS no cobra aparte por el orquestador; EKS cobra por cada clúster, además de los servidores donde corren los contenedores.
Dónde corren: EC2 o Fargate
| Criterio | ||
|---|---|---|
| Quién administra los servidores | Tú: tipo de instancia, parches, capacidad del clúster | AWS: no ves ni administras servidores |
| Cómo se cobra | Por las instancias, estén llenas o medio vacías | Por la CPU y la memoria que pide cada tarea, mientras corre |
| Control | Total: tipos específicos, GPU, agentes propios en el host | Menos opciones, mucho menos trabajo |
| Conviene si | Cargas grandes y estables, o hardware especial | Quieres enfocarte en la aplicación; cargas variables |
Fargate funciona con ECS y con EKS. Es la forma serverless de correr contenedores, la misma idea que verás en qué es serverless.
Quiz
Pon a prueba lo que aprendiste
0 de 5 correctas · 5 sin responder
1.¿Qué diferencia principal hay entre un contenedor y una máquina virtual?
2.Un equipo quiere correr contenedores sin aprovisionar ni parchar servidores. ¿Qué usa?
3.¿Dónde se guardan y versionan las imágenes de contenedor en AWS?
4.Una empresa ya usa Kubernetes en su centro de datos y quiere usar las mismas herramientas en AWS. ¿Qué elige?
5.En Amazon ECS, ¿qué mantiene un número fijo de tareas corriendo y reemplaza las que fallan?