A FinOps playbook for Amazon Bedrock spend: model routing, prompt caching, batch inference, output reduction, RAG vs long context, distillation, Provisioned Throughput break-even, embeddings and monitoring. Each lever has its mechanism, typical effect and when to use it, plus a ranking by impact and effort.
Bedrock spend creeps: a frontier model for every request, a long system prompt re-sent each call, real-time APIs doing overnight work, uncapped output, reserved capacity nobody watches.
Text models bill per token for input (prompt, system instruction, history, retrieved context) and output, at a rate set by the model. Output usually costs several times more than input. On top of that sit the pricing modes (on-demand, batch, Provisioned Throughput, prompt caching) and separate charges for embeddings, customization and custom-model hosting. Details are on the Bedrock pricing page and AWS's own pricing page.
Two variables dominate every bill: which model you call and which pricing mode you buy it through. Nearly every cost cut moves one of those, or reduces the tokens flowing through them.
Work in this order: measure, act, watch. Attribution (lever 9) saves nothing by itself, but it tells you where to act. Then pull levers roughly by impact per hour of work. Figures on this page are representative; confirm current rates before budgeting.
Most systems use one capable model for every request and pay frontier prices for work a small model would handle.
Mechanism. Bedrock hosts a ladder of models (Amazon Nova Micro, Lite, Pro and Premier; Claude Haiku, Sonnet and Opus classes; Llama; Mistral; Cohere) whose per-token rates differ widely. Right-sizing picks the cheapest model that meets the bar for a task. Routing makes that choice per request: easy traffic (classification, extraction, short answers, simple chat turns) goes to a small model, and hard requests escalate to a frontier model. Escalation can be rule-based (length, task type) or model-based (the small model tries first; a check decides whether to retry larger).
Typical effect. Because much real traffic is easy, moving it to a small model often cuts inference cost several-fold with little quality loss. The exact figure depends on your traffic mix.
When to use it. Almost always, and first. Build a small evaluation set and confirm the small model holds the bar on each task before routing it down.
If requests share a large prefix (system prompt, instructions, a reference document, tool definitions), you pay full input price for it every call. Caching stops that.
Mechanism. Bedrock caches a marked prefix so later requests that reuse it are billed at a discounted rate for those tokens. The cache has a short time-to-live, and some models also charge to write it. Put stable content first and per-request content last. See the prompt caching guide for supported models.
Typical effect. AWS says prompt caching can reduce costs by up to 90% for supported models. The bill-level effect depends on how much input is shared: a long system prompt with short questions benefits a lot; fully unique requests do not.
When to use it. Chatbots with long fixed prompts, RAG with recurring instructions, and agents with large tool definitions. See the prompt caching page.
Anything that can run in the background (overnight enrichment, bulk classification, corpus summarization, evaluations) is overpaying on the real-time API.
Mechanism. Submit many requests as one job (a file in S3); Bedrock processes them asynchronously and writes results back. AWS prices batch at 50% lower than on-demand for select models. Same model, same output.
When to use it. High-volume work that is not latency-sensitive: enrichment, embedding a corpus, classification and extraction at scale, labeling, offline evaluations. Not for chat or live agents. See the batch inference page.
Output tokens are the expensive direction, and output length is the variable teams control least.
Mechanism. Set a sensible max-output-token limit. Ask for concise, structured output (JSON, short fields) instead of prose that restates the question. On the input side, trim retrieved chunks, window or summarize long history, and prune bloated system prompts.
Typical effect. Large on workloads where generations were unbounded or verbose, and on chats that resend growing history. Small on read-heavy workloads.
When to use it. Everywhere, as basic hygiene. It is configuration, not engineering, and stacks with every other lever.
Pasting a large document into every request makes each call pay for knowledge it mostly does not use.
Mechanism. Retrieval-augmented generation fetches only the few relevant chunks per question, so input stays small as the knowledge base grows. In RAG systems, retrieved context usually dominates input cost, so fetching fewer, better chunks is a cost lever as well as a quality one.
When to use it. Whenever the knowledge is larger than a small, stable set of facts. Keep long context for small or one-off inputs. See RAG on AWS.
For a high-volume, narrow task, train a small model to do what a large one does.
Mechanism. Distillation trains a smaller "student" model on responses from a larger "teacher" for a specific task (see the Bedrock distillation guide). You pay a one-time training cost, then run the task at the student's lower rate.
When to use it. When the task is high-volume and narrow enough that the per-token saving repays training. For low-volume or broad tasks, routing and prompt work on a base model usually win. See Bedrock fine-tuning and distillation.
Provisioned Throughput saves money above its break-even and wastes money below it.
Mechanism. You reserve model units for a term and pay a flat hourly rate regardless of tokens. It is cheaper than on-demand only when steady volume would cost more on-demand than the hourly charge. Below that, you pay for idle capacity.
When to use it. Steady, high, predictable volume, where on-demand throttling is a real risk, and as one way to serve fine-tuned models (some base models also allow on-demand deployment of a fine-tune). Keep spiky or low traffic on on-demand. See Provisioned Throughput for the break-even math.
Embeddings are cheap per token, until you embed a large corpus, re-embed on every change, and pay for a vector store.
Mechanism. Embedding models (Amazon Titan Text Embeddings, Cohere Embed) bill on input tokens only. The cost comes from volume and churn, plus the standing cost of the vector store.
What to do. Run corpus embedding as a batch job. Re-embed only what changed. Chunk sensibly to avoid redundant overlap. Size the vector store to the workload.
This lever saves no money on its own, but every other lever depends on it.
Attribution: break spend down by model, feature, pricing mode and team, using tags, application inference profiles and per-request token logging. Monitoring: track tokens, cost and latency with CloudWatch and model invocation logging. Alerts: AWS Budgets and cost anomaly detection catch a runaway agent loop, a ballooned prompt or a forgotten reservation in hours, not at month-end.
When to use it. Before you start optimizing, and permanently after.
Do the top rows first. Lower rows are situational or take more engineering.
| # | Lever | Mechanism in one line | Typical effect | Effort | Best for |
|---|---|---|---|---|---|
| 1 | Model right-sizing and routing | Small model for easy traffic, frontier for hard | Often several-fold on inference | Medium | Almost everyone, first |
| 2 | Prompt caching | Stop re-paying for repeated context | Up to 90% lower cost (AWS, supported models) | Low | Long fixed prompts, RAG, agents |
| 3 | Batch inference | Async job instead of real-time API | 50% lower price (select models) | Low | Offline bulk work |
| 4 | Output-token reduction | Cap and tighten output; trim input | Large where output was unbounded | Low | Long generation, chat history |
| 5 | RAG vs long context | Retrieve a few chunks instead of stuffing the window | Large cut in input tokens | Medium | Knowledge-heavy workloads |
| 6 | Model distillation | Train a small model to mimic a big one | Lower ongoing rate on one task | High | High-volume, narrow tasks |
| 7 | Provisioned Throughput | Flat hourly capacity vs per token | Saves only above break-even | Medium | Steady high volume; custom models |
| 8 | Embeddings and vector store | Incremental re-embed, batch, right-size store | Lower embed and store cost | Medium | Large or changing corpus |
| 9 | Monitoring, attribution, alerts | See spend by model and feature; alert on anomalies | Indirect: targets and protects the rest | Low | Everyone, day one |
Bedrock spend draws down AWS credits automatically, and cost-tuning is real engineering work.
Partner-filed funding: a vetted AWS partner can file POC (proof of concept) funding to test a new GenAI workload, or incremental workload (IW) funding if you already run on AWS and are launching new work. For startups this is typically $50K to $150K. Depends on the workload; AWS approves.
AWS Activate: you apply yourself. Activate Founders gives self-funded startups $1,000 to start, up to $5,000. Activate Portfolio gives up to $200,000 with the Org ID from your VC, accelerator or angel group, if it is an Activate Provider. A consulting partner cannot file Activate for you.
With credits in place, the nine levers make them last longer. CloudRoute matches you with one vetted AWS partner who can build the router, caching, batch pipelines and attribution, and check which funding fits. Startups pay CloudRoute nothing. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
| Funding | Who files it | Amount | When it fits |
|---|---|---|---|
| Migration Acceleration Program (MAP) | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are not on AWS yet and want to migrate. |
| Proof of concept (POC) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You want to test something, whether or not you are on AWS today. |
| Incremental workload (IW) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract. |
| AWS Activate Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
| AWS Credits for AI Startups | Invite only (AWS account manager) | $200,000 or more, by invitation | AI startups ready to scale after Activate Portfolio, invited by AWS. |
One illustrative assistant: a frontier model on-demand, a long fixed system prompt, uncapped output and a nightly enrichment job. The point is the compounding, not exact dollars.
| Step | What changes | Effect on the bill | Effort |
|---|---|---|---|
| Baseline | Frontier model, on-demand, no caching, uncapped output | 100% | n/a |
| + Model routing | Easy majority of traffic to a small model | Inference cut several-fold | Medium |
| + Prompt caching | Long shared system prompt cached | Repeated input much cheaper | Low |
| + Output limits | Max-output cap and concise instructions | Output portion shrinks | Low |
| + Batch the nightly job | Enrichment moved off the real-time API | 50% lower price on that job (select models) | Low |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the test with you. Then it checks whether the test qualifies for POC (proof of concept) funding. A POC can fit whether or not you run on AWS today.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
A vetted AWS partner can build the router, caching, batch pipelines and cost attribution. The same partner checks whether the work qualifies for POC or IW funding: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.