Compute: EC2, Lambda e Containers
Compute é a categoria de serviços que executa seu código. A AWS tem o catálogo mais vasto do mercado: VMs tradicionais (EC2), serverless (Lambda), containers (ECS/EKS/Fargate), Edge (Lambda@Edge), HPC (ParallelCluster) e mais. O exame CLF-C02 cobra os fundamentos de cada família e quando usar cada um.
Onde isso entra no exame
Compute é o coração do domínio 3 (o maior em peso). Espera-se que você identifique a família EC2 correta para um workload, entenda os modelos de pricing, saiba quando trocar EC2 por Lambda, e reconheça ECS/EKS/Fargate quando a questão mencionar containers.
O espectro compute da AWS
Amazon EC2 (Elastic Compute Cloud)
VMs sob demanda. Você escolhe SO (AMI), tamanho (instance type), storage (EBS), rede (VPC/Security Group). Base de quase tudo na AWS — tanto que muitos serviços gerenciados rodam EC2 por trás dos panos.
Famílias de instância (letra inicial):
| Família | Letra | Otimizado para | Exemplo de uso |
|---|---|---|---|
| General Purpose | T, M | Balanço CPU/RAM/rede | Web servers, dev/test |
| Compute Optimized | C | CPU intensiva | Batch, encoding, HPC, jogos |
| Memory Optimized | R, X, Z | RAM intensiva | In-memory DBs (Redis), SAP HANA |
| Storage Optimized | I, D, H | I/O sequencial e aleatório | Data warehouses, NoSQL distribuído |
| Accelerated Computing | P, G, F, Trn/Inf | GPU/FPGA/TPU | ML training, inferência, render |
Mnemônica: "Try Memory, Compute Ram, Storage HDDs, Graphics Power" — T/M = general, C = compute, R = RAM, I/D/H = storage, G/P = GPU.
Modelos de compra EC2 (pricing)
| Modelo | Desconto | Compromisso | Uso ideal |
|---|---|---|---|
| On-Demand | 0% (preço cheio) | Nenhum | Cargas imprevisíveis, curtas |
| Reserved (1-year) | Até 40% | 1 ano, instância específica | Carga estável por 1+ ano |
| Reserved (3-year) | Até 72% | 3 anos, instância específica | Carga muito estável por 3+ anos |
| Savings Plans | Até 72% | 1 ou 3 anos de $/h | Como RI mas flexível (família/região) |
| Spot | Até 90% | Pode ser terminada a qualquer momento | Batch tolerante a falha, CI/CD |
| Dedicated Hosts | Preço premium | Servidor físico exclusivo | Compliance (BYOL Windows Server) |
| Capacity Reservations | Preço On-Demand | Reserva capacidade mesmo sem descontar | Garantir capacidade em picos |
AWS Lambda (serverless)
Lambda executa funções sem você gerenciar servidores. Paga-se por invocação + duração em ms + memória alocada.
| Característica | Limite / Detalhe |
|---|---|
| Duração máxima por invocação | 15 minutos |
| Memória | 128 MB a 10.240 MB (em incrementos de 1 MB) |
| Tamanho do deploy package | 50 MB (zipado) / 250 MB (descompactado) / 10 GB (container) |
| Execuções concorrentes | 1.000 por região (soft limit) |
| Runtimes suportados | Node.js, Python, Java, Go, Ruby, .NET, PowerShell, Rust (via custom runtime) |
| Preço (exemplo) | ~$0.20 por 1M requisições + $0.0000166667 por GB-segundo |
| Free Tier | 1M requisições + 400K GB-segundo por mês (eterno) |
import json
def lambda_handler(event, context):
nome = event.get('nome', 'mundo')
return {
'statusCode': 200,
'body': json.dumps({'mensagem': f'Olá, {nome}!'})
}Triggers do Lambda
Lambda é event-driven. Qualquer um destes pode invocar uma função:
- • — requisições HTTP/REST/WebSocket
- • — upload, delete ou modificação de objeto
- • — mudanças em tabela
- • — eventos custom ou cron
- • — mensagens em fila ou tópico
- • — streams de dados
- • — hooks de autenticação
- • — target de Application Load Balancer
Containers na AWS
| Serviço | O que é | Quem gerencia |
|---|---|---|
| Amazon ECS | Orquestrador proprietário AWS | AWS (plano de controle); você gerencia EC2 workers OU usa Fargate |
| Amazon EKS | Kubernetes gerenciado | AWS (plano de controle K8s); você gerencia EC2 workers OU usa Fargate |
| AWS Fargate | Execução serverless de containers | AWS (100% — sem nós para você gerenciar) |
| Amazon ECR | Container registry privado | AWS (guarda imagens Docker) |
| App Runner | PaaS para containers web | AWS (tudo — você só dá a imagem) |
ECS vs EKS: ECS é mais simples e integrado com AWS. EKS é Kubernetes padrão (portabilidade, ecossistema). Fargate é um modo de compute debaixo dos dois — você escolhe se os pods rodam em EC2 (você gerencia) ou Fargate (AWS gerencia).
Outros serviços compute que aparecem no CLF-C02
- • — jobs batch em EC2/Fargate/Spot (bioinformática, Monte Carlo)
- • — PaaS: você entrega código, AWS provisiona EC2/ALB/Auto Scaling
- • — VPS simplificado para iniciantes ($3-$10/mês)
- • — racks AWS no seu DC (já vimos)
- • — compute em rede 5G
- • — HPC com Slurm em EC2
Cenários de decisão
📋 API REST com picos imprevisíveis e baixa latência
Zero gestão, escala de 0 a milhares de reqs/s automaticamente, paga só pelo uso. Free Tier eterno cobre projetos pequenos.
Alt: EC2 + ALB —
📋 Processamento noturno pesado (ETL de logs) por 4h
Spot economiza até 90% vs On-Demand. Batch retry-automático lida com interrupções. Tolerância a falha nativa.
Alt: EMR —
Alt: Lambda —
📋 Aplicação monolítica .NET legada migrando do on-prem
Migração lift-and-shift preserva o binário. Depois de estabilizar, considere containerizar (ECS) ou refatorar para serverless.
📋 Cluster Kubernetes multi-time, múltiplos microsserviços
EKS dá o ecossistema K8s completo. Fargate elimina gestão de nós para workloads típicas; EC2 worker nodes quando você precisa DaemonSets, GPU ou customização.
Exemplos práticos
# Lançar uma t3.micro (Free Tier elegível)
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t3.micro \
--key-name minha-chave \
--security-group-ids sg-012345 \
--subnet-id subnet-abc123 \
--count 1# Criar função
aws lambda create-function \
--function-name olaMundo \
--runtime python3.12 \
--role arn:aws:iam::123:role/lambda-role \
--handler app.lambda_handler \
--zip-file fileb://deploy.zip
# Invocar
aws lambda invoke \
--function-name olaMundo \
--payload '{"nome":"AWS"}' resposta.json# Criar task definition + rodar tarefa
aws ecs run-task \
--cluster meu-cluster \
--task-definition minha-task:1 \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[subnet-abc],securityGroups=[sg-012]}"Armadilha clássica: "Serverless não tem servidor" é meia-verdade. O servidor existe (AWS gerencia). O ponto é que VOCÊ não gerencia. Para o exame, serverless = Lambda + Fargate + DynamoDB + Aurora Serverless + API Gateway + SQS + SNS.
Perguntas típicas (Q&A)
❓ Qual instance family usar para uma aplicação que cacheia Redis em memória (50 GB de dados)?
❓ Qual é a menor unidade de cobrança do Lambda?
❓ Empresa precisa BYOL (Bring Your Own License) Windows Server. Qual modelo EC2?
❓ Para proteger sua EC2 contra interrupções Spot, qual alternativa balanceia custo e estabilidade?
Take-aways: EC2 = VMs com 5 famílias (general/compute/memory/storage/accelerated) e 5 modelos de compra (On-Demand/Reserved/Savings Plans/Spot/Dedicated). Lambda = serverless, 15 min máx, paga por ms. ECS/EKS = containers; Fargate = modo serverless deles. Beanstalk/Lightsail = PaaS. Spot = 90% off mas interrompível. Savings Plans = flexibilidade + desconto.
Próximos passos sugeridos
Discussão
Carregando…