AWS SAA-C03/08 - Serverless e Containers2 min
API Gateway
Responda com suas palavras antes de ler o resto da nota.
- Que problema isso resolve?
- Quando usar / quando NÃO usar?
- Qual o principal trade-off (custo, latência, operação)?
- Que sinal no enunciado aponta pra isso?
- Com o que isso é confundido na prova?
Conceito
Porta de entrada gerenciada para APIs: autentica, limita, cacheia, transforma e roteia para Lambda, HTTP, ou serviços AWS.
| REST API | HTTP API | WebSocket API | |
|---|---|---|---|
| Custo | Maior | ~70% mais barato | — |
| Latência | Maior | Menor | — |
| Recursos | API keys, usage plans, cache, WAF, validação de request, transformação | Enxuto: JWT, CORS, roteamento | Bidirecional |
| Use quando | Precisa dos recursos avançados | Proxy simples pra Lambda | Chat, notificação em tempo real, jogo |
Autorização
| Mecanismo | Uso |
|---|---|
| IAM | Chamador é um principal AWS (serviço interno, SDK assinado) |
| Cognito User Pool authorizer | Usuários finais do app com JWT |
| Lambda authorizer | Lógica customizada (token de terceiro, OAuth próprio) |
| API key + usage plan | Não é autenticação — é medição e limite por cliente |
| Resource policy | Restringe por IP, VPC endpoint ou conta |
Controle de tráfego
- Throttling por estágio, método ou usage plan (rate + burst)
- Usage plan + API key: cota por cliente (ex: 10.000 req/mês) — resposta de "limitar consumo por parceiro"
- Caching por estágio (0,5 GB a 237 GB), com TTL — reduz chamadas ao backend
- Stages (
dev,prod) e stage variables; canary release com % de tráfego
Tipos de integração
Lambda proxy (o mais comum), Lambda custom, HTTP, AWS Service (chamar SQS/Step Functions direto, sem Lambda no meio) e Mock.
Endpoint types
Edge-optimized (via CloudFront, padrão para clientes globais), Regional (cliente na mesma região) e Private (só acessível de dentro da VPC via Interface Endpoint). Athena e Glue
Trade-offs
REST API traz o arsenal completo e cobra por isso — em API interna simples, HTTP API entrega a mesma função com menos latência e menos custo. A escolha errada aparece quando o enunciado pede cache, API key ou WAF: aí HTTP API não serve.
Integrar direto com SQS ou Step Functions (integração AWS Service) remove uma Lambda do caminho — menos custo, menos cold start, menos código. É a resposta em "reduzir latência e custo do proxy".
Sinais de prova
- "API serverless simples e barata" → HTTP API
- "Cotas por cliente / monetizar API" → REST API + usage plan e API key
- "Cachear resposta pra aliviar o backend" → REST API caching
- "Comunicação bidirecional em tempo real" → WebSocket API
- "Autenticar usuários do app móvel" → Cognito authorizer
- "Absorver pico sem derrubar o backend" → API Gateway → SQS → worker
- "API acessível só de dentro da VPC" → Private endpoint type
- "Validar o corpo da requisição sem código" → request validation (REST API)
Relacionado
Parte de 08 - MOC Serverless e Containers · Documentação AWS