Semantic search and RAG
Search by meaning, or feed an LLM your documents.
My stack for this
- 01pgvector
When a user is waiting and results depend on your data and permissions.
- 02Amazon S3 Vectors
When the collection is huge, cold or per client, and 100 ms is fine.
Don't
- Amazon OpenSearch
A cluster to size, patch and pay for around the clock, to do what Postgres full-text search plus pgvector already does next to your data. Only worth it for very large text corpora.
Instead: pgvector
The picks, in brief
What each one is, my verdict, and what it costs. Every name opens the full entry: when to use it and when not, the gotchas with their fixes, provisioning and alternatives.
Embeddings next to the data they describe, for when a user is waiting for the answer.
Pricing: Mostly the storage on a Postgres you already pay for: about $5 a month for 1M vectors on an existing Neon database.
Vectors at S3 prices, for huge, cold or per-client collections where 100 ms is fine.
Pricing: Sydney storage $0.066/GB-month; about $2.50 a month for 1M vectors, $15–154 for 10M, $76–473 for 100M (vs $2,000–12,000 to hold 100M in Postgres). No servers to size.
Where they sit
The layers of the stack this job touches, with every tool named on this page.
Want this stack in your AWS account?
Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.