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
┌────────────────────────────────────────────────────────────┐ │ mais controle ←────────────────────────→ mais gerenciado │ │ │ │ EC2 → ECS/EKS → Fargate → Lambda │ │ (VMs) (cont.) (cont. (funções) │ │ serverless) │ │ │ │ patch SO patch img nada nada │ │ escolha escolha nada nada │ │ AMI image │ └────────────────────────────────────────────────────────────┘
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 |
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:
- •
API Gateway— requisições HTTP/REST/WebSocket - •
S3— upload, delete ou modificação de objeto - •
DynamoDB Streams— mudanças em tabela - •
EventBridge— eventos custom ou cron - •
SQS / SNS— mensagens em fila ou tópico - •
Kinesis— streams de dados - •
Cognito— hooks de autenticação - •
ALB— 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) |
Outros serviços compute que aparecem no CLF-C02
- •
AWS Batch— jobs batch em EC2/Fargate/Spot (bioinformática, Monte Carlo) - •
AWS Elastic Beanstalk— PaaS: você entrega código, AWS provisiona EC2/ALB/Auto Scaling - •
AWS Lightsail— VPS simplificado para iniciantes ($3-$10/mês) - •
AWS Outposts— racks AWS no seu DC (já vimos) - •
AWS Wavelength— compute em rede 5G - •
AWS ParallelCluster— 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 — Viável se você quer controle total, mas custo fixo mesmo sem uso
📋 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 — Se envolver Hadoop/Spark diretamente, EMR simplifica
Alt: Lambda — Limite de 15 min inviabiliza jobs longos
📋 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]}"Perguntas típicas (Q&A)
❓ Qual instance family usar para uma aplicação que cacheia Redis em memória (50 GB de dados)?
r6i.4xlarge tem 128 GB RAM — suficiente para 50 GB de cache com folga.❓ Qual é a menor unidade de cobrança do Lambda?
❓ Empresa precisa BYOL (Bring Your Own License) Windows Server. Qual modelo EC2?
Dedicated Hosts. Fornece o host físico dedicado, permitindo reuso de licenças Microsoft antigas que exigem socket físico.❓ Para proteger sua EC2 contra interrupções Spot, qual alternativa balanceia custo e estabilidade?
Quiz rápido
3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito