Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Blog/Artigo
RSSMarkdownLLMs
IA & AgentesAnatomia do Padrão

FinOps para IA Generativa: Dissecando o Padrão de Custo Bedrock no CUR 2.0

21 de jul. de 2026 9 minAvançado Com apoio de IA000 visualizações00 reproduções
Ouvir artigo

19:34 · voz do Fernando

Durante meses, equipes de FinOps em organizações que adotaram Amazon Bedrock enfrentaram o mesmo problema silencioso: o CUR 2.0 entregava linhas de custo para inferência de modelos, mas os campos de produto eram inconsistentes entre provedores, modalidades e modos de serving. A consequência prática era um pipeline de atribuição cheio de regex frágil, lógica de mapeamento manual e relatórios que divergiam a cada novo modelo lançado. Em 20 de julho de 2026, a AWS anunciou metadados padronizados do Bedrock no AWS Data Exports, e isso muda a geometria do problema. Não é uma feature menor: é a fundação que faltava para tratar gasto com IA generativa com a mesma disciplina que aplicamos a EC2 ou RDS há anos.

O Problema Real: Custo de IA Generativa é Estruturalmente Diferente

Quando você gerencia custos de EC2, a unidade de medida é estável: horas de instância, com tipo, família e região como dimensões fixas. O modelo mental de FinOps funciona bem porque a granularidade do produto corresponde à granularidade do negócio. Com Bedrock, a realidade é outra. Um único workload de RAG pode gerar linhas de custo para tokens de entrada, tokens de saída, embeddings, chamadas de Knowledge Base e invocações de agentes, cada uma com um modelo diferente, de um provedor diferente, em um modo de serving diferente (On-Demand vs. Batch). Antes dessa mudança, o campo product/productFamily no CUR 2.0 não tinha um valor unificado para Bedrock, e atributos como nome do modelo e provedor estavam enterrados em colunas de mapa não estruturadas ou simplesmente ausentes para determinadas SKUs. O resultado era que equipes de engenharia precisavam manter tabelas de mapeamento externas, cruzando lineItem/UsageType com documentação de pricing que mudava a cada novo modelo. Em ambientes financeiros, onde chargeback por centro de custo não é opcional, é auditável, essa fragilidade era inaceitável. O custo não era apenas operacional: era de confiança. Relatórios de showback que divergem entre si corroem a credibilidade do time de plataforma junto às unidades de negócio, e em um contexto onde o gasto com IA generativa pode escalar de milhares para dezenas de milhares de dólares por mês em semanas, a falta de atribuição confiável se torna um risco financeiro real.

Anatomia do Padrão: O Que Mudou Estruturalmente no CUR 2.0

O anúncio introduz cinco atributos padronizados que formam o núcleo do padrão. Três deles: model_provider, model_name e inference_type, estão disponíveis dentro da coluna product como um mapa JSON no CUR 2.0. O atributo feature (que representa o modo de serving: On-Demand ou Batch) também está nesse mapa. O pricing_unit é exposto como coluna direta. E, crucialmente, o product/productFamily agora retorna o valor unificado "Amazon Bedrock" para todas as SKUs do serviço, eliminando a fragmentação anterior onde diferentes tipos de uso apareciam com famílias de produto distintas ou inconsistentes.

O que isso significa em termos de query? Com Athena sobre o S3 bucket do Data Export, uma query de atribuição que antes exigia múltiplos CASE WHEN sobre lineItem/UsageType agora pode ser escrita de forma limpa:

SELECT
  line_item_usage_account_id,
  product['model_provider']        AS model_provider,
  product['model_name']            AS model_name,
  product['inference_type']        AS inference_type,
  product['feature']               AS serving_mode,
  pricing_unit,
  SUM(line_item_unblended_cost)    AS total_cost,
  SUM(line_item_usage_amount)      AS total_usage
FROM cur2_export
WHERE product_family = 'Amazon Bedrock'
  AND line_item_line_item_type = 'Usage'
GROUP BY 1,2,3,4,5,6
ORDER BY total_cost DESC;

A query acima é direta, auditável e não depende de nenhuma lógica externa. Para ambientes com múltiplas contas (AWS Organizations), o padrão se compõe naturalmente com a consolidação de CUR no nível de management account, onde a coluna line_item_usage_account_id permite o chargeback por conta sem lógica adicional. O fato de os campos serem disponibilizados por padrão, sem custo adicional, elimina a decisão de opt-in que frequentemente atrasa a adoção em organizações com processos de aprovação lentos.

Pipeline de Atribuição de Custos Bedrock via CUR 2.0

Fluxo completo desde a geração de custo no Bedrock até o chargeback por centro de custo, mostrando os campos padronizados como eixo central do padrão.

🤖 AI Workloads
  • RAG App · Knowledge Base
  • Bedrock Agent · On-Demand
  • Batch Inference · Job
💰 Billing Engine
  • CUR 2.0 · product map column
  • Standardized Fields · model_provider · model_name · inference_type · feature · pricing_unit
🪣 Storage & Query
  • S3 Bucket · Data Export (Parquet)
  • Glue Crawler · Schema catalog
  • Athena · SQL attribution query
📊 FinOps Consumers
  • QuickSight · Showback dashboard
  • Data Warehouse · Chargeback ETL
  • CloudWatch · Cost anomaly alert

Quando Usar Este Padrão, e Por Que Ele Importa em Ambientes Financeiros

Este padrão é o caminho correto quando sua organização tem três condições simultâneas: (1) uso ativo de Amazon Bedrock com múltiplos modelos ou provedores, (2) necessidade de chargeback ou showback por unidade de negócio, produto ou centro de custo, e (3) volume de gasto com IA generativa que justifica governança formal, na prática, qualquer ambiente onde o gasto mensal com Bedrock ultrapasse alguns milhares de dólares ou onde existam SLAs de custo acordados com stakeholders internos.

Em ambientes financeiros regulados, a atribuição de custo não é apenas operacional, ela é parte da auditoria de controles internos. Se sua organização opera sob SOX, PCI-DSS ou frameworks equivalentes, a rastreabilidade de gasto por sistema, por produto e por responsável técnico é um requisito de controle, não uma conveniência. O padrão de CUR 2.0 com metadados padronizados do Bedrock satisfaz esse requisito de forma nativa, sem a necessidade de sistemas auxiliares de rastreamento.

O padrão também se encaixa bem em arquiteturas de Data Mesh onde o domínio de plataforma de IA é tratado como um data product com SLOs de custo. Nesse contexto, os campos model_name e inference_type funcionam como dimensões de partição natural para queries de custo por domínio consumidor. A granularidade de inference_type, que distingue tokens de entrada de tokens de saída, é particularmente valiosa porque o perfil de custo de um modelo varia significativamente dependendo da proporção input/output do workload. Um agente que gera respostas longas tem um perfil de custo completamente diferente de um classificador que processa documentos grandes mas retorna labels curtos.

Para organizações que já usam AWS Cost Anomaly Detection, o campo product_family = 'Amazon Bedrock' agora funciona como filtro confiável para criar monitores de anomalia específicos para IA generativa, sem o risco de falsos positivos causados por SKUs mal classificadas anteriormente.

Antes vs. Depois: Atribuição de Custos Bedrock no CUR 2.0

DimensãoAntes (pré-Jul/2026)Depois (metadados padronizados)
Identificação do modeloInferido via regex em lineItem/UsageTypeproduct['model_name'], campo direto e estável
Provedor do modeloAusente ou inconsistente entre SKUsproduct['model_provider'], padronizado
Tipo de inferênciaNão disponível como campo estruturadoproduct['inference_type'] (input/output tokens)
Modo de servingCodificado em UsageType, sem semântica explícitaproduct['feature'] (On-Demand / Batch)
Família de produtoFragmentada entre tipos de usoUnificada como 'Amazon Bedrock'
Manutenção de mapeamentoTabela externa, atualização manual a cada novo modeloZero, campos nativos, atualizados pela AWS

Design de Referência: Pipeline de FinOps para IA Generativa em Escala

Um pipeline de FinOps para Bedrock em produção vai além de uma query Athena ad-hoc. O design de referência que eu recomendo tem quatro camadas: ingestão, enriquecimento, atribuição e ação.

Ingestão: Configure o AWS Data Export com granularidade horária (não diária) para ambientes onde o gasto pode escalar rapidamente. O export deve ser entregue em formato Parquet com compressão Snappy para um bucket S3 dedicado, com particionamento por year/month/day/hour. Use S3 Object Lock no modo Compliance com retenção de 7 anos para satisfazer requisitos de auditoria financeira. A política de bucket deve restringir acesso ao role do Data Export e ao role de leitura do pipeline de FinOps, com condição aws:SourceAccount para prevenir confused deputy.

Enriquecimento: Um Glue Crawler com agendamento horário mantém o catálogo atualizado. A tabela resultante no Glue Data Catalog deve ter as colunas do mapa product explicitamente mapeadas como product_model_provider, product_model_name, etc., via um Glue ETL job que normaliza o mapa JSON em colunas tipadas, isso reduz o custo de scan do Athena em 40-60% comparado a queries que fazem extração de mapa em tempo de execução. Para organizações com múltiplas contas, o export consolidado no management account já inclui line_item_usage_account_id, mas adicione uma tabela de enriquecimento que mapeia account ID para nome de time, produto e centro de custo, essa tabela é o ativo de governança mais valioso do pipeline.

Atribuição: Views materializadas no Athena (ou tabelas CTAS atualizadas diariamente) para os três cortes principais: por modelo/provedor, por conta/time e por modo de serving (On-Demand vs. Batch). O corte por inference_type é especialmente útil para otimização: se o custo de output tokens domina, o workload é candidato a prompt compression ou caching. Se o custo de input tokens domina com contextos longos, é candidato a Batch inference, que tipicamente oferece desconto significativo sobre On-Demand.

Ação: Integre as views com AWS Cost Anomaly Detection usando filtros em product_family = 'Amazon Bedrock' e product['model_name'] para alertas granulares. Para chargeback automatizado, um Step Functions workflow diário pode ler as views Athena, calcular alocações por centro de custo e publicar no sistema de billing interno via API.

Armadilhas que Persistem: O Que Este Padrão Não Resolve

  • Atribuição sem tags de aplicação: Os metadados padronizados identificam o modelo e o tipo de inferência, mas não o sistema de negócio que fez a chamada. Se suas invocações do Bedrock não passam por um proxy ou gateway que injeta tags de custo (via resource tags ou cost allocation tags no nível da conta), você terá visibilidade de 'quanto gastamos com Claude 3.5 Sonnet' mas não de 'qual
  • Granularidade de request-level: O CUR 2.0 agrega custos por período de billing, não por invocação individual. Para rastreabilidade de custo por usuário final, sessão ou transação, você ainda precisa de instrumentação no nível da aplicação, por exemplo, capturar tokens consumidos por request via CloudWatch custom metrics ou OpenTelemetry e correlacionar com o custo unitário do modelo.
  • Latência do export: O AWS Data Export tem latência de entrega que pode chegar a 24 horas para dados diários e algumas horas para dados horários. Para alertas de custo em tempo quase real, o CUR não é a fonte correta, use AWS Cost Anomaly Detection com notificações SNS, que opera sobre dados de billing com latência menor.
  • Custos de infraestrutura associados: O padrão cobre o custo direto de inferência do Bedrock, mas workloads de RAG têm custos associados em outros serviços: S3 para armazenamento de documentos, OpenSearch Serverless ou Aurora para o vector store, Lambda para orquestração.
  • Dependência de export único sem validação: Times que constroem pipelines de chargeback sobre o CUR sem validação cruzada com AWS Cost Explorer ou com o billing dashboard da conta correm o risco de discrepâncias causadas por créditos, refunds ou ajustes de billing que aparecem como linhas separadas.

Configure Cost Allocation Tags Antes de Escalar o Uso do Bedrock

Os metadados padronizados do CUR 2.0 resolvem a dimensão 'o que' (qual modelo, qual tipo de inferência), mas a dimensão 'quem' (qual time, produto ou aplicação) ainda depende de cost allocation tags ativadas no nível da conta AWS. Ative as tags Environment, Application, CostCenter e Team no AWS Billing Console antes de onboarding de novos workloads Bedrock. Tags não ativadas não aparecem no CUR e não podem ser retroativamente aplicadas a dados históricos, o custo de não fazer isso no início é perda permanente de rastreabilidade.

Segurança e Governança do Pipeline de FinOps

Um pipeline de FinOps que contém dados de custo detalhados por modelo e por conta é, em si, um ativo sensível. Em ambientes financeiros, a visibilidade de quanto cada time gasta em quais modelos de IA pode ser informação competitiva ou regulatória. O design de segurança do pipeline precisa ser tratado com o mesmo rigor que dados de negócio.

Para o bucket S3 que recebe o export, aplique: criptografia SSE-KMS com uma CMK dedicada ao pipeline de FinOps (não a chave padrão da conta), política de bucket com aws:SecureTransport: true para forçar HTTPS, bloqueio de acesso público habilitado em todas as quatro dimensões, e S3 Object Lock em modo Compliance para imutabilidade de registros de auditoria. O IAM role usado pelo Glue Crawler e pelo Athena para leitura deve ter permissão apenas de s3:GetObject e s3:ListBucket no bucket específico, com condição s3:prefix restringindo acesso ao prefixo do export, nunca conceda s3:* ou acesso ao bucket inteiro.

Para o Athena, habilite workgroup com resultado de query criptografado em S3 com a mesma CMK, e configure EnforceWorkGroupConfiguration: true para prevenir que queries ad-hoc de usuários individuais contornem a configuração de segurança. Use IAM conditions athena:WorkGroup para restringir quais roles podem executar queries no workgroup de FinOps.

No nível organizacional, considere que o export consolidado do management account contém dados de todas as contas filhas. O acesso a esse export deve ser restrito ao time de FinOps central, com views separadas por conta expostas via Lake Formation para times de engenharia individuais, isso implementa o princípio de least privilege sem duplicar os dados. CloudTrail com filtro em s3:GetObject no bucket do export e em queries Athena no workgroup de FinOps fornece o audit trail necessário para demonstrar controle de acesso em auditorias.

Lente Well-Architected: Pipeline de FinOps para Bedrock

Segurança

CMK dedicada para o bucket S3 do export; IAM roles com least privilege e condições s3:prefix; S3 Object Lock Compliance para imutabilidade; Lake Formation para controle de acesso granular por conta em ambientes multi-account.

Confiabilidade

Export horário com validação de reconciliação diária contra AWS Cost Explorer; Glue Crawler com retry automático e alarme CloudWatch em falha de crawl; particionamento S3 por hora para limitar o impacto de reprocessamento.

Eficiência de performance

Glue ETL job normalizando o mapa JSON em colunas tipadas reduz custo e latência de scan Athena em 40-60%; workgroup Athena com limite de scan por query para prevenir queries não otimizadas de consumir TB de dados.

FA
Nota do Arquiteto
Arquiteto de TI Especialista

Na prática, o maior obstáculo para FinOps de IA generativa não é técnico, é organizacional: times de engenharia que provisionam workloads Bedrock sem coordenar com o time de plataforma, resultando em contas sem tags e pipelines de custo cegos. O que eu faria em qualquer organização que está escalando uso de Bedrock é simples: antes de qualquer otimização de query ou dashboard, garanta que as cost allocation tags estejam ativadas e que exista um processo de onboarding que inclua verificação de tags como gate de deploy. Os metadados padronizados do CUR 2.0 são uma fundação excelente, mas fundação só tem valor se a governança organizacional está construída sobre ela. A lição que aprendi da forma mais cara é que dados de custo sem dimensão de 'quem' são apenas ruído, você sabe que está gastando, mas não sabe onde agir.

Veredicto: Adote, Mas Não Pare Aqui

Adopt

Os metadados padronizados do Bedrock no AWS Data Exports são uma mudança genuinamente útil que elimina uma classe inteira de trabalho de manutenção em pipelines de FinOps. O padrão é sólido: campos estáveis, sem custo adicional, compostos naturalmente com a infraestrutura existente de CUR 2.0 e Athena. Para qualquer organização com uso ativo de Bedrock e necessidade de chargeback ou showback, a adoção é direta e o ROI é imediato, a redução de manutenção de tabelas de mapeamento manuais sozinha justifica a migração. O que este padrão não resolve, e onde a maioria das organizações vai tropeçar, é na dimensão de atribuição por aplicação e por usuário, que ainda depende de disciplina de tagging e instrumentação no nível da aplicação. Minha recomendação: adote o padrão de CUR 2.0 com metadados Bedrock como fundação, combine com cost allocation tags ativadas e um Glue ETL job que normaliza o mapa de produto em colunas tipadas, e trate a atribuição por request como um problema separado a ser resolvido com OpenTelemetry e métricas customizadas no CloudWatch. A fundação está finalmente disponível, o que você constrói sobre ela é sua responsabilidade.

Referências

AWS What's New: AWS Data Exports now provides standardized Amazon Bedrock product metadata (Jul 20, 2026)AWS Data Exports – Product OverviewAWS Data Exports User Guide – Product columns (CUR 2.0)Amazon Bedrock – Product PageAWS Cost Anomaly Detection – User GuideAWS Lake Formation – Column-level security for AthenaFinOps Foundation – FinOps for AI/ML WorkloadsAWS Blog – Querying AWS Cost and Usage Reports with Amazon Athena
#finops#bedrock#cur2#aws-data-exports#cost-attribution#generative-ai#athena#governance
Compartilhar:LinkedInWhatsAppXBaixar em Markdown
Fonte analisada: AWS Data Exports now provides standardized Amazon Bedrock product metadata
Próximo passo
Agentes de IA em produção na AWSComo eu desenho, oriento e audito agentes que vão ao ar, com os números e as fontes.Ver o IA BuilderTrilha Arquiteto de IA, gratuitaFundamentos, LLMs, RAG, tools, MCP e arquitetura na AWS, em aulas curtas e interativas.Começar a trilha

Continue lendo

IA & AgentesFable 5.1 no Bedrock: retenção de dados virou decisão de arquiteturaClaude Fable 5.1 chegou ao Bedrock em 1º de setembro de 2026 com 1M de contexto e uma condição que nenhum modelo anterior da Anthropic tinha: você precisa autorizar explicitamente a retenção de prompts e saídas por até 30 dias dentro da AWS. Isso não é uma caixinha de consentimento, é uma configuração de conta com raio de alcance organizacional, que colide com o SCP de zero data retention que a maioria dos ambientes regulados já tem escrito.Ler IA & AgentesQuatro padrões de engenharia que separam multiagente de prompt chainO Google publicou os quatro padrões de engenharia que apareceram nos vencedores do AI Agents Challenge. Nenhum deles é sobre modelo: são interface de ferramenta, mensageria assíncrona, validação estrutural e roteamento barato antes da inferência. Reviso cada um com o que muda ao levá-lo para AgentCore, EventBridge e Bedrock, e onde o protótipo do desafio não sobrevive à produção.Ler IA & AgentesRAG sobre ServiceNow: o conector que apaga o user criteriaO conector nativo de ServiceNow do Amazon Bedrock Managed Knowledge Base chegou em 4 de setembro de 2026 e tira semanas de pipeline artesanal do caminho. Ele também instrui você a usar uma conta de serviço com knowledge_admin, que ignora o user criteria por knowledge base, e o conector não ingere ACL de documento. Este é o retro do piloto em que essas duas linhas de documentação se encontraram.Ler
AnteriorNova York suspende novos data centers acima de 50 MWPróximoMigrando Workloads de Alta Rede para EC2 R6in/R6idn em Paris e Canadá
Gostou desta análise? Receba a próxima.

Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.

Sem spam · cancele quando quiser

Pergunte ao Fernando sobre isto

Uma resposta focada sobre este artigo, do meu assistente de IA, baseada no meu trabalho.

Participe da conversa

Entre para comentar

Confirme seu e-mail para participar, você também recebe a newsletter. Sem senha.

Neste artigo
O Problema Real: Custo de IA Generativa é Estruturalmente DiferenteAnatomia do Padrão: O Que Mudou Estruturalmente no CUR 2.0ArquiteturaQuando Usar Este Padrão, e Por Que Ele Importa em Ambientes FinanceirosAntes vs. Depois: Atribuição de Custos Bedrock no CUR 2.0Design de Referência: Pipeline de FinOps para IA Generativa em EscalaAntipadrõesSegurança e Governança do Pipeline de FinOpsWell-ArchitectedVeredicto: Adote, Mas Não Pare AquiReferências