# Amazon ECS y Fargate

> AWS corre tus contenedores; con Fargate ni siquiera ves los servidores.

- Nivel: Intermedio
- Temas: AWS, Cloud
- URL: https://tidbit.legios.com.ar/es/amazon-ecs-and-fargate/
- En inglés: [Amazon ECS and Fargate](https://tidbit.legios.com.ar/amazon-ecs-and-fargate/)

**Amazon ECS** (Elastic Container Service) es el servicio de AWS que corre contenedores por vos. Escribís una **task definition**: qué imagen de contenedor usar, cuánta CPU y memoria necesita, qué puertos abre, qué variables de entorno recibe. Después creás un **service**: 'mantené tres copias de esta tarea corriendo detrás de este balanceador', y ECS se encarga de que siempre haya tres vivas, reemplazando las que se caen.

¿Dónde corren físicamente esos contenedores? Dos opciones. Con el tipo de lanzamiento EC2 mantenés una flota de instancias Amazon EC2 y ECS ubica las tareas ahí; vos parcheás y dimensionás las máquinas. Con **Fargate** no hay máquina que administrar: decís 'esta tarea necesita 1 vCPU y 2 GB', AWS consigue la capacidad, arranca el contenedor y te cobra por segundo mientras corre.

Ejemplo: una API en Python empaquetada como imagen Docker y subida a Amazon ECR, el registro de imágenes de AWS. Un service de ECS sobre Fargate corre dos copias en subredes privadas de una VPC con un balanceador de carga adelante; el autoscaling agrega copias cuando la CPU se mantiene arriba del 70%. Sacar una versión nueva es subir un tag de imagen nuevo y dejar que ECS lo despliegue copia por copia.

ECS es la forma más simple y más nativa de AWS para correr contenedores. Amazon EKS es la opción cuando un equipo ya trabaja con Kubernetes y quiere conservar esas herramientas.

## Una analogía

Un patio de comidas. ECS es el encargado que garantiza que tu local esté siempre abierto y con gente atendiendo. Con Fargate además dejás de alquilar el espacio físico: decís qué tamaño de local necesitás, aparece, y pagás solo mientras está abierto.

## Para quedarse

- La task definition es la receta; el service mantiene N copias corriendo y sanas.
- Fargate elimina los servidores: pagás por vCPU y GB durante los segundos que corre una tarea.
- Las imágenes suelen vivir en Amazon ECR, el registro de contenedores de AWS.
- ECS se conecta con IAM, balanceadores y CloudWatch sin configuración extra.

## Para seguir leyendo

- [¿Qué es Amazon ECS? (documentación oficial)](https://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/Welcome.html)
- [Página de AWS Fargate](https://aws.amazon.com/es/fargate/)

## Términos relacionados

- [Contenedor](https://tidbit.legios.com.ar/es/container/): Una caja cerrada con un programa y todo lo que necesita para correr en cualquier lado.
- [CPU](https://tidbit.legios.com.ar/es/cpu/): El chip que ejecuta tus programas, una instrucción tras otra, muy rápido.
- [Puerto](https://tidbit.legios.com.ar/es/port/): La puerta numerada de una computadora que dice a qué programa va una conexión.
- [Variables de entorno](https://tidbit.legios.com.ar/es/environment-variables/): Ajustes con nombre que un programa lee desde fuera de su código, como dónde está su base.
- [Amazon EC2](https://tidbit.legios.com.ar/es/amazon-ec2/): Computadoras virtuales que alquilás por hora, del tamaño que quieras, y después apagás.
- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Python](https://tidbit.legios.com.ar/es/python/): Un lenguaje de programación muy usado, conocido por ser fácil de leer y de escribir.
- [Docker](https://tidbit.legios.com.ar/es/docker/): La herramienta que popularizó los contenedores: empaquetás una vez, corre en todos lados.
