# ECS: cluster, service, task definition e task, o que cada um faz

> Os quatro conceitos do Amazon ECS explicados com um desenho: o cluster, o service, a task definition e a task, e como se encaixam.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: Containers, Carreira
- URL: https://pages.formacaoaws.com.br/blog/ecs-cluster-service-task-definition/
- Aula de origem: "Decifrando o ECS: Entenda nesse vídeo o que é cluster, service, task definition e task." (https://www.youtube.com/watch?v=8iQU7azZF5s)

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.

![Um cluster com uma instância EC2 e dois services dentro dele: o service A, web, e o service B, worker](https://pages.formacaoaws.com.br/blog/assets/posts/ecs-cluster-service-task-definition/cluster-service-task-definition.svg)

## 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.

![Cada service usa a sua task definition e lança as tasks no cluster: o service A lança 1 task A, o service B lança 2 tasks B](https://pages.formacaoaws.com.br/blog/assets/posts/ecs-cluster-service-task-definition/service-lanca-as-tasks.svg)

**Fluxo:** Cluster (as instâncias EC2) → Service (quantas tasks quer rodando) → Task definition (como é o container) → Task (o container em execução)

## 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](https://pages.formacaoaws.com.br/blog/primeiro-container-em-producao-no-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.
