Amazon Bedrock isn't a GPU rental service with an API bolted on. It's a managed layer that puts Claude, Llama, Nova, Mistral, and a handful of other model families behind one billing account, and the pricing story underneath it is stranger than "AWS marks up tokens." For Claude specifically, Bedrock doesn't mark up the token rate at all, it matches Anthropic's direct API dollar for dollar. If you're pricing out AWS GPU capacity directly rather than a managed model API, that's a separate comparison entirely, covered in our AWS H100 pricing breakdown.
The real cost decisions on Bedrock sit somewhere else: Provisioned Throughput's fixed hourly rate, the routing choice between a region-locked endpoint and Bedrock's global default, and a fine-tuning menu that quietly excludes every current Claude model. This post walks through Bedrock's 2026 pricing by model family, where the markup actually lives, and the monthly token volume where renting your own GPUs and running vLLM starts to beat AWS's abstraction layer outright.
Amazon CEO Andy Jassy put a number on how far Bedrock has spread: "Amazon Bedrock, which is used expansively by over 125,000 customers, runs most of its inference on Trainium, and almost 80% of Fortune 100 companies are using Bedrock" (aboutamazon.com). The growth curve backs that up: Bedrock revenue grew 170% quarter over quarter in 1Q26, after 60% growth the prior quarter, putting it at roughly a $5.5 billion annualized run rate and up from 9% to 37% of AWS's total AI revenue in a single year (SemiAnalysis). Most of that spend, an estimated 80-90%+, runs on Anthropic models, which is why Bedrock's economics track Claude adoption almost one for one.
AWS Bedrock On-Demand and Batch Pricing by Model Family in 2026
Bedrock's on-demand catalog spans roughly 150-200x on price alone: Amazon Nova Micro sits at $0.035/$0.14 per million input/output tokens, while Claude Opus lists at $5-6/$25-30 per million (aws.amazon.com/bedrock/pricing). That spread means "how much does Bedrock cost" only makes sense answered model by model.
Claude on Bedrock: Same Token Price as the Direct Anthropic API
Here's the direct answer: Claude on Bedrock costs exactly what Claude costs on Anthropic's own API, dollar for dollar, in standard commercial regions. Claude Sonnet 5 lists at $2 per million input tokens and $10 per million output tokens through August 31, 2026, reverting to $3/$15 after that, on both platforms simultaneously (Anthropic pricing docs; aws.amazon.com/bedrock/pricing). Claude Opus 4.8 runs $5/$25 per million tokens on both, too. That parity is why the "Bedrock markup" framing is mostly wrong for Claude specifically: there isn't one, at the token-rate level.
Two things do cost more on Bedrock. AWS GovCloud lists Claude Opus 4.8 at $6/$30 per million tokens, a GovCloud-specific line item rather than a general Bedrock tax. And starting with Claude Sonnet 4.5, Haiku 4.5, and Opus 4.5, Anthropic's own pricing documentation is explicit that "regional and multi-region endpoints include a 10% premium over global endpoints" on Bedrock and Google Cloud. Bedrock's global endpoint (the default) routes dynamically for maximum availability at the standard rate; choosing a regional or multi-region endpoint to guarantee where inference actually runs costs 10% more. That's the first real markup in this whole pricing story, and it's a data-residency tax, not a Bedrock tax.
Batch processing gets you the same 50% discount on both platforms too: Claude Sonnet 5 batch runs $1/$5 per million tokens during the promotional window, $1.50/$7.50 standard, on Bedrock and the direct API alike (Anthropic pricing docs).
Llama, Nova, and Mistral On-Demand Rates
Outside Anthropic, Bedrock's own catalog spans the full spread. Amazon Nova Micro prices at $0.035 per million input tokens and $0.14 output, and Nova Lite runs $0.06/$0.24, both aimed at high-volume, low-complexity workloads like classification and short-form generation. Mistral Large 3 lists at $0.50 input / $1.50 output per million tokens in US East regions, climbing slightly in other regions ($0.59/$1.76 in Asia Pacific Mumbai, $0.61/$1.82 in South America and Tokyo) (aws.amazon.com/bedrock/pricing). Meta's Llama family is on the same catalog, though AWS periodically retires and re-lists specific Llama versions, so check the live pricing page for whichever Llama generation you're targeting rather than budgeting off a cached number.
The practical takeaway: for models AWS treats as commodity inference (Nova, Mistral, most of Llama), on-demand Bedrock pricing is genuinely cheap per token, cheap enough that it's frequently below what self-hosting the same model on rented GPUs costs per token, a point we'll come back to in the breakeven section.
Batch Inference: 50% Off for Async Workloads
Batch inference gives a flat 50% discount off on-demand rates for supported models from Anthropic, Meta, Mistral, and Amazon, with results delivered to S3 within 24 hours (aws.amazon.com/bedrock/pricing). It's the same shape as the discount other API providers offer for async jobs. If your workload is nightly enrichment, bulk classification, or anything that doesn't need a synchronous response, batch is close to a free lunch: same model, same weights, half the token bill.
Where the Bedrock Markup Actually Sits vs Raw Token Cost
If the token rate isn't the markup, the natural question is where the real cost premium lives. It's in two places: the fixed hourly cost of Provisioned Throughput, and the routing choice that trades a discount for data-residency guarantees.
Provisioned Throughput Is the Real Cost Lever, Not the Token Rate
Provisioned Throughput bills a fixed hourly rate per Model Unit, independent of how many tokens you actually send, and you need it in two situations that have nothing to do with a per-token price comparison: your account has outgrown the default on-demand rate limits, or you're serving a model you customized inside Bedrock (more on that below).
AWS's own documentation is unusually candid about what a Model Unit doesn't tell you: the price depends on "the number of Model Units (MUs) that you specify," and for the specifics of "what an MU specifies, pricing per MU," AWS tells you to "contact your AWS account manager" rather than publishing it on the pricing page (docs.aws.amazon.com). What is published, across the model families AWS does list rates for:
| Model | No commitment | 1-month commitment | 6-month commitment |
|---|---|---|---|
| Cohere Command | $49.50/hr | $39.60/hr | $23.77/hr |
| Anthropic Claude Instant | not listed | $39.60/hr | not listed |
| Meta Llama 2 | not listed | $21.18/hr | $13.08/hr |
| Amazon Titan Text Express | not listed | $18.40/hr | not listed |
| Cohere Command Light | $8.56/hr | $6.85/hr | $4.11/hr |
(Source: aws.amazon.com/bedrock/pricing. Longer commitments buy a real discount, roughly 38-52% off the no-commitment or 1-month rate depending on the model, but you're locked in for the full term either way.)
Put those numbers next to raw GPU rental and the comparison gets concrete fast. One Meta Llama Model Unit at the $21.18/hr 1-month rate buys roughly 5.4 H100 SXM5 GPUs on-demand on Spheron at today's live rate, or about 14.7 GPUs at spot pricing. The priciest tier here, Cohere Command at $49.50/hr with no commitment, buys around 12.6 H100 SXM5 GPUs on-demand, or 34 at spot. That's not a knock on Provisioned Throughput's convenience, you're not managing NCCL configs or CUDA versions, but it does mean the real question isn't "is Bedrock's token rate fair," it's "does a black-box Model Unit beat a transparent GPU-hour rate for what you're actually trying to run."
Cross-Region Inference Surcharge and Knowledge Base Add-On Costs
Bedrock's cross-region inference feature works the opposite direction from what most cost calculators assume. Geographic cross-region inference (routing within a defined boundary like US, EU, or APAC) runs at standard pricing, while global cross-region inference, which can route your request to any commercial AWS region worldwide, runs at roughly a 10% discount versus the geographic tier (docs.aws.amazon.com). There's no separate routing fee on top of either option. So the "surcharge" isn't really a surcharge, it's a discount you give up when you need requests to stay inside a compliance boundary, which lands in the same place financially: guaranteeing where your data gets processed costs about 10% more than letting AWS route anywhere.
Knowledge Bases (Bedrock's managed RAG feature) bill on top of whatever model you're querying. Index storage runs $5.00 per GB of raw indexed data per month, standard retrieval calls cost $1.00 per 1,000 API calls, and agentic retrieval with managed LLM planning runs $4.00 per 1,000 agentic retrieve calls plus $1.00 per 1,000 underlying retrieve calls (aws.amazon.com/bedrock/pricing). Document parsing, embedding generation, and reranking with AWS's managed models are included at no extra charge, but the moment you pick your own embedding or reranking model, that model's own per-token rate applies on top. None of this shows up in a per-token price comparison, and all of it is a real line item on a production RAG deployment.
Break-Even: Monthly Token Volume Where Self-Hosting Wins
The short version: on raw per-token cost, Bedrock's on-demand tier is frequently cheaper than self-hosting the same open-weight model, because you're not paying for idle GPU-hours. Self-hosting only wins once sustained volume is high enough that a fixed cluster cost beats per-token billing indefinitely, and by that point you're usually past the volume where Bedrock's on-demand tier would let you run without Provisioned Throughput anyway.
Blended Cost Per Million Tokens by Model (80/20 Split)
Most production traffic sends more input than output. At an 80/20 split, Mistral Large 3 on Bedrock blends to:
Blended rate = (0.8 x $0.50) + (0.2 x $1.50) = $0.40 + $0.30 = $0.70/M tokensCompare that to self-hosting the same model. Our Mistral Large 3 deployment guide puts an 8x H200 SXM5 FP8 cluster on Spheron at roughly $1.57/M tokens on spot pricing and $4.04/M tokens on-demand, at around 2,500 tokens/second aggregate throughput. Bedrock's on-demand rate undercuts even the spot self-hosted number here, by more than 2x. That's the part of this comparison most cost breakdowns skip: for a model AWS prices as commodity inference, the API can be the objectively cheaper option at low-to-moderate volume, full stop, no engineering-time hand-waving required.
Claude doesn't fit this comparison the same way, since it isn't open-weight and can't be self-hosted at all. The real Claude decision is API vs API (Bedrock vs direct Anthropic, which the pricing math above shows is close to a wash) versus a genuinely different model entirely. Our Claude Opus 4.8 API vs self-hosted LLMs breakdown covers that comparison in depth, with breakeven volumes for DeepSeek V4, GLM-5.2, and Qwen3-235B-A22B against Claude's blended token rate.
GPU Cluster Cost vs Bedrock at Scale
Run the Mistral Large 3 numbers out to a monthly breakeven. An 8x H200 SXM5 cluster on Spheron running spot pricing costs about $14.16/hr; at 720 hours a month that's $10,195. Dividing that fixed monthly cost by Bedrock's $0.70/M blended rate gives the token volume where the cluster pays for itself: roughly 14.6 billion tokens a month, or about 485 million tokens a day. On-demand cluster pricing (~$36.32/hr, $26,150/month) pushes that breakeven to around 37.4 billion tokens a month, or 1.25 billion tokens a day.
Those are enormous numbers, and there's a second constraint that matters more in practice: a single 8x H200 cluster tops out around 2,500 tokens/second aggregate, which is roughly 216 million tokens a day at full utilization. The 485-million-token breakeven volume already exceeds a single cluster's throughput ceiling, meaning you'd need multiple clusters running in parallel well before the fixed-cost math alone justifies self-hosting, which adds real operational overhead on top of the raw dollar comparison.
This is exactly why Provisioned Throughput, not on-demand token pricing, is the number worth comparing against GPU rental. Once your volume needs a guaranteed throughput SLA rather than best-effort on-demand serving, you're paying a fixed hourly Model Unit rate either way, on Bedrock or on your own rented cluster. At that point the comparison in the table above (a Meta Llama Model Unit at $21.18/hr buying 5-15 H100 SXM5 GPUs on Spheron depending on spot vs on-demand) is the one that actually applies, not the per-token blend.
Pricing fluctuates based on GPU availability. The prices above are based on 22 Jul 2026 and may have changed. Check current GPU pricing → for live rates.
Data Residency and Fine-Tuning Control You Give Up on Bedrock
Buying compute through Bedrock's abstraction layer instead of renting the GPU directly comes with a second cost that doesn't show up on any pricing page: restrictions on which models you can fine-tune and how tightly you can pin where inference physically runs.
Which Models You Can Actually Fine-Tune on Bedrock (Claude Isn't One)
Bedrock's supervised fine-tuning menu covers Amazon Nova (Micro and Lite support standard SFT, Nova 2 Lite supports both SFT and reinforcement fine-tuning, Nova Premier can serve as a distillation teacher), plus Meta Llama, Cohere Command Light, and Amazon Titan (AWS Nova fine-tuning blog). Claude isn't on that list, with one narrow exception: Claude 3 Haiku fine-tuning is generally available, but only in the US West (Oregon) region (AWS blog). None of the current-generation Claude models, Sonnet 5, Opus 4.8, or Haiku 4.5, support fine-tuning on Bedrock in any region. If your roadmap assumes you can eventually fine-tune Claude Sonnet 5 through Bedrock the way you'd fine-tune Llama, that assumption doesn't hold today, and there's no public signal it's changing soon. For the direct-rental side of this comparison, our LLM fine-tuning cost guide walks through real H100 QLoRA and LoRA training costs against Together AI and Fireworks AI's per-token fine-tuning rates.
Custom Models Only Run on Provisioned Throughput, Never On-Demand
This is a hard constraint, not a pricing preference: "if you customized a model, you must purchase Provisioned Throughput to be able to use it" (docs.aws.amazon.com). There is no on-demand tier for a fine-tuned model on Bedrock, at any volume. The one piece of good news is that pricing for a customized model matches whatever base model it was built from, so a Llama-based custom model bills at the same Model Unit rate as the vanilla Llama base model, per the same AWS documentation.
Practically, that means the moment you fine-tune anything on Bedrock, you've opted into the fixed-hourly-rate comparison from the section above on day one, regardless of your token volume. There's no "start small on-demand, graduate to Provisioned Throughput later" path for a custom model the way there is for base models.
In-Region vs Geo vs Global Routing for Data Residency
Bedrock exposes three routing shapes, and each model's detail page documents which ones it supports: staying entirely within the region you call from (no cross-region routing at all), Geographic cross-region inference (bounded to a defined geography like US, EU, or APAC), and Global cross-region inference (routed to any of the roughly 31 commercial AWS regions Bedrock runs in) (docs.aws.amazon.com; docs.aws.amazon.com). Application inference profiles specifically, a narrower routing construct that applies across most Bedrock models, can currently be created in 15 named regions, spanning North America, Europe, Asia Pacific, and South America.
The tradeoff mirrors the pricing point above: staying in-region or bounding requests to a geography protects data residency but forgoes Global's roughly 10% discount, and for current-generation Claude models specifically, choosing a region-locked endpoint over the global default adds a 10% premium rather than just forgoing a discount. Either way, the finding is the same, teams with strict data residency requirements (financial services, healthcare, EU public sector) pay a real, quantifiable premium for that guarantee on Bedrock. For teams weighing that tradeoff against full infrastructure control, our EU AI Act compliance guide and HIPAA-compliant GPU cloud guide cover what self-hosting actually buys you on the compliance side, beyond just cost.
Bedrock vs Self-Hosted: Decision Framework
| Use AWS Bedrock when | Self-host on GPU cloud when |
|---|---|
| Volume stays within on-demand rate limits and doesn't need a throughput SLA | You need Provisioned Throughput anyway, fixed cluster cost is a fair comparison at that point |
| You're serving Claude, where Bedrock and the direct API cost the same | You're serving an open-weight model where self-hosting is actually possible |
| You want AWS-native integration (IAM, Bedrock Agents, Knowledge Bases) without managing infrastructure | You've fine-tuned a model, since Bedrock forces custom models onto fixed-rate Provisioned Throughput regardless of volume |
| Global cross-region routing meets your compliance requirements | Data residency requires infrastructure you fully control, not just a region-locked endpoint |
| Engineering bandwidth for inference ops is limited | Sustained volume clears a cluster's throughput ceiling, making a second cluster and dedicated ops worthwhile |
The honest version of this decision: for most teams running Claude or a commodity open-weight model at moderate volume, Bedrock's on-demand pricing is not the expensive option it gets reputation for being. The cost that catches teams off guard later is Provisioned Throughput's fixed hourly rate once volume or a custom model forces the issue, and the fine-tuning and routing restrictions that come baked into buying compute through AWS's layer instead of renting the GPU directly. If you're already at the point where a dedicated cluster makes sense, Spheron's H200 and B200 instances give you the same class of hardware Bedrock runs behind the scenes, with a transparent hourly rate instead of an opaque Model Unit. Spheron's own documentation covers provisioning and SSH access if you're standing up the self-hosted side of this comparison for the first time.
If your Bedrock bill is creeping toward Provisioned Throughput territory, or you've hit the wall where custom models force you onto a fixed hourly rate anyway, it's worth pricing the same GPU class directly.
Frequently Asked Questions
No, not in standard commercial regions. Claude Sonnet 5 on Bedrock is $2/$10 per million input/output tokens through August 31, 2026, then $3/$15 after, the exact same rate and the exact same promotional window as Anthropic's own API. The one place Bedrock does cost more for Claude is region-locked routing: for Claude Sonnet 4.5, Haiku 4.5, Opus 4.5, and later models, choosing a regional or multi-region endpoint over Bedrock's global default carries a 10% premium, per Anthropic's own pricing documentation.
Only Claude 3 Haiku, and only in the US West (Oregon) region. None of the current-generation models, Claude Sonnet 5, Opus 4.8, or Haiku 4.5, support fine-tuning on Bedrock. Bedrock's broader supervised fine-tuning menu covers Amazon Nova (Micro, Lite, Nova 2 Lite, Pro), Meta Llama, Cohere Command Light, and Amazon Titan instead.
Provisioned Throughput is a fixed hourly reservation of model capacity, billed per Model Unit regardless of how many tokens you actually send. You need it in two cases: your volume has outgrown the default on-demand rate limits on your account, or you're serving a model you fine-tuned inside Bedrock, since custom models cannot run on the on-demand tier at all. Published rates run from about $4.11/hr (Cohere Command Light, 6-month commitment) to $49.50/hr (Cohere Command, no commitment) per Model Unit, and AWS does not publish the exact tokens-per-minute a Model Unit delivers on the public pricing page.
For most teams, on-demand Bedrock pricing is cheaper per token than renting your own GPU cluster, because you're not paying for idle capacity. Mistral Large 3 on Bedrock blends to about $0.70 per million tokens at an 80/20 input/output split, versus $1.57-$4.04 per million tokens self-hosting the same model on a Spheron H200 cluster. Self-hosting only wins once your sustained volume is high enough that a fixed GPU-hour cost beats per-token billing indefinitely, which for most model and cluster combinations lands in the hundreds of millions of tokens per day, well above what on-demand Bedrock rate limits allow anyway.
