ML/IA para Arquiteto: SageMaker, Bedrock e Pipelines
O Practitioner cobre o catálogo de serviços AI/ML. No SAA-C03 a pergunta muda: como arquitetar uma pipeline de inferência que entrega latência previsível com custo sob controle? Quando Real-time Endpoint, quando Serverless Inference, quando Async, quando Batch? Como Bedrock se encaixa em um data lake? Como deployar modelos em produção com blue/green ou canary? Aqui vamos ao nível de decisão arquitetural — o que o exame realmente cobra.
As 4 opções de deployment SageMaker
| Modo | Latência | Custo | Caso de uso |
|---|---|---|---|
| Real-time Endpoint | ms (10-100) | Pago por hora (instância provisionada 24/7) | App interativa, alta QPS sustentada |
| Serverless Inference | Varia com cold start | Pago por invocação + memória | Tráfego intermitente/imprevisível |
| Async Inference | Até 1 hora | Pago por instância quando ativa; escala a zero | Payloads grandes (até 1 GB) · processamento longo |
| Batch Transform | Offline | Pago por job | Inferência em lote sobre S3 (ex: scoring mensal) |
Arquitetura de referência: inferência em produção
Client (App)
│ HTTPS
▼
┌─────────────────┐
│ API Gateway │ (rate limit, API key, WAF)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Lambda │ (pré-processa input, auth)
└────────┬────────┘
│ InvokeEndpoint
▼
┌─────────────────────────────────┐
│ SageMaker Real-time Endpoint │
│ ├── Instance1 (ml.g5.xlarge) │
│ ├── Instance2 (ml.g5.xlarge) │ ← Auto Scaling
│ └── Instance3 (ml.g5.xlarge) │
│ │
│ Production Variants: │
│ ModelA (Blue) 90% │
│ ModelB (Green) 10% ← Canary │
└─────────────────────────────────┘
Production Variants permitem hospedar múltiplos modelos atrás do mesmo endpoint com tráfego dividido por percentual. É como o SageMaker implementa Blue/Green e Canary. Auto Scaling usa métrica SageMakerVariantInvocationsPerInstance.
Bedrock em arquiteturas corporativas
Bedrock é mais que um playground — ele tem primitivos para GenAI de produção:
| Feature | Para quê |
|---|---|
| InvokeModel API | Chamada síncrona para qualquer foundation model |
| InvokeModelWithResponseStream | Streaming de tokens (UX estilo ChatGPT) |
| Knowledge Bases | RAG gerenciado: S3 → vector store (OpenSearch, Aurora, Pinecone) → recupera contexto automaticamente |
| Agents | Tool calling gerenciado: conecta LLM a APIs externas com orquestração |
| Guardrails | Filtros de conteúdo (PII, tópicos proibidos, prompt injection detection) |
| Model Evaluation | Benchmark automático de modelos contra dataset custom |
| Provisioned Throughput | Capacidade reservada para SLA (em vez de pay-per-token) |
| Fine-tuning | Adapta modelo base ao domínio com dataset proprietário |
Arquitetura: chatbot corporativo com RAG
Doc corporativos Usuário pergunta
(SharePoint, S3, Confluence) │
│ ▼
▼ ┌──────────────┐
┌───────────────┐ │ App Web │
│ Data Sources │ └──────┬───────┘
│ (Knowledge │ │
│ Base) │ ▼
└──────┬────────┘ ┌──────────────┐
│ indexa │ Bedrock │
▼ │ Agent │
┌───────────────┐ retrieves │ │
│ OpenSearch │←─────────────── │ + Claude │
│ Serverless │ │ /Titan │
│ (vectors) │ └──────┬───────┘
└───────────────┘ │
▼
Resposta contextual
Knowledge Bases abstrai todo o pipeline RAG: upload docs → chunking → embeddings → vector DB → retrieval → augmentação de prompt. Você chamaRetrieveAndGenerate e pronto.
MLOps com SageMaker Pipelines
SageMaker Pipelines é CI/CD para modelos — define DAG de steps (data prep → treino → avaliação → registro → aprovação → deploy). Integra com Model Registry (versionamento) e Model Monitor (drift detection).
| Componente | Papel |
|---|---|
| Processing Jobs | Preparação de dados (pandas, Spark) |
| Training Jobs | Treino em instância gerenciada (GPU opcional) |
| Model Registry | Versiona modelos, aprovação manual/automática |
| Model Monitor | Detecta drift de dados/modelo em endpoint de produção |
| Clarify | Bias + explainability |
| Feature Store | Armazena features online (baixa latência) e offline (para treino) |
Data lake alimentando ML
Kinesis Streams Glue ETL
│ │
▼ ▼
S3 (raw zone) ──── Athena ──→ S3 (curated)
│ │
│ glue crawler │
▼ ▼
Glue Data Catalog SageMaker Processing Job
│
▼
SageMaker Training Job
│
▼
SageMaker Model Registry
│
▼
SageMaker Endpoint (produção)
│
▼
CloudWatch + Model Monitor
Cenários arquiteturais
📋 App de e-commerce precisa de recomendação personalizada com QPS variável (100 → 10.000)
Personalize é serviço gerenciado (menor esforço) específico para recommendation. Se precisa modelo custom, Real-time Endpoint + Auto Scaling + Production Variants entrega latência previsível.
Alt: Serverless Inference — cold start prejudica UX no pico.
Alt: Batch Transform — atraso de minutos não serve.
📋 Scoring de risco de crédito processado 1x/dia sobre tabela com 10M linhas
Job offline sobre S3 — paga só pelo processamento. Não faz sentido manter endpoint ativo 24/7 para uso pontual.
Alt: Async Inference — mais indicado para payload grande pontual.
Alt: Real-time Endpoint — desperdício de custo.
📋 Chatbot interno consulta base de 500.000 documentos técnicos
Q Business já integra conectores (SharePoint, Confluence, S3) + search + GenAI. Alternativamente, Knowledge Bases + OpenSearch dá mais controle para pipeline RAG custom.
Alt: Kendra + Lex — mais legado, mais engenharia.
Alt: Self-hosted com OpenSearch + Llama — overhead operacional alto.
📋 Processar PDFs de contratos (50 páginas cada) com GenAI — 1-2 min por doc, 1000 docs/dia
Payload grande, latência longa, throughput moderado. Async coloca na fila SQS-like e devolve resultado em S3. Endpoint escala a zero quando ocioso.
Alt: Real-time — timeout em 60s — não serve.
Alt: Step Functions + Bedrock — válido para ≤ 29s por invocação.
Segurança ML/IA no SAA
| Ameaça | Defesa AWS |
|---|---|
| Vazamento de PII em prompts | Bedrock Guardrails · Comprehend PII Redaction |
| Prompt injection | Guardrails de input · validation na camada de app |
| Dados de treino expostos | SageMaker em VPC + KMS · S3 privado + Lake Formation |
| Modelo enviesado | SageMaker Clarify · Model Monitor bias drift |
| Tráfego de inferência pela internet | VPC Endpoint para Bedrock/SageMaker (PrivateLink) |
| Auditoria | CloudTrail + Bedrock Model Invocation Logging |
Perguntas típicas (Q&A)
❓ Quando SageMaker em vez de Bedrock?
❓ Real-time Endpoint cobra quando ocioso?
❓ Como garantir que Bedrock funcione dentro de VPC privada?
❓ SageMaker JumpStart vs Bedrock — qual escolher?
Quiz rápido
3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito