CRM Docs

ECS

Elastic Container Service — orquestração de containers

O Amazon ECS (Elastic Container Service) é o serviço que executa os containers Docker da API e de processos em background do CRM. Em vez de gerenciar servidores VM manualmente, você define o que rodar (imagem, CPU, memória) na Task Definition e o ECS cuida de onde e quantas cópias manter no ar.

Conceitos principais

ConceitoO que éAnalogia
ClusterAgrupamento lógico de capacidade (Fargate ou EC2)“Datacenter” do ECS
ServiceMantém N tasks iguais rodando e faz deploy rolling“Aplicação sempre ligada”
TaskUma ou mais instâncias de containers definidos na TD“Pod” em execução
Task DefinitionBlueprint: imagem, portas, env, logs“Receita” do container
ContainerProcesso isolado dentro da task (geralmente 1 por task na API)O processo .NET/Node/etc.

Fargate vs EC2

ModoVocê gerenciaCusto / operaçãoUso comum no CRM
FargateSó task size (CPU/RAM)Paga por vCPU-hora e GB-hora; sem SSH em hostAPIs stateless, deploy simples
EC2Instâncias do clusterMais controle; precisa patch de SOCargas muito customizadas ou legado

Na prática, APIs do CRM costumam usar Fargate no cluster do ambiente (produção, homologação).

Fluxo de deploy

  1. Build gera imagem e envia ao ECR.
  2. Nova revisão da Task Definition referencia a tag da imagem.
  3. O ECS Service atualiza com estratégia de deploy (rolling, blue/green conforme configuração).
  4. Tasks novas entram no Target Group; o ALB só envia tráfego quando o health check passa.
  5. Tasks antigas são encerradas após o período de drenagem.

Configurações que importam no dia a dia

ParâmetroEfeito
Desired countQuantas tasks o service tenta manter (ex.: 2 em produção para HA)
Minimum healthy percentQuantas tasks podem ficar fora durante deploy (ex.: 50% com 2 tasks = 1 sempre up)
Maximum percentQuantas tasks extras podem subir temporariamente no deploy
PlacementEm Fargate, AWS escolhe AZ; em EC2, constraints de host
Service Connect / Service DiscoveryComunicação entre microserviços no mesmo cluster (se usado)

Logs e observabilidade

  • awslogs: driver que envia stdout/stderr para CloudWatch Logs (grupo definido na task definition).
  • Métricas no CloudWatch: CPU, memória, contagem de tasks, eventos de deploy.
  • Alarmes podem disparar escala (Application Auto Scaling) ou notificação.

Rede e segurança

  • Tasks rodam em subnets (públicas ou privadas) da VPC.
  • O Security Group da task normalmente só aceita tráfego na porta da API vindos do security group do ALB.
  • Saída para internet (ex.: APIs externas, S3) usa NAT Gateway ou endpoints VPC conforme arquitetura.

Se a API não responde após deploy, verifique nesta ordem: health check do Target Group → security group → variáveis de ambiente na Task Definition → logs no CloudWatch da task que falhou ao iniciar.

Relação com outros serviços

ServiçoRelação
ECROrigem da imagem image na task definition
TDDefine container, recursos e env
TGRegistra tasks saudáveis para o ALB
ALBEntrada HTTP/HTTPS para o service
SGRegras de entrada/saída das ENIs das tasks
S3Acesso via IAM role da task (não chave em disco)

On this page