Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Estudos/Guia / Deep Dive
RSSMarkdownLLMs
Guia / Deep DiveServerless / Containers

Lambda vs ECS: o guia de decisão do arquiteto de compute na AWS

28 de jun. de 2026 9 min Com apoio de IA000 visualizações00 reproduções
Ouvir estudo

cerca de 9 min · áudio gerado ao tocar

Você domina código, CI/CD e infraestrutura como código, mas quando o assunto é 'Lambda ou ECS?', a resposta costuma ser instintiva demais. Escolher errado custa dinheiro (cluster ocioso 24/7 para um job que roda 3 vezes por dia) ou prejudica o cliente (cold start de 4 segundos numa API de checkout). Este guia constrói o modelo mental correto: entenda a unidade de escala de cada opção, conheça cada variante disponível hoje, incluindo as novidades de 2025-2026, e saia com um framework de decisão acionável.

O que você vai aprender

O modelo mental fundamental: unidade de escala de função vs. contêiner e por que isso determina quase tudo
Catálogo completo dos tipos de Lambda, padrão, imagem de contêiner, @Edge, Provisioned Concurrency, SnapStart, Managed Instances e MicroVMs
Catálogo completo dos tipos de ECS: Fargate, Fargate Spot, EC2, Managed Instances, ECS Anywhere e capacity providers
Por que a fase INIT do Lambda passou a ser cobrada (ago/2025) e o que isso muda no cálculo de custo
Framework de decisão: event-driven? duração? estado? isolamento? throughput? → recomendação concreta
Impacto da decisão na engenharia, no negócio e, o que mais importa, na experiência do cliente

Glossário rápido

AWS Lambda
Serviço de compute event-driven: você sobe código (ou imagem), a AWS executa em resposta a um evento e cobra por milissegundo de execução. Sem servidor para operar.
Amazon ECS
Orquestrador de contêineres gerenciado da AWS. Você define tarefas (task definitions) com imagens Docker; o ECS agenda, escala e reinicia contêineres.
AWS Fargate
Camada de compute serverless para ECS (e EKS). Você declara CPU/memória por tarefa; a AWS provisiona, patcha e escala as VMs subjacentes. Você não vê instâncias EC2.
Capacity Provider
Abstração do ECS que desacopla 'onde rodar' (Fargate, EC2 Auto Scaling Group) da definição da tarefa. Permite estratégias mistas: ex. 80% EC2 reservado + 20% Fargate para picos.
Cold Start
Latência extra na primeira invocação de uma função Lambda quando não há ambiente pré-aquecido. Inclui download da imagem, inicialização do runtime e execução do código de init.
Scale-to-zero
Capacidade de reduzir o compute a zero instâncias (e zero custo) quando não há carga. Lambda faz isso nativamente; Fargate pode fazer via escalonamento para 0 tarefas, mas há latência de cold start de tarefa.
MicroVM / Firecracker
Máquina virtual ultraleve (kernel próprio, memória isolada) criada pelo Firecracker, tecnologia open-source da AWS. Lambda MicroVMs usa isso para dar isolamento de nível de VM por sessão.
INIT phase (Lambda)
Fase de inicialização do ambiente Lambda antes da primeira execução. Desde ago/2025, essa fase é cobrada como tempo de execução em cada cold start.

O modelo mental: unidade de escala é tudo

Pense no Lambda como um táxi por corrida: você chama, ele aparece, você paga pelo trajeto, ele some. A unidade de escala é a requisição/evento: cada invocação pode rodar num ambiente diferente, em paralelo, sem você gerenciar nada. O ECS (com Fargate ou EC2) é mais como um ônibus com linha fixa: o veículo fica de pé, aceita passageiros contínuos, e você paga pela hora do veículo, com ou sem passageiro.

Essa diferença determina quase tudo: custo em baixa carga (táxi ganha, você não paga parado), custo em alta carga constante (ônibus ganha, tarifa flat), latência de início (o ônibus já está rodando; o táxi pode demorar para chegar, cold start), e capacidade de manter estado entre chamadas (o ônibus tem porta-malas; o táxi descarta tudo ao fim da corrida).

Antes de escolher qualquer variante, responda: minha carga é event-driven e esporádica, ou contínua e previsível? Essa pergunta sozinha elimina metade das opções erradas.

Catálogo Lambda: sete sabores, um por um

1. Lambda padrão (ZIP/runtime gerenciado): o clássico. Pacote ZIP, runtime gerenciado (Node, Python, Java, Go…), até 15 min, 10 GB RAM, /tmp efêmero de 10 GB. Ideal para APIs finas, processamento de eventos, automações.

2. Lambda com imagem de contêiner: mesmo modelo de execução do Lambda padrão, mas empacotado como imagem Docker de até 10 GB. Você ganha o ecossistema de contêiner (Dockerfile, camadas, ferramentas) sem operar orquestrador. Ideal quando o time já tem pipelines de imagem ou a dependência é grande demais para ZIP.

3. Lambda@Edge / CloudFront Functions: lógica executada nos POPs da CloudFront, a centenas de milissegundos do usuário final. Use para rewrite de URL, autenticação na borda, personalização de resposta. Limitações severas de tempo e memória, não é para lógica complexa.

4. Provisioned Concurrency: pré-aquece N ambientes Lambda, eliminando cold start para aquelas N invocações simultâneas. Você paga por ambiente provisionado/hora, mesmo sem uso. Use quando p99 de latência é crítico e a carga é previsível.

5. SnapStart (Java/.NET): tira um snapshot do ambiente já inicializado e restaura a partir dele em cold starts futuros. Corta o cold start de segundos para dezenas de milissegundos em runtimes pesados. Sem custo adicional além do tempo de execução normal.

6. Lambda Managed Instances (lançado 2025): a AWS provisiona e gerencia instâncias EC2 dedicadas para rodar suas funções, lifecycle, patch, routing e autoscaling são da AWS. Libera tipos especializados (GPU, alto CPU) e até 32 GB/16 vCPUs por ambiente. Processa requisições paralelas por ambiente (melhor price-performance em carga intensa). Use para transcodificação, inferência de modelos, simulações, carga intensiva que precisa de hardware específico mas sem operar cluster.

7. Lambda MicroVMs (lançado jun/2026): sandboxes isolados com estado via Firecracker. Cada sessão tem seu próprio kernel, memória e disco, sem compartilhamento entre sessões de usuários diferentes. Preservam estado (memória, disco, processos) por até 8 horas; resume quase instantâneo via snapshot. Até 8h runtime / 16 vCPUs / 32 GB memória / 32 GB disco. Disponível em us-east-1, us-west-2, eu-west-1 e ap-northeast-1. O caso de uso central: executar código de usuário ou gerado por IA por sessão, code interpreters de agentes, sandboxes interativos, scanners de vulnerabilidade, game servers com scripts de usuário. Preenche a lacuna que o Lambda padrão (sandbox reusado, sem isolamento forte multi-tenant) e o Fargate (subir/derrubar tarefa por sessão é lento e caro) não resolviam.

Catálogo ECS: cinco modos e o papel dos capacity providers

1. Fargate: serverless de contêiner. Você declara CPU (0.25–16 vCPU) e memória (0.5–120 GB) por tarefa; a AWS provisiona, patcha e escala as VMs subjacentes. Você nunca vê instâncias EC2. Ideal para a maioria dos workloads: APIs long-running, workers, microserviços. Custo por vCPU-hora e GB-hora.

2. Fargate Spot: mesma experiência do Fargate, mas usando capacidade spot (interruptível). Até ~70% mais barato (estimativa de mercado). Use para batch tolerante a interrupção, processamento assíncrono, jobs de CI. Não use para APIs síncronas sem mecanismo de retry.

3. Launch type EC2 (você opera o cluster): você provisiona instâncias EC2, escolhe tipo/AMI/rede, e o ECS agenda contêineres nelas. Controle máximo: GPUs, instâncias reservadas, customização de rede. Melhor custo em escala constante e alta (você amortiza a reserva). Mas você opera: patching, capacity planning, on-call de instância.

4. ECS Managed Instances (lançado set/2025): híbrido. Você especifica o tipo de instância desejado (incluindo GPU); a AWS gerencia o lifecycle das instâncias (provisioning, patching, replacement). Você ganha a flexibilidade de EC2 com a operação no estilo Fargate. Ideal quando Fargate não tem o hardware que você precisa mas você não quer operar o cluster.

5. ECS Anywhere (External): roda contêineres on-premises ou em outro cloud usando o mesmo control plane do ECS. Útil para híbrido regulatório ou edge computing. Cite de passagem, não é o caso comum.

Capacity Providers e estratégias mistas: capacity providers desacoplam 'onde rodar' da definição da tarefa. Você pode ter até 20 providers numa estratégia, ex.: baseline em EC2 reservado (custo baixo) + overflow em Fargate (escala elástica). Essa é a forma recomendada pela AWS hoje, em vez de launch types fixos. O resultado: você paga pelo que usa, com o hardware certo, sem superprovisionar.

Lambda padrão × Lambda MicroVMs × ECS Fargate × ECS EC2

DimensãoLambda padrãoLambda MicroVMsECS FargateECS EC2
Modelo de cobrançaPor ms de execução + reqPor ms de execução + req (sessão)Por vCPU-hora + GB-hora por tarefaPor instância EC2 (você paga a instância)
Granularidade de escalaPor invocaçãoPor sessãoPor tarefaPor instância/tarefa
Scale-to-zeroSim, nativoSim (sessão expira)Sim (0 tarefas), com latênciaNão (instância fica de pé)
Duração máxima15 minutos8 horasIlimitada (processo contínuo)Ilimitada
Cold startSim; INIT cobrado desde ago/2025Sim, mas resume via snapshot (~ms)Sim (subir tarefa: 10-30s típico)Baixo (instância já de pé)
Estado por sessãoNão (sandbox pode ser reusado)Sim (memória/disco por até 8h)Sim (processo contínuo)Sim
Isolamento multi-tenantSandbox reusado entre invocaçõesVM isolada por sessão (Firecracker)Tarefa isolada; kernel compartilhadoInstância dedicada possível
Controle/customizaçãoBaixo (runtime gerenciado)Baixo-médioMédio (imagem Docker livre)Alto (tipo, AMI, rede)
PortabilidadeBaixa (API Lambda)Baixa (API Lambda)Alta (OCI image padrão)Alta (OCI image padrão)
Carga operacionalMínimaMínimaBaixa (AWS gerencia infra)Alta (você opera o cluster)

Árvore de decisão de compute

Siga as arestas respondendo cada pergunta. A recomendação final aparece nos nós terminais (hexágonos). Leia de cima para baixo.

🚦 Entrada / Entry
  • Novo workload · New workload
❓ Pergunta 1 / Question 1
  • Event-driven · ou esporádico? · or sporadic?
❓ Pergunta 2 / Question 2
  • Duração > 15 min? · Duration > 15 min?
  • Carga constante · ou streaming? · Constant load · or streaming?
❓ Pergunta 3 / Question 3
  • Estado por sessão · ou isolamento · multi-tenant? · Per-session state · or multi-tenant · isolation?
  • Hardware especial · (GPU/alto CPU)? · Special hardware · (GPU/high CPU)?
  • Escala alta · constante? · Constant · high scale?
❓ Pergunta 4 / Question 4
  • Código não-confiável · ou por usuário? · Untrusted or · per-user code?
  • Quer operar · cluster EC2? · Want to operate · EC2 cluster?
✅ Recomendações / Recommendations
  • Lambda padrão · Standard Lambda
  • Lambda MicroVMs · (estado + isolamento) · (state + isolation)
  • Lambda + store externo · Lambda + external store
  • ECS Fargate · (long-running) · (long-running)
  • ECS/Lambda · Managed Instances · (GPU/CPU especial) · (special GPU/CPU)
  • ECS EC2 · (controle total) · (full control)

O framework de decisão: cinco perguntas, uma resposta

1. Padrão de carga: event-driven, esporádico, com picos imprevisíveis → Lambda. Long-running, conexões persistentes (WebSocket, gRPC), streaming → ECS. Essa é a pergunta mais importante.

2. Duração: mais de 15 minutos mata o Lambda padrão. Use Fargate, ECS EC2 ou Lambda MicroVMs (até 8h) para jobs longos.

3. Estado e isolamento: precisa de memória/disco por sessão com isolamento forte entre usuários diferentes → Lambda MicroVMs. Precisa de estado simples entre chamadas → use um store externo (DynamoDB, ElastiCache) com Lambda padrão. Processo contínuo com estado em memória → Fargate.

4. Throughput e custo: abaixo de ~50.000–150.000 req/dia (estimativa de mercado, não número oficial da AWS), o scale-to-zero do Lambda domina em custo. Acima disso, o flat-rate do Fargate, especialmente em ARM64/Graviton, tende a ser mais econômico. Faça a conta para o seu perfil real.

5. Custo de inicialização (novo desde ago/2025): a fase INIT do Lambda agora é cobrada em cada cold start. Inicialização pesada, carregar modelo de 500 MB, montar pool de conexões, aquecer cache, agora tem custo direto a cada cold start. No Fargate, a inicialização ocorre uma vez por tarefa e é amortizada ao longo de horas. Isso muda o cálculo para workloads com init caro e alta taxa de cold start: Provisioned Concurrency, SnapStart ou Fargate quente podem ser mais econômicos que Lambda padrão nesses casos.

Matriz de decisão: qual compute escolher

Lambda padrão

Prós
  • Scale-to-zero nativo, custo zero sem carga
  • Zero operação de infra, foco total no código
  • Escala automática para milhares de invocações paralelas
Contras
  • Limite de 15 min de duração
  • Cold start + INIT cobrado desde ago/2025
  • Sem estado por sessão; sandbox pode ser reusado

Use para APIs finas, processamento de eventos, automações, webhooks, cargas event-driven e stateless.

Lambda MicroVMs

Prós
  • Isolamento de nível de VM por sessão (Firecracker)
  • Estado persistente por até 8h; resume via snapshot
  • Simplicidade operacional de Lambda
Contras
  • Disponível em apenas 4 regiões (jun/2026)
  • Novo, ecossistema e documentação ainda amadurecendo
  • Custo por sessão pode ser alto para sessões curtas e frequentes

Use para code interpreters de IA, sandboxes por usuário, scanners de vulnerabilidade, onde isolamento forte + estado por sessão são obrigatórios.

ECS Fargate

Prós
  • Processo contínuo: sem limite de duração, conexões persistentes
  • Imagem Docker padrão, alta portabilidade
  • Sem operação de cluster EC2
Contras
  • Custo por vCPU-hora mesmo com pouca carga
  • Cold start de tarefa (10-30s típico) ao escalar do zero
  • Menos econômico que EC2 em escala alta constante

Use para APIs long-running, microserviços, workers com estado, WebSocket, gRPC, streaming, cargas contínuas sem querer operar EC2.

ECS EC2 / Managed Instances

Prós
  • Melhor custo em escala alta constante (instâncias reservadas)
  • Acesso a hardware especializado: GPU, alto CPU, tipos customizados
  • Managed Instances: flexibilidade de EC2 com operação estilo Fargate
Contras
  • EC2 puro: você opera o cluster (patching, capacity planning)
  • Maior carga operacional e on-call
  • Superprovisionamento fácil se a carga for variável

Use para cargas intensivas constantes (ML training, transcodificação, simulações), GPU, ou quando o custo de Fargate em escala justifica operar EC2.

Subindo o elevador: impacto na engenharia, no negócio e no cliente

Usando o Architecture Elevator de Gregor Hohpe: a decisão de compute parece técnica, mas seus efeitos sobem todos os andares.

Andar de engenharia: Lambda reduz a carga operacional drasticamente, sem cluster para operar, sem on-call de instância, blast radius menor (uma função quebrada não derruba o serviço inteiro). ECS EC2 exige capacity planning, patching e on-call de infra. Fargate fica no meio: você opera a imagem, não a instância.

Andar de negócio: Lambda acelera time-to-market para features novas, deploy de função é minutos. O TCO (custo total de propriedade) é menor em cargas esporádicas; em cargas constantes e altas, Fargate/EC2 com Graviton/ARM64 pode ser 30-50% mais barato (estimativa de mercado). A decisão errada queima dinheiro: um cluster ECS sempre de pé para um job que roda 3 vezes por dia pode custar 10× mais que Lambda para o mesmo resultado.

Andar do cliente (o que mais importa): cold start de Lambda padrão numa API de checkout: 2-4 segundos em Java sem SnapStart, é percebido pelo usuário como lentidão e aumenta abandono de carrinho. Fargate quente entrega latência consistente de p99. Por outro lado, Lambda com Provisioned Concurrency ou SnapStart entrega p99 comparável ao Fargate para APIs críticas, com custo menor em baixa carga. A regra de ouro: casa a unidade de escala com o padrão de carga → cliente não percebe a infra, que é o objetivo.

Como escolher em 60 segundos: regras de bolso

Event-driven e esporádico → comece com Lambda padrão. Adicione Provisioned Concurrency ou SnapStart se p99 for crítico.
Duração > 15 min → Lambda está fora. Use Fargate, ECS EC2 ou Lambda MicroVMs (até 8h).
Código de usuário ou IA por sessão, isolamento forte obrigatório → Lambda MicroVMs.
Long-running, WebSocket, gRPC, streaming, estado em memória → ECS Fargate.
GPU, alto CPU, escala alta constante, controle de rede → ECS EC2 ou Managed Instances.
Init pesado (modelo ML, pool de conexões) + alta taxa de cold start → cuidado com custo de INIT desde ago/2025; prefira SnapStart, Provisioned Concurrency ou Fargate quente.
FA
Minha leitura sênior
Arquiteto de TI Especialista

Depois de 16 anos tomando decisões de compute, de sistemas financeiros a plataformas de dados em tempo real, o erro que vejo com mais frequência não é escolher a tecnologia errada: é não ter um modelo mental claro sobre a unidade de escala antes de decidir. Times escolhem Lambda porque 'é serverless e moderno', e depois sofrem com cold start em APIs críticas ou com o custo de INIT em funções que carregam modelos de ML. Times escolhem Fargate porque 'é mais confiável', e depois pagam por tarefas ociosas 22 horas por dia. A pergunta certa é sempre: qual é o padrão de carga? A partir daí, a decisão quase se toma sozinha. Lambda MicroVMs e Managed Instances são adições genuinamente úteis, preenchem lacunas reais que existiam há anos. Mas não são bala de prata: MicroVMs ainda têm cobertura regional limitada e estão amadurecendo. Managed Instances fazem sentido quando você precisa de hardware específico sem operar cluster. Capacity providers no ECS são a forma correta de trabalhar hoje, estratégias mistas com baseline reservado e overflow em Fargate são o padrão que recomendo para a maioria dos sistemas com carga variável. E sim: num sistema bem arquitetado, Lambda e ECS coexistem. Não é uma escolha binária.

Próximo estudo: ECS vs EKS

Você escolheu contêineres, mas qual orquestrador? No próximo estudo: ECS vs EKS, quando a simplicidade do ECS basta e quando a potência do Kubernetes justifica a complexidade operacional. Capacity providers, service mesh, multi-cluster e o custo real de operar Kubernetes em produção.

Veredicto

Não existe 'Lambda é melhor que ECS' ou vice-versa, existe a unidade de escala certa para o padrão de carga certo. Lambda padrão vence em event-driven e stateless; Fargate vence em long-running e contínuo; Lambda MicroVMs resolve o caso específico de isolamento forte por sessão que nenhum dos dois resolvia bem; ECS EC2 e Managed Instances vencem em escala constante com hardware especializado. O framework de decisão é simples: padrão de carga → duração → estado/isolamento → throughput/custo → carga operacional do time. A mudança de cobrança da fase INIT (ago/2025) é real e muda o cálculo para funções com init pesado, não ignore. E lembre: num sistema bem arquitetado, Lambda e ECS coexistem, cada um na carga para a qual foi feito. O cliente final não sabe, e não deveria saber, qual compute está rodando. Ele só sente a latência e a disponibilidade. Essa é a métrica que importa.

Referências

AWS: Decision guide: Fargate or Lambda?AWS Blog: Run isolated sandboxes with full lifecycle control: Lambda MicroVMsAWS Blog: Introducing AWS Lambda Managed InstancesAmazon ECS: Launch types and capacity providersAWS Fargate: Product pageAWS Lambda: Product page
#aws#lambda#ecs#fargate#serverless#containers#compute#architecture
Fontes do caso
AWS: Decision guide: Fargate or Lambda?AWS: Run isolated sandboxes with full lifecycle control: Lambda MicroVMsAWS: Introducing Lambda Managed InstancesAmazon ECS: Launch types and capacity providersAWS FargateAWS Lambda
Compartilhar:LinkedInWhatsAppXBaixar em Markdown
Escrito com apoio de IA a partir do caso público e da minha leitura como arquiteto.
Próximo passo
Trilha Arquiteto de IA, gratuitaFundamentos, LLMs, RAG, tools, MCP e arquitetura na AWS, em aulas curtas e interativas.Começar a trilhaAgentes de IA em produção na AWSComo eu desenho, oriento e audito agentes que vão ao ar, com os números e as fontes.Ver o IA Builder

Continue lendo

Guia / Deep DiveAgentes de IA por Dentro (3/3): Agentes em Produção na AWS com Bedrock AgentCoreA terceira e última parte da série desce o elevador até o andar técnico: como colocar um agente de IA em produção na AWS usando o Amazon Bedrock AgentCore. Cobrimos o mapa completo dos componentes (Runtime, Gateway, Memory, Identity, Observability), a escolha de modelo por custo/latência/raciocínio, segurança com guardrails e isolamento de sessão, e FinOps para manter o custo real abaixo de poucos dólares por mês.Ler Guia / Deep DiveAgentes de IA por Dentro (1/3): Anatomia e o Loop de RaciocínioUma aula técnica para devs e arquitetos que ouvem 'agente de IA' todo dia mas querem entender de verdade o que diferencia um agente de um LLM puro, de um pipeline fixo ou de RAG simples. Cobrimos a anatomia completa, modelo, ferramentas, memória, planner, e o loop ReAct passo a passo com um exemplo concreto. Sem hype; com trade-offs reais.Ler PlaybookPlaybook: Onde Rodar IA na AWS: Lambda vs Fargate vs ECS/EKS (GPU)Escolher o compute errado para workloads de IA na AWS é o erro mais caro que equipes cometem ao escalar de protótipo para produção. Este playbook mapeia Lambda, Fargate, ECS/EKS+GPU e Bedrock contra os eixos que realmente importam, duração, GPU, padrão de tráfego e custo por token, e entrega uma árvore de decisão acionável para cada cenário.Ler
AnteriorPlaybook: 5 Mudanças em Arquitetura de IA, e o que fazer com cada umaPróximoLoop Engineering: projetando os loops que guiam agentes de IA
Gostou deste estudo? Receba o próximo.

Post-mortems, ADRs e deep dives de arquitetura no seu email, do jeito que um arquiteto lê.

Sem spam · cancele quando quiser

Pergunte ao Fernando sobre isto

Uma resposta focada sobre este estudo, do meu assistente de IA, baseada no meu trabalho.

Participe da conversa

Entre para comentar

Confirme seu e-mail para participar, você também recebe a newsletter. Sem senha.

Neste estudo
O modelo mental: unidade de escala é tudoCatálogo Lambda: sete sabores, um por umCatálogo ECS: cinco modos e o papel dos capacity providersLambda padrão × Lambda MicroVMs × ECS Fargate × ECS EC2ArquiteturaO framework de decisão: cinco perguntas, uma respostaMatriz de decisão: qual compute escolherSubindo o elevador: impacto na engenharia, no negócio e no clienteVeredictoReferências