Amazon Bedrock — modelos, invocação e pricing
- ⬜✨ GenAI — Transformers, FMs, prompting, hallucinations(AWS AI Practitioner (AIF-C01))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Amazon Bedrock é uma porta única e serverless para foundation models de vários provedores. Três palavras carregam o significado: única (uma API para modelos diferentes), serverless (nenhuma instância sua) e vários provedores (Anthropic, Meta, Mistral, Cohere, Amazon e outros, sem contrato separado com cada um).
Para o exame, Bedrock é o serviço mais citado da prova inteira. Ele aparece no Domínio 2 como conceito e domina o Domínio 3 como aplicação. Este módulo cobre o que ele é, como se paga por ele, e — a parte que mais gera erro — o que ele não faz.
O problema que o Bedrock resolve
Sem Bedrock, usar um foundation model em produção na AWS significava: contratar o provedor, gerenciar credencial fora da AWS, tratar o tráfego saindo para a internet, reimplementar a integração a cada modelo novo, e resolver com o jurídico para onde o dado da empresa estava indo.
O ponto de isolamento de dado é questão de prova quase garantida, em Domínio 2 ou 5. A inferência roda em uma conta de deployment gerenciada pela AWS, isolada; o provedor do modelo não recebe o seu tráfego. É o argumento que destrava o uso de FM em banco, saúde e setor público.
O catálogo de modelos
O valor do catálogo não é ter muitos modelos — é você poder trocar. Modelos diferentes têm perfis diferentes de custo, latência e capacidade, e a arquitetura madura usa mais de um.
| Provedor | Perfil típico | Uso comum |
|---|---|---|
| Anthropic (Claude) | Raciocínio longo, instrução complexa, tool use, contexto amplo | Agent, análise de documento, copiloto, tarefa que exige seguir regra |
| Amazon (Titan, Nova) | Integração nativa, embeddings, custo competitivo | Embedding para RAG, tarefa de volume alto |
| Meta (Llama) | Peso aberto, bom custo-benefício | Volume, customização, quem quer opção de portar |
| Mistral | Modelos compactos e rápidos | Classificação, roteamento, extração |
| Cohere | Embedding e rerank fortes | Camada de recuperação de RAG |
Não decore lista de modelo para a prova. O catálogo muda com frequência e o exame sabe disso: as questões perguntam por CRITÉRIO de escolha (custo, latência, janela de contexto, modalidade, licença), não por nome de versão. Saber que existe variedade e como escolher vale mais que a lista.
Um detalhe prático que confunde quem vem da API da Anthropic: no Bedrock, os IDs de modelo da Anthropic levam o prefixo do provedor — anthropic.claude-opus-5 — enquanto na API direta da Anthropic o ID é claude-opus-5, sem prefixo. É a fonte número um de erro de "modelo não encontrado" em quem migra.
Como você chama o modelo
São duas APIs de inferência. A Converse API é a recomendada: ela normaliza o formato entre modelos, então o mesmo código serve para Claude, Llama ou Titan. A InvokeModel é a de baixo nível, em que o corpo da requisição segue o formato nativo de cada provedor — você a usa quando precisa de um campo que só aquele modelo tem.
- → autoriza
- → HTTPS
- → aplica política
- → recupera trecho
- → invoca
- → resposta + usage
- → métrica
- → auditoria
- Compute
- Segurança e identidade
- Rede e entrega
- IA e machine learning
- Gestão e governança
Cinco pontos de controle numa única chamada: quem pode (IAM por modelo), por onde trafega (VPC endpoint), o que é permitido dizer (Guardrails), com que contexto (Knowledge Bases) e quanto custou (usage). O exame cobra cada um deles separadamente.
- A permissão é por MODELO, não por serviço. A policy `bedrock:InvokeModel` aceita o ARN do modelo como recurso — dá para liberar Claude e negar outro. É assim que se controla qual squad usa qual modelo, e é o que o Domínio 5 do AIF-C01 cobra.
- O tráfego pode nunca sair da rede. Com VPC endpoint via PrivateLink, a chamada trafega pela rede da AWS. É o argumento que destrava banco, saúde e setor público — e vem junto com o isolamento: seu prompt não treina o modelo base nem vai ao provedor.
- Guardrails e RAG entram ANTES da resposta. Guardrails avalia entrada e saída independentemente do modelo escolhido. Knowledge Bases recupera o trecho do seu documento e injeta no contexto. Os dois são recursos do Bedrock, não do modelo.
- O modelo roda isolado. A inferência acontece numa conta de deployment gerenciada pela AWS. O provedor do modelo não recebe o seu tráfego — e é isso que diferencia o Bedrock de chamar a API do provedor direto.
- A resposta traz o custo real. O bloco `usage` devolve inputTokens e outputTokens de cada chamada. Registrar isso desde o primeiro dia é o que permite atribuir custo por squad depois — retroagir essa medição é muito mais difícil que instrumentar agora.
import boto3
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
# Converse API: mesmo formato para qualquer modelo do catálogo.
# Trocar de modelo = trocar esta string, e mais nada.
resposta = bedrock.converse(
modelId="anthropic.claude-opus-5",
messages=[
{
"role": "user",
"content": [{"text": "Resuma este ticket em uma frase: " + ticket}],
}
],
system=[{"text": "Você é um analista de suporte. Responda em português, sem saudação."}],
inferenceConfig={
"maxTokens": 200, # teto de saída — controle direto de custo
"temperature": 0.2, # tarefa de extração pede consistência
},
)
texto = resposta["output"]["message"]["content"][0]["text"]
# O uso vem na própria resposta: é daqui que sai o custo real, não de estimativa.
uso = resposta["usage"]
print(uso["inputTokens"], uso["outputTokens"], uso["totalTokens"])Repare no bloco `usage` da resposta: o Bedrock devolve a contagem real de tokens de entrada e saída em cada chamada. Instrumentar isso desde o primeiro dia é o que permite atribuir custo por squad e por caso de uso depois — assunto de FinOps, e muito mais difícil de retroagir do que de fazer desde o começo.
Para resposta em streaming, existe converse_stream: o token aparece conforme é gerado. Não muda o custo, muda a latência percebida — e em interface de chat isso é a diferença entre parecer travado e parecer instantâneo.
As três formas de pagar
| Modo | Como cobra | Quando faz sentido |
|---|---|---|
| On-demand | Por token de entrada e de saída, sem compromisso | Padrão. Tráfego variável, começo de projeto, prototipagem |
| Provisioned Throughput | Por unidade de modelo reservada, por hora, com compromisso | Volume alto e constante, ou exigência de capacidade garantida |
| Batch inference | Por token, com desconto relevante sobre on-demand | Lote sem urgência: enriquecer catálogo, classificar histórico, gerar embedding em massa |
A regra prática: comece on-demand. Provisioned Throughput só se paga com volume sustentado — e capacidade reservada ociosa é a forma mais rápida de queimar orçamento em projeto de IA. Já batch é dinheiro na mesa: se a tarefa tolera esperar, o desconto é significativo por nenhuma mudança de arquitetura.
📋 Preciso gerar descrição para 2 milhões de produtos do catálogo. Não há pressa: pode levar o fim de semana.
Volume enorme, zero requisito de latência. Batch aplica desconto substancial sobre on-demand pelo mesmo trabalho, e não exige compromisso nem mudança no prompt. É a primeira alavanca de custo que qualquer arquitetura de volume deveria usar.
Alt: On-demand, com fila e paralelismo próprios — Você reimplementa o que o batch já faz e paga o preço cheio. Ainda arrisca esbarrar em limite de taxa.
Alt: Provisioned Throughput por um mês — Compromisso mensal para um trabalho de fim de semana. Sobra capacidade paga e ociosa nos outros 28 dias.
Alt: Modelo menor em on-demand — É uma alavanca válida e combinável — mas sozinha deixa o desconto de batch na mesa. As duas juntas é a resposta completa.
Preço muda por modelo, por região e ao longo do tempo. Nenhum número decorado sobrevive ao ciclo de vida de uma certificação — consulte a página de preços do Bedrock. O que a prova cobra é o MODELO de cobrança (por token, por unidade reservada, com desconto em lote), não o valor.
Prompt caching e inferência entre regiões
Duas otimizações que aparecem em questão de custo e de disponibilidade.
Prompt caching guarda um prefixo do prompt já processado e cobra a leitura dele por uma fração do preço. Funciona por prefixo: só acerta se o começo do prompt for idêntico byte a byte. No Bedrock isso é explícito — você marca onde o cache termina, não é automático. A consequência de desenho é forte: ponha o que é estável (instrução, esquema de ferramenta, política) no começo, e o que varia (pergunta do usuário) no fim. Prompt montado na ordem inversa nunca acerta o cache.
Inferência entre regiões (cross-region inference) roteia a chamada automaticamente para outra região com capacidade, aumentando a resiliência a picos. Aparece em questão de disponibilidade — e tem implicação de conformidade: se o seu requisito é que o dado não saia de uma geografia, você precisa saber quais regiões o perfil de inferência abrange.
Sua aplicação envia, em cada chamada, um bloco de 4 mil tokens de política interna seguido da pergunta do usuário. Você quer reduzir custo sem perder a política. Qual medida se aplica?
O que o Bedrock NÃO faz
Esta seção existe porque material de terceiros erra muito aqui. Bedrock hospeda modelos e entrega inferência; ele não é a plataforma completa da Anthropic. Recursos que existem chamando a Anthropic direto não estão disponíveis via Bedrock.
| Recurso | No Bedrock? | Observação |
|---|---|---|
| Inferência com FM de vários provedores | Sim | É o núcleo do serviço |
| Tool use / function calling | Sim | Via Converse API, com contrato de ferramenta |
| RAG gerenciado (Knowledge Bases) | Sim | Recurso nativo do Bedrock |
| Guardrails de conteúdo | Sim | Aplicável a qualquer modelo, inclusive fora do Bedrock |
| Inferência em lote com desconto | Sim | Batch inference próprio do Bedrock |
| Ferramenta de busca na web gerenciada | Não | Você implementa como tool use próprio |
| Execução de código gerenciada | Não | Rode em Lambda ou container seu |
| Conector MCP gerenciado | Não | Existe na plataforma da Anthropic, não no Bedrock |
| Prompt caching automático | Não | Existe, mas explícito: você marca o ponto de cache |
E há uma distinção que a prova pode explorar: acessar Claude na AWS não é necessariamente acessar via Bedrock. Existe a Claude Platform on AWS, operada pela Anthropic, com paridade de recursos mais rápida e IDs de modelo sem prefixo — caminho diferente, com autenticação e cobrança diferentes. Bedrock é o caminho gerenciado pela AWS; não são sinônimos.
Nada disso é defeito: é escopo. Se o seu requisito é inferência gerenciada dentro do perímetro da AWS, com IAM, VPC endpoint e cobrança consolidada, Bedrock é a resposta certa. Se você precisa dos recursos de plataforma mais recentes da Anthropic, o caminho é outro — e saber os dois é o que diferencia quem projeta de quem repete.
Perguntas frequentes
❓ Como escolher modelo no catálogo do Bedrock?
❓ Qual a diferença entre invocação simples e em fluxo no Bedrock?
❓ Como o Bedrock cobra?
Fixando
Um hospital quer usar foundation model para resumir prontuário, mas o jurídico exige garantia de que o dado do paciente não vai treinar modelo de terceiro nem trafegar pela internet pública. O que atende?
Qual é a vantagem principal da Converse API sobre a InvokeModel?
Qual destes recursos NÃO está disponível através do Amazon Bedrock?
Próximo passo
Fim do Domínio 2. Começa o Domínio 3 — o maior da prova, com 28% — em aif-bedrock-knowledge-bases: como o RAG gerenciado funciona e onde ele quebra.
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 4 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…