Rodar um serviço ECS sem HTTPS é uma falha de segurança e um problema de experiência do usuário. Adicionar um ALB com um certificado ACM dá a você terminação HTTPS, e o ECS registra os IPs das tasks diretamente no target group.
TL;DR: Configure um Application Load Balancer com certificado TLS do ACM para expor um serviço ECS via HTTPS.
Stack: AWS ALB, ECS, ACM, Route 53
Nível: Intermediário
Tempo de leitura: ~8 min
Passos
- Solicite um certificado no ACM e valide via DNS. O certificado deve estar na mesma região do ALB.
- Em EC2, vá para Load Balancers e crie um Application Load Balancer. Defina como internet-facing, selecione sua VPC e sub-redes públicas, e configure o security group para permitir portas 80 e 443.
- Crie um Target Group com tipo IP (para tasks Fargate). Defina o protocolo e porta correspondentes ao seu container.
- Adicione dois listeners: porta 80 redirecionando para HTTPS (443), e porta 443 encaminhando para o target group com seu certificado ACM.
- No Route 53, crie um registro A (Alias) na sua hosted zone apontando seu domínio para o nome DNS do ALB.
- Ao criar ou atualizar o serviço ECS, selecione o load balancer e o target group. O ECS registrará os IPs das tasks automaticamente.
O que você construiu
Um serviço ECS acessível via HTTPS por um ALB, com certificado ACM para terminação TLS e um registro Route 53 apontando seu domínio para o load balancer.
Próximos passos
- Configure o listener HTTP para redirecionar todo o tráfego da porta 80 para HTTPS, para usuários que digitam o domínio sem https:// ainda receberem tráfego criptografado.
- Use validação DNS do ACM (não e-mail) para renovação automática do certificado.
- Habilite logs de acesso do ALB no S3 para compliance e depuração.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.