Fazer deploy no ECS manualmente está ótimo na primeira vez. Depois disso, você precisa de um pipeline. O AWS CodePipeline com GitHub como fonte e CodeBuild cuida de todo o ciclo: mudança no código, build Docker, push para ECR, deploy no ECS.
TL;DR: Configure um pipeline CI/CD para ECS usando AWS CodePipeline com GitHub e CodeBuild.
Stack: AWS CodePipeline, CodeBuild, ECS, ECR, GitHub
Nível: Intermediário
Tempo de leitura: ~8 min
Visão geral dos passos
- No CodePipeline, crie um novo pipeline e nomeie.
- Selecione GitHub (Version 2) como fonte e conecte sua conta.
- Selecione repositório e branch. Habilite detecção de mudanças.
- Para build, selecione AWS CodeBuild com Ubuntu, Runtime Standard, nova service role e “Use a buildspec file.”
- Para deploy, selecione Amazon ECS, seu cluster e serviço.
buildspec.yml
version: 0.2
phases:
pre_build:
commands:
- aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin CONTA.dkr.ecr.us-east-1.amazonaws.com
- REPOSITORY_URI=CONTA.dkr.ecr.us-east-1.amazonaws.com/seu-repo
build:
commands:
- docker build -t REPO:latest .
post_build:
commands:
- docker push REPO:latest
- printf '[{"name":"seu-container","imageUri":"REPO:latest"}]' > imagedefinitions.json
artifacts:
files: imagedefinitions.json
O que você construiu
Um pipeline CI/CD funcionando: push no GitHub, CodePipeline dispara, CodeBuild constrói e envia imagem Docker para ECR, ECS faz deploy da nova task definition.
Próximos passos
- Adicione aprovação manual entre build e deploy para produção.
- Armazene URI do ECR como variável de ambiente do CodePipeline.
- Use as fases do buildspec corretamente: pre_build para login, build para imagem, post_build para push e atualização.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.