O Que É o Amazon ECS? Orquestração de Containers da AWS
O Amazon ECS (Elastic Container Service) é o orquestrador nativo da AWS para rodar e escalar containers, seja em instâncias EC2 que você gerencia ou no Fargate serverless.
O ECS é a resposta da AWS para "tenho imagens de container, agora rode-as de forma confiável em escala." Ele agenda containers através da capacidade de compute, mantém em execução o número desejado de cópias, integra-se com load balancers, e lida com rolling updates. É mais simples de adotar que o Kubernetes e ainda assim de nível de produção.
Conceitos centrais do ECS
- Task definition - o blueprint que descreve containers, imagens, CPU e memória.
- Task - uma instância em execução de uma task definition.
- Service - mantém uma contagem desejada de tasks saudáveis e atrás de um load balancer.
- Cluster - o agrupamento lógico de capacidade em que suas tasks rodam.
Launch types EC2 vs Fargate
Com o launch type EC2, você gerencia uma frota de instâncias que hospedam suas tasks. Com o Fargate, a AWS provisiona o compute por task e você nunca vê um servidor. O Fargate troca algum custo e controle pela conveniência de não gerenciar nodes.
Como o ECS implanta atualizações
Quando você registra uma nova revisão de task definition e atualiza o service, o ECS executa um rolling deployment: ele sobe novas tasks, aguarda os health checks, então drena e para as antigas. Você também pode integrar o CodeDeploy para rollouts blue-green.
Networking e load balancing
Os ECS services normalmente ficam atrás de um Application Load Balancer que distribui o tráfego e roda health checks. As tasks ganham suas próprias interfaces de rede na sua VPC, então você controla os security groups e subnets exatamente como faria para o EC2.
Papel no CI/CD
Um pipeline faz build e envia uma imagem Docker para o ECR, registra uma nova task definition apontando para aquele tag de imagem, e chama update-service para disparar um rolling deploy. O GitHub Actions faz isso com o tooling oficial aws-actions, autenticando via uma OIDC role. Rodar o CI em um runner na mesma AWS region (como a Latchkey faz) mantém o push para o ECR e o deploy rápidos.
Principais conclusões
- O ECS é o orquestrador de containers da AWS construído em torno de task definitions, tasks e services.
- Ele roda em capacidade EC2 autogerenciada ou no Fargate serverless.
- Pipelines implantam enviando uma imagem para o ECR e atualizando o ECS service.