RAG 向量存储成本是个老问题了。OpenSearch 3 节点集群每月 $500+,其实 90% 的时间没什么查询量------但集群不能停。
Amazon S3 Vectors 解决的就是这个问题:向量存在 S3 上,按用量付费,没查询时几乎不花钱。
核心概念
- Vector Bucket:专门存向量的 S3 桶
- Vector Index:定义维度和距离函数(cosine/euclidean/dotProduct)
- 支持 metadata 过滤
- 维度上限 4096
快速上手
python
import boto3
s3v = boto3.client('s3vectors', region_name='us-east-1')
# 创建
s3v.create_vector_bucket(vectorBucketName='my-rag')
s3v.create_vector_index(
vectorBucketName='my-rag',
indexName='docs', dimension=1536, distanceMetric='cosine'
)
# 写入
s3v.put_vectors(
vectorBucketName='my-rag', indexName='docs',
vectors=[{'key': 'doc-1', 'data': {'float32': emb}, 'metadata': {'text': chunk}}]
)
# 查询
results = s3v.query_vectors(
vectorBucketName='my-rag', indexName='docs',
queryVector={'float32': q_emb}, topK=5
)
成本对比
| 方案 | 100万向量/每天 1万查询 |
|---|---|
| OpenSearch 3节点 | ~$500+/月 |
| S3 Vectors | ~$20-50/月 |
低频查询场景下节省 80%+ 成本。
适用场景
- RAG 知识库(写少读多)✔
- 图片/文档相似度搜索 ✔
- 对延迟要求 <10ms 的场景 ✘(用 OpenSearch)
- 频繁更新向量数据 ✘(用 OpenSearch)
对于大多数 RAG 场景,S3 Vectors 够用且便宜很多。
🔗 Amazon S3 Vectors:aws.amazon.com/cn/s3/featu...