Blog

ES
AWS Elastic Container Service (ECS)

AWS Elastic Container Service (ECS)

8 min de lectura

Series: El Camino hacia AWS

2 partes

Qué es Amazon ECS y cómo desplegar una aplicación contenedorizada utilizando AWS Fargate, un Application Load Balancer (ALB) y el API Gateway. Todo paso a paso en AWS.

¿Qué es Elastic Container Service (ECS)?

Amazon Elastic Container Service (ECS) es un servicio de orquestación de contenedores. Permite desplegar, administrar y escalar aplicaciones en contenedores (Docker) de manera sencilla. ECS se encarga de colocar los contenedores en la infraestructura adecuada, gestionar su ciclo de vida y asegurar que la aplicación esté disponible muy fácilmente.

¿Para qué nos sirve?

ECS elimina la complejidad de gestionar manualmente el software de orquestación de contenedores. Nos sirve para:

  • Escalabilidad: Aumentar o disminuir el número de contenedores automáticamente según la demanda.
  • Alta Disponibilidad: Ejecutar la aplicación en múltiples zonas de disponibilidad para evitar caídas.
  • Gestión Simplificada: Integrarse nativamente con otros servicios de AWS como balanceadores de carga (ALB), seguridad (IAM) y monitoreo (CloudWatch).

Crear un Elastic Container Service (ECS)

Dirígete al servicio Amazon Elastic Container Service en la consola de AWS:

Elastic Container Service (ECS) AWS

1. Crear la "Task Definition"

La Task Definition es el plano de la aplicación, define qué imagen de Docker usar, cuánta memoria necesita y cómo debe comportarse.

  1. En el menú lateral, ve a Task Definitions > Create new task definition.
  2. Configuración de la tarea:
    • Family name: Asigna un nombre, por ejemplo: task-name.
    • Launch Type: Selecciona AWS Fargate (sin gestionar servidores).
    • OS/Architecture: Linux/X86_64.
    • Task Size: Define la cantidad de CPU y RAM requerida para tu contenedor.

Crear Task en ECS de AWS

  1. Container Details
    • Name: container-name.
    • Image URI: Pega la URI de tu imagen (desde ECR o Docker Hub).
    • Container Port: Especifica el puerto que expusiste en tu Dockerfile (ej. 3000, 8080).

Configuración del container en ECS de AWS

  1. (Opcional) Define las variables de entorno si tu aplicación las requiere y finaliza la creación.

2. Crear el Cluster

El clúster es la agrupación lógica de recursos donde se ejecutarán tus tareas.

  1. Ir a Clusters > Create Cluster.
  2. Cluster name: test-cluster.
  3. Infrastructure: Asegúrate de que AWS Fargate (serverless) esté marcado.
  4. Haz clic en Create.

Crear cluster en ECS de AWS

3. Crear el servicio y el balanceador de carga

En este paso uniremos el contenedor con la red y el balanceador para exponerlo a internet.

  1. Entra al clúster que acabas de crear.
  2. En la pestaña Services, haz clic en Create.
  3. Service details:
    1. Selecciona la "Task Definition" (Family) que creaste en el paso 1.

Crear servicio en ECS de AWS

  1. Deployment configuration
    1. Desired tasks: (Se recomienda al menos 2 para garantizar alta disponibilidad y probar el balanceo de carga).
  2. Networking:
    1. Security Group: Crea uno nuevo.

Abre el puerto de tu app (Custom TCP) y permite tráfico desde "Anywhere" (0.0.0.0/0) temporalmente (luego lo restringiremos al ALB).

Configurar networking del servicio en ECS de AWS

  1. Load balancing: Activa esta opción para distribuir el tráfico.
    1. Load balancer type: Selecciona Application Load Balancer (ALB).
    2. Load balancer name: Escribe un nombre (ej: api-alb). AWS creará el recurso automáticamente.
    3. Container to load balance: Selecciona tu contenedor y el puerto configurado previamente.
    4. Target group: Deja que cree uno nuevo (ej: create new).
    5. Listener: Port 80 (HTTP).

Configurar load balancer del servicio en ECS de AWS

Configurar el target group del servicio en ECS de AWS

  1. Verificar el despliegue:
    1. Ve a la consola de EC2 > Load balancers.
    2. Selecciona el load balancer (ALB) creado.
    3. Copia el DNS name, pégalo en tu navegador y verifica que tu aplicación responda.

4. El API gateway

Para añadir una capa de gestión, seguridad y enrutamiento, colocaremos un API Gateway delante del balanceador.

API Gateway AWS

  1. Ve a la consola de API Gateway.
  2. Selecciona HTTP API (es más barata y rápida que REST API para este caso) o REST API.
  3. Crear integración:
    1. Tipo de integración: HTTP.
    2. URL del punto de enlace: Usa el DNS del Balanceador de Carga (ALB)

Configurar API Gateway AWS

  1. Configurar rutas:
    1. Define las rutas que manejará tu API (ej: POST /usuarios, GET /productos).

API Gateway configurar rutas AWS

  1. Deploy
    1. Crea una etapa (Stage) llamada prod o v1.

API Gateway crear stage AWS

  1. Vamos Deploy > Stages en el menú izquierdo. Allí encontrarás la Invoke URL. Esta es la URL pública final para acceder a tu API.

API Gateway Stages AWS

La arquitectura final es: Usuario -> API Gateway -> ALB -> ECS Fargate -> RDS.

Comparte este artículo en

Avatar byandrev

Andres Parra

Software Engineer

Soy Andrés Parra, Ingeniero de Software apasionado por crear soluciones tecnológicas escalables e innovadoras. Me especializo en la construcción de aplicaciones web modernas, dominando un stack versátil que incluye JavaScript, TypeScript, Python y Java, junto con frameworks como React, Next.js y Spring Boot. Interesado en las últimas tecnologías y herramientas de desarrollo.