Bedrock vs API direta: quando usar cada um
- ⬜🪨 O que é o Amazon Bedrock (e por que ele existe)(AWS Bedrock — GenAI em Produção)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Você já consegue chamar a API da Anthropic ou da OpenAI direto, com uma API key e três linhas de código. Então por que colocar o Amazon Bedrock no meio? A resposta honesta não é "o Bedrock é melhor" — é que Bedrock e API direta otimizam coisas diferentes. Uma te dá governança, rede privada e um único bill da AWS; a outra te dá o recurso mais novo no dia em que ele sai. Este módulo é sobre escolher a porta certa com os olhos abertos — e sobre uma terceira porta que, em 2026, muda o jogo.
Não é 'qual é melhor', é 'qual porta'
Pense em três portas para o mesmo modelo. A primeira é o Amazon Bedrock: você fala com o modelo via AWS (IAM, VPC), e ele é operado pela AWS — o que a gente chama de partner-operated. A segunda é a API direta do provedor: você fala com a Anthropic/OpenAI diretamente, com a API key deles. A terceira, mais nova, é o Claude Platform on AWS: a Anthropic opera o modelo, mas dentro da AWS, com auth SigV4/IAM e billing pela Marketplace. A tabela abaixo é o mapa; o resto do módulo é o detalhe de cada eixo.
| Critério | Amazon Bedrock | API direta do provedor | Claude Platform on AWS |
|---|---|---|---|
| Autenticação | IAM / SigV4 — ação bedrock:InvokeModel | API key do provedor (header x-api-key / Bearer) | IAM / SigV4 (via AWS) |
| Rede privada | VPC endpoint / PrivateLink, sem internet pública | Internet pública (egress TLS) | PrivateLink dentro da AWS |
| Dados / privacidade | Não treina o modelo base; provedor não vê o tráfego | Regido pelo contrato do provedor | Mesma garantia contratual da Anthropic |
| Multi-modelo | Claude, Nova, Llama, Mistral… por 1 API (Converse) | Só o provedor daquela API | Só Claude |
| Features no dia 0 | Subconjunto; recursos novos chegam depois | Superfície completa, no lançamento | Paridade same-day com a API first-party |
| Billing | Fatura AWS + cost allocation tags | Fatura separada por provedor | Via AWS Marketplace (fatura AWS) |
| IDs de modelo | Prefixo anthropic. (anthropic.claude-opus-4-8) | ID first-party (claude-opus-4-8) | ID first-party, sem prefixo |
Bedrock: governança AWS-nativa (IAM, sem API key de terceiro)
O primeiro eixo é controle de acesso. Na API direta, autenticação é uma API key de terceiro: um segredo a mais para criar, rotacionar, vazar e auditar fora do seu perímetro AWS. No Bedrock, a chamada é autorizada por IAM — a ação é bedrock:InvokeModel (a mesma que a Converse usa por baixo). Você amarra a permissão por Resource (o ARN do foundation model ou do inference profile) e por condition keys: aws:RequestedRegion para prender a inferência a uma região, e o ARN do inference profile para restringir qual roteamento é permitido. Zero API key de terceiro no jogo.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokeClaudeSomenteUsEast1",
"Effect": "Allow",
"Action": "bedrock:InvokeModel",
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-opus-4-8",
"arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-opus-4-8"
],
"Condition": {
"StringEquals": { "aws:RequestedRegion": "us-east-1" }
}
}
]
}Rede privada, criptografia e auditoria
O segundo eixo é onde o pacote trafega. Com a API direta, o request sai pela internet pública (egress TLS) para o provedor. Com o Bedrock, você cria um VPC interface endpoint (PrivateLink): a inferência acontece sem tocar a internet pública, e você enxerga o tráfego nos VPC Flow Logs. Em repouso, o que precisar ficar cifrado (custom models, Knowledge Bases, jobs) usa a sua KMS CMK; toda chamada de controle e de dados aparece no CloudTrail para auditoria. E há um isolamento estrutural: cada provedor roda numa Model Deployment Account operada pela AWS, separando o código do provedor dos seus dados.
Privacidade é contratual, não um checkbox
No Bedrock, seus prompts e completions NÃO são usados para treinar o modelo base, e o provedor do modelo não vê seu tráfego — ele roda isolado na Model Deployment Account. Isso é garantia de serviço, não uma opção que você precisa lembrar de habilitar. É o argumento que costuma destravar o time de segurança.
- → credencial que a conta já gerencia
- → credencial fora do IAM
- Compute
- Segurança e identidade
- Rede e entrega
- Gestão e governança
- IA e machine learning
A diferença não é de capacidade do modelo — é de quantas camadas de governança já existem no caminho. Pelo Bedrock, IAM, rede privada e trilha vêm de graça; pela API direta, cada uma delas passa a ser um projeto seu.
- Pelo Bedrock: a governança já está lá. A role que a aplicação já tem autoriza a chamada. Nenhuma chave nova, nenhum segredo a mais para rotacionar e vazar.
- Rede e auditoria de graça. Endpoint privado mantém o tráfego dentro da VPC, e a chamada aparece na mesma trilha do resto da conta. Nada disso precisou ser construído.
- Pela API direta: cada camada é um projeto. Chave por provedor para guardar e rotacionar, exceção de firewall para a internet pública, e a trilha de auditoria você monta.
- O que a API direta compra. Recurso novo no dia do lançamento. É uma vantagem real — e a pergunta honesta é se o seu produto depende disso ou se ele depende de governança.
- Os dois caminhos coexistem, e a exceção se declara. O desenho que se sustenta é padrão pelo Bedrock e exceção pela API direta, para o recurso específico que justifica a exceção — com a chave, a rota de saída e a auditoria daquele caminho escritas antes de ele existir. Exceção não declarada é a que ninguém revoga quando o recurso chega ao Bedrock.
Uma API, muitos modelos (Converse)
O terceiro eixo é lock-in. Na API direta, você fala o dialeto de um provedor: trocar de vendor é reescrever a camada de request/response. No Bedrock, a Converse API é um contrato único de mensagens que serve Claude, Nova, Llama, Mistral e outros — trocar de modelo é, no melhor caso, mudar a string do modelId. Um detalhe operacional importante mora justamente nesse modelId:
import boto3
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
# No Bedrock, o modelId da Claude leva o prefixo "anthropic."
# (ou o prefixo do inference profile: "us.anthropic.")
resp = bedrock.converse(
modelId="anthropic.claude-opus-4-8",
messages=[{"role": "user", "content": [{"text": "Explique MVCC em uma frase."}]}],
inferenceConfig={"maxTokens": 512, "temperature": 0.2},
requestMetadata={"team": "plataforma", "feature": "resumo"}, # vira cost allocation
)
print(resp["output"]["message"]["content"][0]["text"])
# Trocar de vendor = mudar so o modelId; o resto do codigo nao muda:
# Claude -> "anthropic.claude-opus-4-8"
# Nova -> "amazon.nova-pro-v1:0"
# Llama -> "meta.llama3-3-70b-instruct-v1:0"
# Mistral -> "mistral.mistral-large-2407-v1:0"Cuidado com os IDs: prefixo anthropic. e o contrato da Converse
No Bedrock, os modelos da Anthropic são identificados com o prefixo anthropic. (ex.: anthropic.claude-opus-4-8) — ou com o prefixo do inference profile (us.anthropic.…). Se você pegar o ID first-party (claude-opus-4-8, sem prefixo) e mandar no cliente do Bedrock, toma ValidationException / HTTP 400. E o caminho inverso também importa: a Converse é um contrato unificado, então campos nativos do provedor que não existem no schema dela são normalizados ou simplesmente descartados. Para falar o dialeto 100% nativo dentro do Bedrock, use o endpoint bedrock-mantle (Anthropic Messages), não a Converse.
Ecossistema, billing e compliance
Além da inferência, o Bedrock traz uma vizinhança pronta: Guardrails (filtros de conteúdo e PII), Knowledge Bases (RAG gerenciado), Agents / AgentCore, processamento em batch (~50% de desconto) e provisioned throughput. Do lado financeiro, tudo cai numa fatura AWS, e o campo requestMetadata da Converse vira cost allocation tag — você atribui gasto por time/feature sem instrumentar nada por fora. Some a isso o model invocation logging para observabilidade. E há o eixo que decide compra em empresa regulada:
- HIPAA-eligible — cargas com PHI sob BAA da AWS
- SOC 1/2/3 e ISO 27001/27017/27018/42001 (gestão de IA)
- CSA STAR e conformidade com GDPR
- FedRAMP High (e ILs para workloads gov) em regiões elegíveis
Um time já chama a API da Anthropic direto e pergunta por que migraria para o Bedrock. Qual motivo é legítimo e específico do Bedrock?
Quando a API direta ganha
A régua é simples: o que a Anthropic e a OpenAI lançam sai primeiro na API first-party delas. O Bedrock clássico é partner-operated — a AWS empacota e opera o modelo dentro da própria stack de serving, e recursos que rodam server-side no provedor (ferramentas que o próprio provedor executa) chegam com atraso, quando chegam. Em meados de 2026, o mapa é este:
| Recurso da Anthropic | No Bedrock clássico (meados 2026) |
|---|---|
| Web search / web fetch / code execution (server tools) | Não |
| Files API | Não |
| Message Batches da Anthropic | Não |
| Managed Agents | Não |
| Programmatic tool calling | Não |
| System messages no meio da conversa | Não |
| Fast mode | Não |
| Task budgets | Não |
| Prompt caching | Sim |
| Extended / adaptive thinking | Sim |
| Structured outputs | Sim |
| Tool use (client tools) | Sim |
| Entrada de PDF | Sim |
| Token counting | Sim |
Em meados de 2026, qual recurso você NÃO encontra no Bedrock clássico (partner-operated) e precisaria buscar na API direta da Anthropic?
O meio-termo: Claude Platform on AWS
Em 2026 surge uma terceira porta que dissolve o falso dilema. O Claude Platform on AWS é Anthropic-operated: a própria Anthropic opera o modelo, mas dentro da AWS. Isso te dá paridade same-day com a API first-party (o recurso novo aparece no dia do lançamento), com IDs sem prefixo (claude-opus-4-8), e ao mesmo tempo mantém a governança AWS: auth SigV4/IAM e billing pela AWS Marketplace. É a resposta para quem quer o mais novo E o controle da AWS. Compare as duas portas para a Claude:
📋 Quero o recurso mais novo da Claude (server tools, Files API, fast mode…) no dia do lançamento, mas o meu time de segurança exige governança AWS: IAM, PrivateLink e billing na fatura da AWS.
É a única porta que junta as duas coisas: paridade same-day com a API first-party da Anthropic (IDs sem prefixo, superfície completa) E autenticação SigV4/IAM com billing via AWS Marketplace. Você não abre mão nem de feature nem de governança.
Alt: Amazon Bedrock (clássico) — Governança AWS excelente, mas partner-operated: o recurso que você quer pode não existir no dia 0 (ou nunca).
Alt: API direta da Anthropic — Feature no dia 0, porém você gere API key própria, egress na internet pública e uma fatura fora da AWS.
Síntese honesta
Não existe vencedor absoluto — existe o eixo em que você está otimizando. O Bedrock te dá governança AWS-nativa, multi-vendor por uma API só, rede privada e compliance, tudo numa fatura — ao custo de defasagem de features (partner-operated). A API direta te dá bleeding edge e a superfície completa de um provedor — ao custo de gerir credencial, rede e billing por provedor. E, quando o requisito é 'os dois ao mesmo tempo' para a Claude, o Claude Platform on AWS é a ponte.
Fique no Bedrock quando
Você quer trocar de modelo sem reescrever, precisa de IAM/PrivateLink/KMS/CloudTrail, valoriza um único bill da AWS com cost allocation tags, quer Guardrails/Knowledge Bases/Agents gerenciados e compliance (HIPAA/ISO/SOC/FedRAMP). O trade-off que você aceita: nem todo recurso novo do provedor está lá no dia 0.
Vá de API direta quando
Você precisa do recurso mais novo do provedor no lançamento — server tools, Files API, Message Batches, Managed Agents, fast mode, task budgets — e topa gerir API key, rede e billing por provedor. Se o provedor é a Claude e você também precisa de governança AWS, avalie antes o Claude Platform on AWS.
Você precisa do recurso mais novo da Claude no dia do lançamento E de governança AWS (IAM, PrivateLink, fatura AWS). Qual porta atende, e o que muda no modelId?
Próximo passo
Você já sabe quando o Bedrock ganha e quando a API direta ganha. Hora de sair do papo e fazer a primeira chamada de verdade: a Converse API na prática — request, streaming, tratamento de erro e o modelId com o prefixo certo. É o próximo módulo: Sua primeira chamada: a Converse API na prática.
Perguntas frequentes
❓ Quando usar Bedrock em vez da API direta do fornecedor?
❓ Posso usar os dois ao mesmo tempo?
❓ A migração da API direta para o Bedrock é trivial?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…