Saltar al contenido
aprendeaws.dev

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.

Al terminar podrás

  • →Explicar qué es un contenedor y en qué se diferencia de una máquina virtual
  • →Elegir entre ECS y EKS
  • →Decidir entre Fargate y EC2 para correr contenedores

«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

CriterioMáquina virtualContenedor
Qué incluyeUn sistema operativo completo, más la aplicaciónSolo la aplicación y sus dependencias
ComparteEl hardware, a través del hipervisorEl núcleo del sistema operativo del servidor
Tamaño típicoGigabytesMegabytes a pocos gigabytes
ArranqueMinutosSegundos
AislamientoMás fuerte: cada una tiene su sistema operativoPor 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. 1

    Clúster

    Agrupación lógica donde corren tus contenedores.
  2. 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. 3

    Tarea (task)

    Una copia en ejecución de esa definición. Puede tener uno o varios contenedores que viven juntos.
  4. 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

CriterioSobre EC2Sobre Fargate
Quién administra los servidoresTú: tipo de instancia, parches, capacidad del clústerAWS: no ves ni administras servidores
Cómo se cobraPor las instancias, estén llenas o medio vacíasPor la CPU y la memoria que pide cada tarea, mientras corre
ControlTotal: tipos específicos, GPU, agentes propios en el hostMenos opciones, mucho menos trabajo
Conviene siCargas grandes y estables, o hardware especialQuieres 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. 1.¿Qué diferencia principal hay entre un contenedor y una máquina virtual?

  2. 2.Un equipo quiere correr contenedores sin aprovisionar ni parchar servidores. ¿Qué usa?

  3. 3.¿Dónde se guardan y versionan las imágenes de contenedor en AWS?

  4. 4.Una empresa ya usa Kubernetes en su centro de datos y quiere usar las mismas herramientas en AWS. ¿Qué elige?

  5. 5.En Amazon ECS, ¿qué mantiene un número fijo de tareas corriendo y reemplaza las que fallan?