ECS: cluster, service, task definition e task, o que cada um faz
Quem começa no Amazon ECS esbarra em quatro palavras ao mesmo tempo: cluster, service, task definition e task. Abaixo, o que cada peça faz e como elas se ligam, com o desenho que fiz na aula, gravada em agosto de 2021.
Por que entender isso antes de usar o ECS
O ECS está em alta por causa do uso cada vez maior de Docker e de estruturas de container. O que acontece com muita gente é começar a usar o serviço sem conhecer os conceitos por trás dele. Aí fica confuso: você chega no console, se depara com cluster, service, task e task definition e pensa que era mais simples.
Entendendo esses quatro, principalmente, o resto fica muito mais simples. O desenho abaixo parte de uma instância EC2, que é o caminho natural para quem quer ver onde o ECS se encaixa.
O cluster: onde tudo roda
Para o ECS, uma instância EC2 é um elemento que compõe o cluster. Dentro de um cluster você pode ter diversas instâncias EC2. No meu desenho há só uma, mas o conceito é o mesmo.
Quando você lança mais instâncias EC2, elas passam a compor o cluster.
O service: o que você quer rodando
O cluster suporta services dentro dele. Imagine que você quer dois: o primeiro é uma aplicação web, o segundo é um worker, que fica executando processos em segundo plano para a aplicação web. Você precisa dos dois rodando para a aplicação funcionar. Chamo o primeiro de service A e o segundo de service B.
Aqui vem a pergunta que todo mundo faz: o service é um container? Ainda não. O service é apenas uma definição do que você quer que esteja rodando dentro do cluster. E, ao criá-lo, você o associa a uma task definition.
A task definition: a definição do container
A task definition é a definição do que é um container. É nela que você diz: a minha task definition do web é um container que vai rodar na porta 80, usa a imagem que está no path tal e tem as variáveis de ambiente x, y, z. O volume também entra aí. Tudo que é inerente a container você define na task definition.
Quando você cria o service, associa a ele uma task definition. É assim que o service entende, no fim das contas, o que é uma tarefa quando for lançá-la. Cada service conversa com a sua: o do web com a que mostra como lançar o web, o do worker com a que mostra como lançar o worker.
A task: o container de verdade
A task é a última etapa, e ela finalmente é o container. Ao continuar a criação do service, é ali que você diz quantas tasks quer lançar. Por padrão, você pode pedir uma.
No exemplo da aula, o service do web fica com uma task e o do worker com duas. Com isso definido, o service segue a regra dele: olha o cluster, vê a quantidade de tasks que você pediu e lança os containers, que são as tasks. No fim, o cluster tem um container do A e dois do B, que é o requisito que eu tinha colocado.
Como as quatro peças se ligam
Resumindo o caminho, na ordem em que você lida com elas:
- Cluster: o conjunto de instâncias EC2 onde as coisas rodam.
- Service: a definição do que você quer rodando no cluster e de quantas tasks quer de cada coisa.
- Task definition: a declaração de como é o container: imagem, porta, variáveis de ambiente, volume.
- Task: o container lançado a partir da task definition, na quantidade que o service pediu.
Com essa ótica, o ECS deixa de ser uma tela com palavras soltas. Quando você criar novos services, eles vão lançar tarefas dentro do cluster que você definiu, e cada service vai conversar com a sua task definition.
Da teoria à prática
Este texto é só a parte teórica. Para ver os conceitos funcionando, com a imagem no Amazon ECR, o cluster, a task definition e o service no console, siga o passo a passo em Primeiro container Docker em produção no Amazon ECS.
Checklist
- [ ] Sei dizer que o cluster é formado pelas instâncias EC2 e abriga os services.
- [ ] Sei que o service é a definição do que quero rodando, e não o container.
- [ ] Sei que a task definition descreve o container: imagem, porta, variáveis de ambiente e volume.
- [ ] Sei que a task é o container lançado pelo service.
- [ ] Sei dizer onde defino quantas tasks cada service lança.
O que os alunos dizem

“Eu trabalhava há mais de 20 anos com TI tradicional e atendia empresas da região, mas sentia minha carreira estagnada.”
Carlos Souza, Consultor Cloud
Ver depoimento
“A Formação AWS me deu segurança técnica para voltar ao mercado e ser a escolha certa para a empresa.”
Flávio Lucena, Gestor de TI
Ver depoimento
“Depois do layoff, percebi que o mercado exigia AWS e eu não sabia nem por onde começar.”
Gisele, Desenvolvedora Java Sênior
Ver depoimento
Formação AWS
Aprenda AWS e IA na prática, com projeto real e acompanhamento. Converse com o time sobre a Formação AWS.
Agende uma conversaPrefere assistir?
A aula completa (13 min) está no canal Domine AWS. O vídeo toca aqui mesmo.

