Cómo ejecutar contenedores en AWS ECS con Fargate

Clase 21 de 33Curso Práctico de Cloud Computing con AWS

Resumen

Aprende a desplegar tu contenedor Docker en AWS ECS con Fargate de forma simple y segura. Aquí verás cómo crear un clúster, registrar una definición de tarea, lanzar la tarea y obtener la IP pública para publicar tu servicio, incluso asociándolo a un dominio en Route 53. Todo con un enfoque práctico y sin gestionar máquinas base.

¿Cómo desplegar en AWS ECS con Fargate paso a paso?

Para poner en marcha un contenedor en ECS usando Fargate, se sigue un flujo claro: repositorio de imagen, clúster, definición de tarea y ejecución. La clave es que Fargate abstrae la infraestructura, por lo que te enfocas en recursos, puertos y red.

¿Cómo preparar repositorios y clúster en ECS?

  • Entra a la consola de Amazon y elige ECS.
  • Ubica la sección de repositorios y copia la URL del repositorio. Evita espacios en blanco al copiar.
  • Ve a Clústeres y selecciona crear uno nuevo.
  • Elige la opción de solo red basada en AWS Fargate.
  • Asigna un nombre y crea o usa un VPC existente.
  • Verifica el clúster: podrás ver servicios, tareas y tareas pendientes, y entrar por el nombre del clúster.

¿Cómo crear una definición de tarea Fargate?

  • Crea una definición de tarea y elige Fargate.
  • Asigna un nombre, por ejemplo: web.tutsi.
  • Selecciona el rol ECS y deja la red por defecto.
  • Define memoria y CPU. Nota: con poca memoria no podrás asignar mucho CPU y viceversa.
  • Añade un contenedor con nombre, por ejemplo: webquotes-tutsi.
  • Pega la URL del SR donde está tu imagen de Docker.
  • Asigna 256 MB de memoria para el contenedor y mapea el puerto 80.
  • Deja sin configurar el health check y sin volúmenes si la imagen ya contiene todo lo necesario.
  • Guarda y crea la definición.

¿Cómo ejecutar la tarea y obtener la IP pública?

  • Entra a tu clúster y crea una tarea nueva con Fargate.
  • Selecciona la definición de tarea recién creada y el clúster default.
  • Usa la subred default y el grupo de seguridad por defecto.
  • Habilita la opción de autoasignar IP pública.
  • Lanza la tarea y espera a que el estado pase a running.
  • En la tarea, copia la IP pública y ábrela en un navegador en una nueva pestaña.
  • Si ya tienes un dominio o subdominio en Route 53, asígnale esta IP para publicar tu servicio.

¿Qué conceptos y habilidades aplicarás en AWS ECS y Fargate?

Comprender los términos clave facilita la operación y evita errores de configuración. Aquí se aplican varias habilidades prácticas del ecosistema de contenedores en AWS.

  • ECS (Elastic Container Service): orquestación de contenedores para ejecutar tareas y servicios.
  • Fargate: ejecución sin servidor que evita administrar máquinas base.
  • Clúster: agrupación lógica donde corren tus tareas.
  • Definición de tarea: plantilla que define contenedor, imagen, recursos, puertos y variables.
  • Repositorio e imagen de Docker: origen de la imagen, referenciada por una URL copiada desde el SR.
  • Rol ECS: permisos necesarios para que la tarea acceda a recursos.
  • VPC y red: entorno de red donde viven las tareas.
  • Memoria y CPU: recursos asignados; su combinación tiene límites compatibles.
  • Puerto 80: exposición HTTP típica para acceder al contenedor vía navegador.
  • Health check: validación de salud del contenedor; puede omitirse si no es necesario.
  • Volúmenes: almacenamiento adicional; no se usan cuando la imagen ya contiene todo.
  • Grupo de seguridad: reglas de entrada/salida para el tráfico del contenedor.
  • IP pública autoasignada: permite acceder desde internet.
  • Route 53: asignación de dominio o subdominio a la IP pública.

¿Qué configuraciones críticas debes cuidar?

Estos detalles marcan la diferencia para que el despliegue funcione a la primera y sea accesible desde fuera.

  • Verifica la URL del repositorio al pegarla. Sin espacios de más.
  • Elige Fargate y la plantilla de solo red para simplificar la infraestructura.
  • Define memoria y CPU con combinaciones válidas. Si una es muy baja, limitará a la otra.
  • Mapea el puerto 80 del contenedor. Asegura que el grupo de seguridad permita tráfico HTTP si aplica.
  • Deja la red por defecto si no necesitas personalizar subredes o rutas.
  • Habilita la IP pública autoasignada para probar en navegador.
  • Evita volúmenes y health check si tu imagen ya incluye todo y es estable.
  • Usa el clúster default, subred default y grupo de seguridad por defecto para acelerar el arranque.
  • Una vez en ejecución, copia la IP pública y, si lo deseas, configura Route 53 para dominio o subdominio.

¿Te gustaría que profundicemos en buenas prácticas de definiciones de tarea o en publicación con Route 53? Deja tus dudas y cuéntanos qué parte quieres explorar a fondo.