Tipo de execução EC2 versus Fargate
Compare o gerenciamento próprio de instâncias de contêiner EC2 com o uso do Fargate para executar contêineres sem servidor e entenda as diferenças de custo.
Tipo de execução EC2 versus Fargate é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.
Duas maneiras de executar tarefas do ECS
O ECS oferece dois tipos de execução que definem onde os contêineres são executados: o tipo de execução EC2 executa contêineres em instâncias EC2 que você provisiona e gerencia no cluster; o tipo de execução Fargate é um mecanismo computacional sem servidor no qual a AWS gerencia inteiramente os servidores subjacentes. A definição da tarefa e a configuração do serviço são quase idênticas nos dois casos — a principal diferença está na responsabilidade pelo gerenciamento da infraestrutura e no modelo de custos.
Tipo de execução EC2: controle total
Com o tipo de execução EC2, você registra instâncias EC2 como instâncias de contêiner no cluster usando o agente de contêiner do ECS (pré-instalado em AMIs otimizadas para o ECS). Você escolhe os tipos de instância, controla as configurações no nível do sistema operacional, aplica linhas de base de segurança personalizadas e usa instâncias Spot para reduzir custos. O ECS distribui as tarefas entre as instâncias registradas com base em estratégias de posicionamento por compactação ou distribuição. Você é responsável por corrigir, dimensionar e manter a frota EC2 subjacente.
# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.configFargate: contêineres sem servidor
Com o Fargate, o senhor especifica a CPU e a memória por tarefa, e a AWS provisiona a computação subjacente de forma invisível. Não há instâncias do EC2 para registrar, aplicar correções ou dimensionar: a AWS gerencia tudo. As tarefas têm seu próprio núcleo isolado (por meio de microVMs do Firecracker), proporcionando um isolamento de segurança mais forte do que as instâncias de contêiner do EC2, nas quais várias tarefas compartilham o mesmo hospedeiro. O Fargate exige o modo de rede awsvpc, o que significa que cada tarefa recebe sua própria ENI e seu próprio endereço IP da VPC.
aws ecs run-task \
--cluster 'MyAppCluster' \
--task-definition 'myapp-task:5' \
--launch-type FARGATE \
--network-configuration '{
"awsvpcConfiguration": {
"subnets": ["subnet-aaa111"],
"securityGroups": ["sg-xyz"],
"assignPublicIp": "ENABLED"
}
}'Comparação dos modelos de custo
Os modelos de custo são fundamentalmente diferentes. Tipo de execução EC2: o senhor paga pelas instâncias subjacentes do EC2, independentemente de haver tarefas em execução, mas pode usar Reserved Instances ou Savings Plans para obter descontos e Spot Instances para economizar até 90% em cargas de trabalho interrompíveis. Fargate: o senhor paga somente pela vCPU e pela memória consumidas por tarefa e por segundo, sem custo de ociosidade entre as tarefas. Para cargas de trabalho variáveis ou em lote, o Fargate costuma ser mais barato; para cargas de trabalho com utilização consistentemente alta, o EC2 com Reserved Instances pode ser mais barato.
Fargate Spot para economizar custos
O Fargate Spot fornece computação do Fargate com preços significativamente reduzidos, com descontos de até 70%, em troca da possibilidade de interrupção quando a AWS precisar recuperar a capacidade. O Fargate Spot é ideal para processamento em lote, pipelines de CI/CD e ambientes de desenvolvimento ou homologação. Configure uma estratégia de provedor de capacidade para combinar Fargate sob demanda e Fargate Spot: use base=1 no Fargate para garantir pelo menos uma tarefa, e valores de weight para dividir a capacidade restante entre ambos.
aws ecs create-service \
--cluster 'MyAppCluster' \
--service-name 'BatchService' \
--task-definition 'batch-task:1' \
--desired-count 10 \
--capacity-provider-strategy \
'capacityProvider=FARGATE,weight=1,base=1' \
'capacityProvider=FARGATE_SPOT,weight=4'Quando escolher o tipo de execução EC2
Escolha o tipo de execução EC2 quando precisar de: instâncias com GPU (o Fargate tem suporte limitado a GPU), tipos específicos de instância que não estão disponíveis no Fargate, configuração personalizada do sistema operacional (ajuste do núcleo e controladores personalizados), desempenho de rede que exija grupos de posicionamento ou redes aprimoradas, contêineres do Windows (o EC2 oferece suporte a contêineres do Windows Server; o Fargate também oferece suporte ao Windows, mas com limitações) ou quando executar com utilização consistentemente alta, situação em que Reserved Instances do EC2 oferecem uma vantagem de custo significativa em relação à cobrança por segundo do Fargate.
Quando escolher o Fargate
Escolha o Fargate quando quiser: eliminar a sobrecarga de gerenciamento do EC2 (sem aplicação de correções no sistema operacional e sem dimensionamento do cluster), pagar apenas pelo que usar por segundo, executar cargas de trabalho variáveis ou em lote que não justifiquem capacidade ociosa do EC2, obter isolamento mais forte das tarefas por meio de microVMs do Firecracker ou acelerar o desenvolvimento concentrando-se exclusivamente no código da aplicação. O Fargate é a recomendação padrão para novas cargas de trabalho do ECS no exame SAA-C03, a menos que um requisito específico do EC2 seja indicado.
Provedores de capacidade do ECS
Os provedores de capacidade abstraem a camada de computação dos serviços do ECS. Para o EC2, um provedor de capacidade é vinculado a um Grupo de Auto Scaling; o ECS dimensiona o ASG automaticamente quando as tarefas não podem ser posicionadas por falta de capacidade. Para o Fargate, FARGATE e FARGATE_SPOT são provedores de capacidade integrados. Definir uma estratégia de provedor de capacidade em um serviço permite combinar capacidade sob demanda e Spot/Fargate Spot, oferecendo controle detalhado sobre os compromissos entre custo e disponibilidade para cada carga de trabalho.
Comparação da sobrecarga operacional
A sobrecarga operacional difere significativamente entre os tipos de execução. O tipo de execução EC2 exige: seleção e atualização da AMI, configuração do Auto Scaling do EC2, aplicação de correções no sistema operacional por meio do SSM ou de scripts personalizados, gerenciamento da capacidade das instâncias de contêiner e reforço da segurança no nível da instância. O Fargate elimina tudo isso: a AWS cuida da aplicação de correções na plataforma do Fargate, não há instâncias para gerenciar nem planejamento da capacidade do cluster. No entanto, o Fargate oferece menos flexibilidade para personalização no nível do sistema operacional e ajuste do desempenho da rede.
Dimensionamento de CPU e memória das tarefas do Fargate
As definições de tarefas do Fargate devem especificar CPU e memória a partir de um conjunto fixo de combinações. Valores de CPU: 256, 512, 1024, 2048, 4096, 8192, 16384 (em unidades de vCPU, sendo 1024 = 1 vCPU). A memória deve estar dentro dos intervalos permitidos para cada valor de CPU; por exemplo, 256 de CPU permite de 512 a 2048 MB de memória. Os contêineres dentro da tarefa compartilham o limite de CPU e memória da tarefa. O dimensionamento correto é importante: o Fargate cobra exatamente o que o senhor especifica, portanto o provisionamento excessivo desperdiça dinheiro sem trazer benefício real de desempenho quando as cargas de trabalho são limitadas pela CPU.
# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MBECS Exec para depuração
O ECS Exec permite abrir uma sessão interativa de shell diretamente em um contêiner em execução, tanto no EC2 quanto no Fargate, sem SSH ou hospedeiros bastião. Por baixo dos panos, ele usa o Session Manager do AWS Systems Manager. Habilite-o no serviço e use a CLI execute-command para iniciar uma sessão do bash. Isso é extremamente útil para depurar problemas de produção em contêineres. A função da tarefa precisa de ssmmessages:CreateControlChannel e das permissões relacionadas do SSM.
aws ecs execute-command \
--cluster 'MyAppCluster' \
--task 'abc123def456' \
--container 'myapp' \
--interactive \
--command '/bin/bash'Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.
Recapitulação da lição
Nesta lição, o senhor aprendeu que: o tipo de execução EC2 oferece controle total sobre os tipos de instância e a configuração do sistema operacional, ao custo do gerenciamento da frota subjacente — ideal para GPU, hardware especializado ou cargas de trabalho com utilização consistentemente alta; o Fargate elimina o gerenciamento da infraestrutura, com cobrança das tarefas por segundo e forte isolamento do Firecracker — ideal para a maioria das cargas de trabalho web/de API e dos trabalhos em lote; e o Fargate Spot reduz os custos em até 70% para cargas de trabalho tolerantes a interrupções. Em seguida, exploraremos o Amazon ECR para armazenar e obter imagens de contêiner.
Aprenda AWS Solutions Architect com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Tipo de execução EC2 versus Fargate” é grátis?
Sim — o texto completo de “Tipo de execução EC2 versus Fargate” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.
O que vou aprender em “Tipo de execução EC2 versus Fargate”?
Compare o gerenciamento próprio de instâncias de contêiner EC2 com o uso do Fargate para executar contêineres sem servidor e entenda as diferenças de custo. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AWS Solutions Architect?
Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Tipo de execução EC2 versus Fargate”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AWS Solutions Architect?
Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Clusters do ECS, definições de tarefas e serviços
- Tipo de execução EC2 versus Fargate
- ECR: Armazenamento e extração de imagens de contêiner
- Escalonamento automático e balanceamento de carga de serviços do ECS