Demo de Ecs compose-x
Instalar o ecs-compose-x:
python3 -m venv ~/venv
source ~/venv/bin/activate
pip install pip -U
pip install ecs-composex
pip install "ecs-composex[ecrscan]" # opcional
Conforme a documentação, obter variáveis de ambiente do AWS CLI (AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID, e AWS_SESSION_TOKEN) e executar:
ecs-compose-x init
Saída do console será como:
2023-11-03 19:53:15 [ INFO] ECS Setting awsvpcTrunking set to 'enabled'
2023-11-03 19:53:15 [ INFO] ECS Setting serviceLongArnFormat set to 'enabled'
2023-11-03 19:53:16 [ INFO] ECS Setting taskLongArnFormat set to 'enabled'
2023-11-03 19:53:16 [ INFO] ECS Setting containerInstanceLongArnFormat set to 'enabled'
2023-11-03 19:53:16 [ INFO] ECS Setting containerInsights set to 'enabled'
2023-11-03 19:53:18 [ INFO] Bucket ecs-composex-xxxxxxxxxx-us-east-1 successfully created.
Criar uma hosted zone no Route53 desta conta (onde o ecs-composex tem permissões) usando um subdomain que possa ser delegado para esta conta. A delegação é feita copiando os 4 nameservers da hosted zone e criando um registro NS no domínio pai.
Para este exemplo estamos usando o subdomain capps.vee.codes
.
- docker-compose.yaml: arquivo de deployment comum (descreve serviços, volumes, networks, etc).
- docker-compose.override.yaml: arquivo de deployment específico para o ambiente de desenvolvimento local (sobrescreve e completa configurações).
- aws-compose-x.yaml: arquivo de deployment específico para o ambiente ECS (sobrescreve e completa configurações).
ecs-compose-x up -f docker-compose.yaml -f aws-compose-x.yaml -n frontend-app
Listar os services:
./list-services.sh