bedrock rag cost · the worked example · 2026

How much does a Bedrock RAG system actually cost?

A complete, neutral cost breakdown for retrieval-augmented generation on Amazon Bedrock in 2026: the five line items that make up a RAG bill, the one-time cost to embed your corpus, the always-on vector store (the part that surprises everyone: OpenSearch Serverless has a minimum), per-query retrieval and generation tokens, the cost to re-embed when data changes, and a master table that prices real systems across corpus sizes and query volumes. Plus managed knowledge base pricing vs DIY cost, and who can file AWS funding for the build.

cost line items
5
biggest surprise
vector-store floor
dominant cost
generation tokens
TL;DR
  • A Bedrock RAG bill is five line items: (1) a one-time cost to embed your corpus, (2) the always-on vector store, (3) per-query question embeddings (negligible), (4) per-query re-ranking, and (5) per-query generation — which is almost always the largest. Embeddings are cheap; the vector store is a fixed monthly baseline you pay even at zero traffic; generation scales with tokens × query volume.
  • The number that surprises everyone is the vector store. OpenSearch Serverless bills by OpenSearch Compute Units (OCUs) with a minimum floor — representatively on the order of a few hundred dollars a month even for a tiny corpus that is idle. That floor often dwarfs the embedding and inference cost of a small RAG system, and it is the single biggest reason a "small" RAG proof-of-concept costs more than people expect.
  • Rough shape: a small internal RAG app (a few thousand documents, low query volume) is dominated by the vector-store floor; a mid-size production system is dominated by generation tokens. A Bedrock Managed Knowledge Base changes the shape: on 10 October 2026 the pricing page listed $5.00 per GB of raw data per month for storage and $1.00 per 1,000 standard retrievals, with managed parsing, embeddings and reranking included. If a partner builds the RAG system, the partner can file POC funding to test it: often $50K to $150K for startups. Depends on the workload; AWS approves.
the anatomy of the bill

IThe five line items in a Bedrock RAG bill

Almost every team budgets a RAG system by pricing the generation model and stops there. That misses more than half the bill. A RAG system has five distinct cost lines, each priced on a different basis, and two of them — the vector store and re-embedding — are the ones that surprise people. Get all five on the table before you build.

It helps to separate the five lines by when you pay them, because the timing is what makes the bill hard to reason about. Two are tied to your data (you pay when you index or re-index, regardless of traffic), one is a continuous baseline (you pay every hour the system exists, even at zero queries), and two are per-query (they scale with how much the system is used). A RAG bill that looks wrong is almost always a confusion between these three timing buckets.

Line 1 — embeddings (indexing). Before anyone asks a question, every chunk of your corpus is turned into a vector by an embedding model (Amazon Titan Text Embeddings v2 or Cohere Embed on Bedrock). You pay per input token embedded, once, when you first index the corpus. Embedding is among the cheapest things on Bedrock — representatively cents-to-low-dollars per million tokens — so even a large corpus is usually a one-time charge in single-to-low-double-digit dollars. This line is almost never the problem; people just forget it exists.

Line 2 — the vector store (continuous baseline). The vectors have to live somewhere that can answer nearest-neighbour queries, and that store runs 24/7 whether or not anyone uses it. This is the line that breaks budgets, because the common default on AWS — Amazon OpenSearch Serverless — has a minimum capacity floor (see §III). It is a fixed monthly cost decoupled from both corpus size at small scale and from traffic. For a small system it is frequently the largest line on the entire bill.

Line 3 — query embeddings (per query). Every incoming question is embedded with the same model before retrieval. This is one short embedding call per query — genuinely negligible (fractions of a cent), even at high volume. Mentioned for completeness; it never moves the total.

Line 4 — re-ranking (per query). If you re-rank (and you usually should — it is the highest-leverage retrieval-quality step), each query sends its top-K candidate chunks through a cross-encoder re-ranker (Amazon Rerank or Cohere Rerank on Bedrock), billed per query and per the volume of text re-ranked. Modest per query, but it scales with query volume and with how wide a net you re-rank.

Line 5 — generation (per query, usually the largest at scale). The final step sends the system prompt plus the re-ranked chunks plus the question to a generation model (Claude, Amazon Nova, Llama, Mistral on Bedrock) and pays for input and output tokens. In RAG, the input is inflated by the retrieved context — often several thousand tokens of chunks per question — so generation is typically the dominant cost once query volume is non-trivial. It is also the line with the most levers (model choice, chunk count, prompt caching, max-output).

the three timing buckets

Data-tied (Lines 1, re-embedding): paid when you index or re-index, regardless of traffic. Continuous baseline (Line 2, vector store): paid every hour the system exists, even at zero queries — this is the one that surprises people. Per-query (Lines 3, 4, 5): scale with usage; generation dominates. Confusing these three is why RAG bills feel unpredictable.

line 1 + re-embedding

IIThe one-time embedding cost, and re-embedding on updates

The first real number to compute is what it costs to embed your corpus once. It is almost always small, but it is the cleanest place to start because the math is exact: corpus size in tokens × the embedding price per token. The subtler cost is re-embedding, which turns a one-time charge into a recurring one whenever your data changes.

Start by sizing the corpus in tokens, not documents. A rough rule: 1,000 tokens ≈ 750 words, and a typical text-heavy page is 500–800 words, so call it ~1,000 tokens per page as a planning figure. A 10,000-document corpus averaging 5 pages each is therefore on the order of 50 million tokens. Chunking adds a little overhead (chunk boundaries and any repeated titles in metadata), but for budgeting, total corpus tokens is the right input.

Now multiply by the embedding price. Representatively in 2026, Amazon Titan Text Embeddings v2 lands around $0.00002 per 1K tokens (i.e. ~$0.02 per million); Cohere Embed is in a similar low band. So embedding that 50M-token corpus costs roughly 50 × $0.02 ≈ $1 — a rounding error. Even a very large corpus of 1 billion tokens is on the order of $20 as a one-time charge. This is why embedding is never the line to optimise for cost; it is cheap by design because AWS wants your data indexed and resident.

Embedding dimensionality is a lever, but it is a storage and latency lever, not an embedding-cost one. Titan v2 lets you choose output dimensions (e.g. 256 / 512 / 1024); smaller vectors cost the same to generate but take less room in the vector store and search faster. So dimensionality affects Line 2 (the vector store) and retrieval latency — not the one-time embedding bill in any meaningful way.

Re-embedding: the recurring cost hiding inside the one-time one

A corpus is never static. Documents are added, edited, and removed, and every changed chunk must be re-embedded to stay searchable. Incremental re-embedding — only re-embedding what changed — keeps this trivial: if 5% of a 50M-token corpus changes each month, that is 2.5M tokens, or about 5 cents. With incremental sync (Bedrock Knowledge Bases does this automatically; a DIY pipeline triggers it on an S3 change event), re-embedding is a non-event.

The expensive version is a full re-embed, and there is exactly one situation that forces it: changing the embedding model or its version. Because queries and documents must be embedded by the same model, switching from Titan v2 to Cohere (or to a new Titan version) means re-embedding the entire corpus from scratch. For a 1B-token corpus that is a ~$20 one-time hit — still cheap in absolute terms, but it also means rebuilding the whole index and re-validating retrieval quality, which is the real cost. Treat the embedding-model choice as semi-permanent for this reason, and benchmark before you commit.

embedding cost, in one line

One-time embedding ≈ (corpus tokens ÷ 1,000) × ~$0.00002. A 50M-token corpus ≈ $1; a 1B-token corpus ≈ $20. Incremental re-embedding on updates is a few cents. A full re-embed (only forced by changing the embedding model) repeats the one-time cost and rebuilds the index. Representative 2026 figures — confirm on the AWS Bedrock pricing page.

line 2: the surprise

IIIThe vector store: the always-on cost that surprises everyone

This is the section that changes how teams budget RAG. Unlike embeddings and inference, the vector store is a continuous cost you pay every hour the system exists — and the most common option on AWS, OpenSearch Serverless, has a minimum floor that makes a tiny, idle RAG system cost far more than its token usage suggests. Understanding the cost shape of each store is the difference between a $30/month surprise and a $700/month one.

There are four mainstream vector stores on AWS, and they have fundamentally different cost shapes. Two bill on reserved/baseline capacity (you pay for headroom whether you use it or not), and two bill closer to actual usage. The store you pick is the single biggest swing on a small RAG system's monthly bill — bigger than the model choice — because at low traffic the store baseline dominates everything else.

OpenSearch Serverless: the default, and the one with the floor

Amazon OpenSearch Serverless is the default vector store behind Bedrock Knowledge Bases, and the one most teams land on. It bills by OpenSearch Compute Units (OCUs) — separate units for indexing and for search — plus storage. The catch is the minimum: a collection requires a baseline of OCUs to exist, and that baseline is representatively on the order of a few hundred dollars per month even for a small corpus serving little traffic. (As of 2026, AWS lowered the entry point for dev/test collections, but a production-grade, redundant collection still carries a meaningful floor — check the current OpenSearch Serverless pricing page for the exact OCU minimum and hourly rate.)

The practical consequence: for a small internal knowledge base — a few thousand documents, a few hundred queries a day — the OpenSearch Serverless baseline is frequently the largest single line on the bill, dwarfing the dollar or two of embeddings and the handful of dollars of monthly inference. This is the number one "why is my RAG POC so expensive?" answer. It does not mean OpenSearch is wrong — it scales beautifully and gives you native hybrid search — but it means a tiny RAG system is paying for capacity it is not using.

Aurora PostgreSQL (pgvector): pay for the database you may already run

Aurora PostgreSQL with the pgvector extension stores vectors in a relational database you may already operate. Cost is the Aurora instance or, with Aurora Serverless v2, Aurora Capacity Units (ACUs) that scale with load (down to a low minimum), plus storage and I/O. If you already run Aurora for application data, the marginal cost of adding vectors can be near zero — no new system, no separate baseline. Even standalone, a small Aurora Serverless v2 configuration can sit below the OpenSearch Serverless floor for small corpora, which is why pgvector is the usual recommendation when cost-at-small-scale matters and you do not need OpenSearch's native hybrid search.

Pinecone: usage-based, third-party, via Marketplace

Pinecone is a vector-native managed database available through the AWS Marketplace and selectable in Bedrock Knowledge Bases. Its serverless tier bills closer to actual usage (storage + reads + writes) with a low or no idle floor, which can make a small index genuinely cheap, while large or high-QPS workloads are priced on consumption. It is a third-party service billed separately (Marketplace billing can route through your AWS invoice and, usefully, can be covered by AWS credits in many cases). The trade is that data lives in a non-AWS-native service.

Amazon MemoryDB / Redis: fast, but RAM is the cost

Redis-based vector search (Amazon MemoryDB) is in-memory, so it delivers single-digit-millisecond retrieval — ideal for real-time chat and agent loops. The cost shape is per node, priced by RAM, and because your entire index must fit in memory, cost scales directly with corpus size and is the most expensive option for large archival corpora. Reach for it when latency is the binding constraint, not when cost is.

vector-store cost shapes for rag · representative as of 2026: check the AWS pricing page for current rates
Vector storeBilled onIdle floorSmall corpus (~thousands of docs)Large corpus / high QPSWhen it is the cheap choice
OpenSearch ServerlessOCUs (index + search) + storageMeaningful (a few hundred $/mo class)Floor dominates — often the biggest lineScales well; cost grows with OCUsMid/large corpora; want native hybrid search
Aurora pgvectorInstance or ACU + storage + I/OLow (Serverless v2 scales down)Often cheapest; ~zero marginal if Aurora already runsGood into millions of vectors; specialist wins beyondYou already run Postgres; cost-at-small-scale matters
Pinecone (Marketplace)Usage: storage + reads + writesLow / none (serverless tier)Can be very cheap when idleConsumption-priced; predictable at scaleSmall idle indexes; want zero infra to operate
MemoryDB / RedisPer node, priced by RAMHigh (must keep nodes hot)Overkill unless latency-criticalMost expensive — whole index in RAMLatency is the binding constraint, not cost
For a SMALL RAG system the vector store is usually the largest line on the bill, and the choice between OpenSearch Serverless and pgvector can swing the monthly cost by hundreds of dollars. For a LARGE system, generation tokens take over as the dominant cost and the store becomes a smaller fraction. Pinecone Marketplace billing can often be covered by AWS credits.
lines 3–5

IVPer-query cost: retrieval, re-ranking, and generation

The per-query lines are what turn a fixed monthly baseline into a bill that grows with usage. Three things happen on every question — a query embedding, an optional re-rank, and a generation call — and the third one dominates. The key insight for RAG specifically: retrieved context inflates the input token count, so generation in RAG costs more per query than a bare chatbot.

Walk a single query through the pipeline and price each step. Query embedding: one short embedding call (the question, ~50–200 tokens) at ~$0.00002/1K — a small fraction of a cent. Across 100,000 queries a month that is still pennies. Ignore it in any budget.

Re-ranking: the retriever returns a wide net (say top-30 to top-50 chunks), and the re-ranker scores each against the question. Re-rank pricing is representatively per query (sometimes per the volume of text scored), and lands in the small-fraction-of-a-cent to low-cents range per query depending on how wide a net you re-rank. At 100,000 queries/month this is typically a few dollars to low tens of dollars — real but rarely dominant. The lever is obvious: re-rank top-30, not top-300, and skip re-ranking on trivial queries.

Generation — the line that matters. This is where RAG diverges from a plain chatbot. The input to the generation model is not just the question; it is the system prompt + the re-ranked chunks + the question. Those chunks are commonly 2,000–4,000 tokens of retrieved context per query — far more than the question itself. So a RAG query's input is dominated by context, and since you pay per input token, the amount of context you pass is a direct cost lever, not just a quality one. Output is whatever the model writes (often 300–800 tokens for a grounded answer).

Make it concrete with a representative mid-tier setup — Claude Sonnet-class generation, ~3,500 input tokens (≈3,000 of context + 500 question) and ~600 output tokens per query. At representative Sonnet rates ($3/1M input, $15/1M output): input ≈ $0.0105, output ≈ $0.009 → roughly $0.02 per query. At 20,000 queries/month that is ~$400; at 100,000 it is ~$2,000 — generation alone. Swap to a cheaper model for the easy questions (Nova Lite, Claude Haiku) and the per-query cost drops by 5–20×; that is the single biggest per-query lever.

why RAG generation costs more than a chatbot

A bare chatbot pays for a short prompt; a RAG query pays for the retrieved context too — commonly 2,000–4,000 input tokens of chunks per question on top of the prompt. Because you pay per input token, how much context you pass is a cost decision. Fewer, tighter, re-ranked chunks and prompt caching on the static system prompt are the two levers that cut the biggest line.

the worked numbers

VRAG cost across corpus sizes and query volumes

This is the table most people come for: representative all-in monthly cost for RAG systems of different sizes, broken into the lines that move. It shows the two regimes clearly — small systems are dominated by the vector-store baseline, large systems by generation tokens — and where the crossover happens. Figures are illustrative 2026 estimates to show shape and order of magnitude, not quotes.

Read the table as four representative systems, smallest to largest. The embedding column is the one-time corpus embedding (amortised, it is a rounding error monthly). The vector store column assumes OpenSearch Serverless near its floor for the small systems and growing capacity for the large ones — choosing pgvector instead would cut the small-system rows substantially (shown in the note). The generation column assumes a sensible model mix (cheap model for most queries, a frontier model for the hard minority) at ~$0.01–$0.02 blended per query. The takeaway is the shape: the bill barely moves with corpus size but moves a lot with query volume and model choice.

representative all-in monthly bedrock rag cost by corpus size × query volume · 2026 illustration: check the AWS pricing page
SystemCorpusQueries / moEmbedding (one-time)Vector store / moRe-rank / moGeneration / moApprox. total / mo
Small internal KB~5K docs (~25M tok)~3,000~$0.50 once~$350 (OSS floor)~$1~$30 (Haiku/Nova)~$380 / mo
Team support assistant~50K docs (~250M tok)~20,000~$5 once~$400 (OSS)~$8~$400 (Sonnet mix)~$810 / mo
Mid-size production~500K docs (~2.5B tok)~100,000~$50 once~$700 (OSS, more OCUs)~$40~$2,000 (mixed)~$2,740 / mo
Large multi-tenant~5M docs (~25B tok)~500,000~$500 once~$2,000 (OSS at scale)~$200~$9,000 (mixed)~$11,200 / mo
Illustrative 2026 figures, OpenSearch Serverless assumed for the vector store. Two big swings: (1) on the small rows, switching to Aurora pgvector can cut the vector-store line from ~$350 to well under $100 — often halving the small-system total; (2) on the large rows, generation dominates, so model routing (cheap model for the easy 80%) and prompt caching move the total far more than the store does. Re-embedding on updates (incremental) is pennies and omitted; a full re-embed repeats the one-time embedding cost.
who orchestrates the stages

VIManaged Knowledge Bases vs DIY: the cost difference

There are now two kinds of knowledge base, and they bill differently. A customer-managed knowledge base passes through the underlying resources: you pay for the same embedding tokens, the same vector store and the same generation tokens you would pay in a pipeline you build yourself. A Bedrock Managed Knowledge Base has its own prices instead: $5.00 per GB of raw data per month for storage and $1.00 per 1,000 standard retrievals (pricing page, 10 October 2026), with parsing, embeddings and reranking included and no vector store to run. The rest of this section compares customer-managed with DIY.

A customer-managed knowledge base is largely a pass-through on the underlying resources. When you use one, you still pay Bedrock for embedding tokens, you still provision and pay for the vector store (OpenSearch Serverless, Aurora pgvector, S3 Vectors, Pinecone, Redis or another supported store), and you still pay generation tokens on every RetrieveAndGenerate call. The managed convenience is not priced as a big per-query premium; it is priced as you do not get to hand-tune every stage. So on pure infrastructure dollars, managed and DIY are close for the same architecture.

Where they diverge is on the two things that are not on the AWS invoice. First, engineering cost: managed ships in hours with almost no pipeline to maintain, while DIY is days-to-weeks of build plus ongoing maintenance of the parser, chunker, retriever, and re-ranker. For most teams that engineering time is the larger real cost, and it favours managed decisively. Second, optimisation headroom: DIY lets you squeeze the AWS bill in ways managed cannot — custom chunking to cut context tokens, your own hybrid-search tuning, sharing one vector store across many indexes to amortise the baseline, aggressive caching, and routing each query to the cheapest adequate model. At very high volume, that headroom can pay for the extra engineering.

The practical rule mirrors the build decision: start managed (the infrastructure cost is essentially the same and you ship far faster), and move specific stages to DIY only when volume is high enough that the optimisation headroom — not the managed markup, which is small — justifies the engineering. The cross-over is about scale and the value of fine-grained cost control, not about Knowledge Bases being expensive.

the managed-vs-DIY cost myth

A customer-managed knowledge base does not add a large markup: you pay for the same embeddings, vector store and generation tokens either way. (A Bedrock Managed Knowledge Base is priced on storage and retrievals instead.) The true difference is engineering time (managed wins big: hours vs weeks) versus optimisation headroom (DIY wins: you can hand-tune every stage to cut the AWS bill at high volume). Choose on scale and control, not on a per-query premium.

the gotchas

VIIThe cost surprises: what blows up a RAG budget

Most RAG budget overruns trace to a short list of avoidable surprises. None is exotic; each is a place where the cost is decoupled from what you think you are paying for. Knowing them in advance is worth more than any single price figure.

  • The OpenSearch Serverless minimum: The number one surprise. A production OSS collection carries a baseline of OCUs you pay 24/7 — representatively a few hundred dollars a month — independent of corpus size at small scale and of traffic. A "small" RAG POC can cost more in idle vector-store capacity than in everything else combined. Fix: use Aurora pgvector for small/early systems, share one collection across indexes, or use a usage-priced store (Pinecone serverless) until volume justifies OSS.
  • Context bloat in generation: Every query pays for the retrieved chunks as input tokens. Passing 8–10 fat chunks "to be safe" can triple the input cost per query versus 3–5 tight, re-ranked ones — across 100K queries that is real money. Fix: re-rank down to the few best chunks, use hierarchical chunking, and cap retrieved context.
  • Frontier model for every query: Using a top-tier model for all traffic when most questions are easy is the most expensive default. The easy 80% of queries answer fine on a cheap model. Fix: a tiered router — cheap model first, frontier model only for the hard minority — routinely cuts generation cost 5–10×.
  • Not using prompt caching on the system prompt: RAG sends the same long system prompt (and sometimes shared context) on every call. Without prompt caching you re-pay full input price for it every single query. Fix: enable Bedrock prompt caching for the static prefix — on high-volume systems it cuts a large slice of input cost.
  • Full re-embeds you did not budget for: Incremental re-embedding is pennies, but changing the embedding model forces a full corpus re-embed and an index rebuild. The token cost is small; the surprise is the operational work and the re-validation. Fix: treat the embedding model as semi-permanent and benchmark before committing.
  • Forgetting the supporting services: S3 storage, data-transfer, Lambda/Glue for a DIY ingestion pipeline, CloudWatch logging, and Textract for PDF parsing all add cost around the core five lines. Individually small, collectively a tail. Fix: include them in the budget from the start.
  • Over-provisioned vector store at launch: Sizing the vector store for "peak imagination" rather than actual corpus size means paying for capacity you will not use for months. Fix: right-size to current corpus and traffic, and scale the store as the corpus grows — both OSS and Aurora Serverless scale up later.
paying for the build

VIIIWho can file AWS funding for a Bedrock build

There are two kinds of AWS money for a Bedrock build. A partner files one. You apply for the other yourself.

Partner-filed funding. An AWS consulting partner can file POC (proof of concept) funding to test a Bedrock workload, whether or not you run on AWS today. If you already run on AWS and are adding new AI work, the partner can file incremental workload (IW) funding instead. For startups this is often $50K to $150K. Depends on the workload; AWS approves. The work has to be real, and the partner has to be the one doing it.

AWS Activate, which you apply for yourself. Activate Founders gives $1,000 to start, up to $5,000, with no investor needed. Activate Portfolio gives up to $200,000 if your VC, accelerator or angel group is an Activate Provider and gives you its Org ID. A consulting partner cannot apply for Activate on your behalf. AWS made Activate credits usable for third-party models on Bedrock in April 2024.

For most startups without a VC, the partner route is the larger of the two. CloudRoute matches you with one vetted AWS partner for free. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

the regime shift

Small RAG vs large RAG: where the money actually goes

The most useful thing to internalise about RAG cost is that the dominant line changes completely as you scale. A small system and a large system have the same five line items but a totally different cost profile — and optimising the wrong one wastes effort. This is the same five lines, shown as a share of the bill in each regime. Figures are representative 2026 illustrations.

Cost lineSmall RAG (idle-ish POC)Mid-size productionLarge / high-volumePrimary lever
Embeddings (one-time)Rounding errorRounding errorSmall (~hundreds once)Incremental sync; avoid full re-embeds
Vector store (baseline)Dominant — the whole billSignificantSmaller share of a big billpgvector at small scale; right-size OCUs
Query embeddingsNegligibleNegligibleNegligibleNone needed
Re-rankingTinySmallModestRe-rank a narrow net; skip trivial queries
GenerationTinyLargest lineDominant — the whole billModel routing; fewer chunks; prompt caching
The crossover: at small scale, fix the vector store (it IS the bill — pgvector or a usage-priced store). At large scale, fix generation (model routing + prompt caching + tight context move the number far more than the store). Optimising generation on a tiny idle POC, or the store on a high-volume system, is effort spent on the wrong line.
before you provision a single OCU
A vetted AWS partner can build the workload and file POC or IW funding when it qualifies.
Get matched free with a vetted AWS partner who can file it
how a match works

How a match works (example)

  1. You tell us about the work

    You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.

  2. We pick one partner

    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.

  3. The partner checks POC funding

    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.

  4. The partner files, AWS decides

    If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.

  5. You pay nothing

    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.

faq

Common questions

How much does a Bedrock RAG system cost?
It depends mostly on query volume and which generation model you use, not on corpus size. Representative 2026 shape: a small internal RAG (a few thousand docs, low traffic) is dominated by the vector-store baseline and lands in the low-to-mid hundreds of dollars a month; a mid-size production system (hundreds of thousands of docs, tens of thousands of queries) runs into the high hundreds to low thousands, dominated by generation tokens; a large high-volume system reaches five figures monthly. The five line items are embeddings (one-time, cheap), the vector store (always-on baseline), query embeddings (negligible), re-ranking (modest), and generation (usually the largest). Always confirm current rates on the AWS pricing page.
Why is my small RAG proof-of-concept so expensive?
Almost always the vector store. The common default, Amazon OpenSearch Serverless, bills by OpenSearch Compute Units (OCUs) with a minimum floor — representatively a few hundred dollars a month — that you pay 24/7 regardless of how small your corpus is or how little traffic you serve. On a tiny RAG POC that idle baseline frequently costs more than the embeddings and inference combined. The fix is to use Aurora PostgreSQL with pgvector for small/early systems (often well under $100/month, or near-zero marginal if you already run Aurora), share one OpenSearch collection across multiple indexes, or use a usage-priced store like Pinecone serverless until volume justifies OpenSearch.
How much does it cost to embed my documents for RAG?
Very little — embedding is one of the cheapest things on Bedrock. The math is exact: (corpus tokens ÷ 1,000) × the embedding price (representatively ~$0.00002 per 1K tokens for Amazon Titan Text Embeddings v2 in 2026). A 50-million-token corpus (~10,000 average documents) costs roughly $1 to embed once; a 1-billion-token corpus costs about $20. This is a one-time charge. Incremental re-embedding when documents change is a few cents. The only expensive case is a full re-embed, which is forced only by changing the embedding model or version.
What is the most expensive part of a RAG system on AWS?
It changes with scale. On a small, low-traffic system the vector-store baseline (especially OpenSearch Serverless's OCU minimum) is the dominant cost — often the whole bill. On a mid-size or large system, generation tokens take over and become the largest line, because each RAG query pays for the retrieved context (commonly 2,000–4,000 input tokens of chunks) plus the answer. The practical implication: optimise the vector store at small scale (use pgvector, right-size capacity) and optimise generation at large scale (route easy queries to a cheaper model, re-rank to fewer chunks, enable prompt caching).
How much does the vector store cost for RAG on AWS?
It depends entirely on which store. OpenSearch Serverless carries a meaningful minimum (a few hundred dollars/month class) because it bills on OCUs with a baseline floor — it scales well but stings small corpora. Aurora PostgreSQL with pgvector can be much cheaper at small scale (Aurora Serverless v2 scales down, and the marginal cost is near zero if you already run Aurora). Pinecone's serverless tier bills closer to usage with a low idle floor. Amazon MemoryDB/Redis is RAM-priced and the most expensive, justified only when retrieval latency is critical. For a small RAG system this choice is the single biggest swing on the monthly bill — often hundreds of dollars.
Does Bedrock Knowledge Bases cost more than building RAG myself?
It depends on the type. A customer-managed knowledge base is largely a pass-through: the same embedding tokens, vector store and generation tokens as a DIY pipeline, so the difference is engineering time versus optimization headroom. A Bedrock Managed Knowledge Base is priced on its own terms ($5.00 per GB of raw data per month and $1.00 per 1,000 standard retrievals on 10 October 2026, with parsing, embeddings and reranking included), which can be cheaper or dearer than running your own vector store depending on corpus size and query volume. Price both against your numbers.
How much does re-embedding cost when my data changes?
Almost nothing for normal updates. With incremental re-embedding — re-embedding only the chunks that changed — updating, say, 5% of a 50-million-token corpus costs a few cents, and Bedrock Knowledge Bases does this automatically on sync (a DIY pipeline triggers it on an S3 change event). The only expensive case is a full re-embed of the entire corpus, which is forced solely by changing the embedding model or its version (because queries and documents must use the same model). Even then the token cost is small (~$20 for a 1B-token corpus); the real cost is rebuilding the index and re-validating retrieval quality, which is why you should treat the embedding model as semi-permanent.
Can AWS funding pay for a RAG build on Bedrock?
If a partner builds the workload, the partner can file POC funding to test it, or incremental workload (IW) funding if you already run on AWS. For startups this is often $50K to $150K. Depends on the workload; AWS approves. Separately, you can apply for AWS Activate yourself: Founders gives $1,000 to start, up to $5,000, and Portfolio gives up to $200,000 with an Activate Provider Org ID. A consulting partner cannot file Activate. CloudRoute matches you with a partner for free.

Get a partner who can build it and file the funding

Tell us what you are building on Bedrock. We match you with one vetted AWS partner. If the work qualifies, the partner files POC funding for a test, or incremental workload (IW) funding for new work on AWS: often $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.