You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2025-5-12-s3-vectors.md
+25-22Lines changed: 25 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,16 +8,16 @@ category:
8
8
tags: machine-learning, mlops
9
9
---
10
10
11
-
S3 Vectors adds **native vector storage + ANN search** to S3 via *vector buckets* and *vector indexes*. It’s cost‑oriented, elastic, and ideal for big volumes with **sub‑second** queries when throughput is moderate. It’s in **preview** and has sharp edges: hard **Top‑K=30**, only **float32** vectors. This post focuses on where it fits and the gotchas that actually matter in design.
11
+
S3 Vectors adds **native vector storage + ANN search** to S3 via _vector buckets_ and _vector indexes_. It’s cost‑oriented, elastic, and ideal for big volumes with **sub‑second** queries when throughput is moderate. It’s in **preview** and has sharp edges: hard **Top‑K=30**, only **float32** vectors. This post focuses on where it fits and the gotchas that actually matter in design.
12
12
13
13
---
14
14
15
15
## Why S3 Vectors matters
16
16
17
17
Embeddings are everywhere (RAG, recommendations, search). Most teams start with a hosted vector DB and quickly hit two things:
18
18
19
-
1)**Cost at scale**: millions to billions of vectors add up.
20
-
2)**Ops overhead**: clusters, replicas, upgrades, and capacity planning.
19
+
1.**Cost at scale**: millions to billions of vectors add up.
20
+
2.**Ops overhead**: clusters, replicas, upgrades, and capacity planning.
21
21
22
22
**S3 Vectors** flips that default: store vectors in S3 with a **purpose‑built index** that you can **query directly**. You don’t manage nodes; you pay S3‑style pricing for storage + per‑request querying. If your workload tolerates low to mid QPS but needs large capacity and durability, this is a compelling baseline.
| Nature | Object store with **native vector indexes** (preview) | Managed **serverless vector DB**|
86
-
| Pricing model | Storage + per‑request query (see AWS announcement) | Per‑request pricing (e.g., $0.4/100K req in PAYG) + storage (e.g., $0.25/GB) |
87
-
| Query limits |**Top‑K ≤ 30**, **no pagination** in `QueryVectors`| Client‑set `topK`**with pagination** via **Resumable Query** (cursor) |
88
-
| Filtering | Metadata filters; declare **non‑filterable** keys at index create |**Metadata filtering**; **namespaces** for isolation |
89
-
| Data type |**`float32` only** for vector values | Upstash accepts numeric vector payloads (not advertised as multiple dtypes; equivalently treated as float arrays). |
90
-
| Multi‑tenancy |**One bucket, many indexes** (index per tenant) recommended | Multiple **indexes** + **namespaces**; multiple DBs by project |
| Nature | Object store with **native vector indexes** (preview) | Managed **serverless vector DB**|
88
+
| Pricing model | Storage + per‑request query (see AWS announcement) | Per‑request pricing (e.g., $0.4/100K req in PAYG) + storage (e.g., $0.25/GB)|
89
+
| Query limits |**Top‑K ≤ 30**, **no pagination** in `QueryVectors`| Client‑set `topK`**with pagination** via **Resumable Query** (cursor)|
90
+
| Filtering | Metadata filters; declare **non‑filterable** keys at index create |**Metadata filtering**; **namespaces** for isolation|
91
+
| Data type |**`float32` only** for vector values| Upstash accepts numeric vector payloads (not advertised as multiple dtypes; equivalently treated as float arrays). |
92
+
| Multi‑tenancy |**One bucket, many indexes** (index per tenant) recommended | Multiple **indexes** + **namespaces**; multiple DBs by project|
- If you need **scroll/infinite‑results UIs**, Upstash’s **resumable query** is simpler. In S3 Vectors you’ll fan‑out across segments and re‑rank to bypass `Top‑K=30`. The fan-out could end in a clique with means some vectors would never be retrieved.
101
105
- If your profile is **huge corpuses + moderate QPS + lowest storage cost**, S3 Vectors is attractive. For **real‑time UX** with richer ranking/pagination, Upstash is frictionless.
102
106
- Multi‑tenant: both solve it, but S3 Vectors centralizes observability/logging per bucket; Upstash leans on namespaces and per‑index isolation.
@@ -107,5 +111,4 @@ S3 Vectors aims to **lower total cost** for large volumes with moderate QPS: you
107
111
108
112
S3 Vectors won’t replace every vector DB —but it **changes the starting point**. If your priority is **cost and simplicity** with large datasets and moderate QPS, start with S3 Vectors and scale out to OpenSearch or a dedicated vector DB only where the **latency/query profile** demands it.
109
113
110
-
*Questions you want me to benchmark next?* Throughput vs. shards, recall vs. filters, or evaluator design for reranking under `Top‑K=30`.
111
-
114
+
_Questions you want me to benchmark next?_ Throughput vs. shards, recall vs. filters, or evaluator design for reranking under `Top‑K=30`.
0 commit comments