Share
Embed
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
2025/08/11『【佐賀現地・ハイブリッド開催】佐賀の中心でAWSを叫ぶ - connpass』登壇資料
■イベント
https://jawsug-saga.connpass.com/event/362596/
■解説ブログ
https://dev.classmethod.jp/articles/amazon-s3-vectors-serverless-vector-database-jawsugsaga-jawsug/
■ Amazon S3 Vectorsについて
https://aws.amazon.com/s3/features/vectors/
quiver
August 11, 2025
Transcript
62 slides
-
⾃⼰紹介 2 • 名前 ◦ George Yoshida • ブログ ◦
https://dev.classmethod.jp/author/quiver/ • 部署 ◦ クラスメソッド福岡オフィス ソリューションアーキテクト • Japan AWS Top Engineers ◦ 2024 : Database ◦ 2025 : AI/ML Data Engineer チバ! AWS Summit シガ! 出⾝地 サガ! JAWS-UG 開催地 -
アジェンダ 3 1. Amazon S3 Vectorsとは 2. Amazon S3 Vectorsの作り⽅
3. Amazon S3 Vectorsの使い⽅ a. S3 Vectorsを直接使う b. Amazon Bedrock Knowledge Basesと連携 c. Amazon OpenSearch Serviceと連携 4. まとめ -
Amazon S3 Vectorsとは? 12 • Cost-optimized AI-ready storage with native
support for storing and querying vectors at scale, reducing total costs by up to 90% https://aws.amazon.com/s3/features/vectors/ -
Amazon S3 Vectorsとは? 13 • Amazon S3 Vectorsはサーバーレスなベクトルデータベース • 埋め込みベクトルの型や次元から、ベクトル検索はデータサ
イズが⼤きく、運⽤コストが⾼くなりがち • ⼤規模なベクトルデータに対して1秒未満の遅い検索レイテ ンシーをトレードオフに低コストで運⽤できる • Amazon Bedrock Knowledge BasesやAmazon OpenSearch Serviceのバックエンドとしても使える -
Amazon S3 Vectorsの関連リソース 15 • Vector Index ◦ ベクトルデータを効率よく類似検索するインデックス •
Vector Bucket ◦ Vector Indexの箱 • Bucket : Index = 1 : 多の関係 -
Amazon S3 Vectorsの作り⽅のまとめ 19 • S3 Vectorsが提供するのはベクトル検索のインデックス • Vector Bucketは
Vector Indexの箱であって、S3オブジェク トの箱ではない -
Amazon S3 Vectorsの理解をユースケースから深める 21 1. S3 Vectorsを直接使う ◦ S3 VectorsのAPI操作を学ぶ
2. Amazon Bedrock Knowledge Basesと連携 ◦ S3 Vectorsはベクトルデータベースであることを学ぶ 3. Amazon OpenSearch Serviceと連携 ◦ S3 Vectorsはなにを解決するのか学ぶ -
3-1. S3 Vectorsを直接使う 23 • S3 Vectorsはベクトルに特化したデータベース • データをベクトルに変換して登録‧検索操作 •
ベクトルの他にメタデータも管理できる • メタデータの活⽤ ◦ 検索時のフィルタリング ◦ 実データを参照せずにインデックス検索結果から必要な情 報を取得できるように、関連テキストデータを登録 -
Pythonからの使⽤例(抜粋):テキストのベクトル化(埋め込み) 25 bedrock = boto3.client("bedrock-runtime") response = bedrock.invoke_model( modelId=MODEL_ID, #
Amazon Titan 等 body=json.dumps( { "inputText": CHUNK, "embeddingConfig": {"outputEmbeddingLength": DIMENSION}, } ), ) response_body = json.loads(response["body"].read()) embedding = response_body["embedding"] -
Pythonからの使⽤例(抜粋):ベクトルを登録 26 s3vectors = boto3.client("s3vectors") vectors = [] vectors.append( {
"key": path, "data": {"float32": embedding}, "metadata": {"source_path": path}, } ) s3vectors.put_vectors( vectorBucketName=VECTOR_BUCKET_NAME, indexName=VECTOR_INDEX_NAME, vectors=vectors ) -
Pythonからの使⽤例(抜粋):ベクトルを検索 27 s3vectors = boto3.client("s3vectors") response = s3vectors.query_vectors( vectorBucketName=VECTOR_BUCKET_NAME, indexName=VECTOR_INDEX_NAME,
queryVector={"float32": embedding}, topK=3, returnDistance=True, returnMetadata=True, ) print(json.dumps(response["vectors"], indent=2)) -
S3 Vectorsの検索レスポンス例(抜粋) 28 [ { "key": "img/dog-whitepomeranian.jpg", "metadata": { "source_path":
"img/dog-whitepomeranian.jpg" }, "distance": 0.5091206431388855 }, … ] -
3-2. Amazon Bedrock Knowledge Basesと連携 31 • Amazon Bedrock Knowledge
BasesはAWSが提供するRAGを構築するマ ネージド‧サービス • ベクトルストアとして、OpenSearch ServerlessやAurora PostgreSQL Serverless等とともにS3 Vectorsも指定可能 • S3 Vectorsを簡単に試せるのでおすすめ -
3-2. Amazon Bedrock Knowledge Basesと連携 32 • OpenSearch等の代わりにS3 Vectorsをベクトルストアとして採⽤ •
データソースや検索キーワードのベクトル化はBedrock KBが担う • データソースとしてのS3バケットが無くなるわけではない -
OpenSearchとS3 Vectorsの特性の違い 33 機能 OpenSearch Serverless S3 Vectors 検索方法 全文・ベクトルのハイブリッド検
索に対応 ベクトル検索のみ 検索レイテンシー 小さい(10ms) 大きい(秒未満) 最低コスト ゼロスケールしないので、イン スタンス費用だけで$150/月~発 生 インスタンス費用はなく$0、ストレージ費 用のみ -
RAGの検索⼿法の違い 34 • RAG(検索システム)では全⽂検索とベクトル検索が⼀般に使われる • 全⽂検索はエラーコードの完全⼀致検索のような正確な検索に強い • ベクトル検索は類似検索‧セマンティック検索などとも⾔われ、「顧客対 応」と「ユーザーサポート」のような似た意味で異なる単語を同⼀視 •
精密な全⽂検索と柔軟なベクトル検索を組み合わせたのが「ハイブリッド 検索」。シンプルなRAG(Naive RAG)と⽐較してAdvanced RAGとも呼ば れる -
Bedrock Knowledge Bases連携のまとめ 35 • Bedrock Knowledge BasesとS3 Vectorsを連携させると、2種類のS3が登場 ◦
S3 Bucket : データソース ◦ S3 Vectors : ベクトルストア • S3 VectorsはBedrock Knowledge Basesのベクトルストアの選択肢の⼀つ • ゼロスケールしないOpenSearch Serverlessと異なり、インスタンス費⽤が発 ⽣しないため、低コストにRAGを運⽤できる • ただし、ベクトル検索には対応するが、全⽂検索には対応しないため、ハイブ リッド検索できない -
3-3. Amazon OpenSearch Serviceと連携 37 • AWSから案内されているOpenSearch連携は2種類 1. (今回紹介)OpenSearch ServiceのベクトルデータをS3
Vectorsで管理 2. S3 VectorsをOpenSearch Serverlessに移⾏ https://aws.amazon.com/blogs/big-data/optimizing-vector-search-using-amazon-s3-vectors-and-amazon-opensearch-service/ -
OpenSearchでのベクトル検索の設定 38 • ベクトル検索はベクトルが近い=似ているとみなす、類似検索(近似最近傍探索) • OpenSearchは検索⽅法をmethod(アルゴリズム)とengine(methodを実装した ライブラリ)で指定 • method例 ◦
Hierarchical Navigable Small World (HNSW):グラフ探索 ◦ Inverted File Index (IVF) : クラスタリング探索 • engine例 ◦ Lucene : 全⽂検索エンジンで有名 ◦ Faiss: Facebook AI Similarity Searchの略でOpenSearchの推奨 ◦ (*NEW) Amazon S3 Vectors https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/ -
ベクトルのengineにS3 Vectorsを指定できるようになった 39 PUT old-style-index { "settings": { "index": {"knn":
true }}, "mappings": { "properties": { "my_vector": { "type": "knn_vector", "dimension": 1024, "space_type": "l2", "method": { "engine": "faiss", "name": "hnsw" } } }}} PUT s3vector-style-index { "settings": { "index": {"knn": true }}, "mappings": { "properties": { "my_vector": { "type": "knn_vector", "dimension": 1024, "space_type": "l2", "method": { "engine": "s3vector" } } }}} 新S3 Vectors⽅式 旧FAISS⽅式 -
ベクトル管理をOpenSearchからS3 Vectorsにオフロード 40 "method": { "engine": "faiss", "name": "hnsw" }
"method": { "engine": "s3vector" } 旧FAISS⽅式 新S3 Vectors⽅式 -
従来のメソッドとの違い 41 Method S3 Vectors Faiss/HNSW ベクトルの管理 S3 Vectors OpenSearch
Service 運用コスト 安い 高い 検索レイテンシー 大きい(秒未満) 小さい(10ms) 最大ベクトル数 5000万(インデックスあたり) 1万インデックス/バケット =インデックスでスケールアウト 100億オーダー 最大次元 4,096 16,000 https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/ https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-limitations.html -
ハイブリッド検索のマッピング例 42 PUT hybrid-search-demo { "settings": {"index": {"knn": true }},
"mappings": { "properties": { "my_vector": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "text": { "type": "text" }, } } } -
ハイブリッド検索のレコード追加例 43 POST hybrid-search-demo/_doc/1 { "vector": [1.2, 2.8], "text": "Wireless
Bluetooth headphones with active noise cancellation" } } -
ハイブリッド検索例 44 GET hybrid-search-demo/_search { "query": { "hybrid": { "queries":
[ { "knn": { "vector": { "vector": [1.5, 2.0], "k": 3 }}}, { "match": { "text": "wireless bluetooth" } } ] } }, "size": 5 } -
cf.) ハイブリッド検索対応なGenUのマッピング 45 { "mappings": { "properties": { "AMAZON_BEDROCK_METADATA": {
"type": "text","index": false }, "AMAZON_BEDROCK_TEXT_CHUNK": { "type": "text", "analyzer": "custom_kuromoji_analyzer" }, "bedrock-knowledge-base-default-vector": { "type": "knn_vector", "dimension": 1024, "method": { "engine": "faiss", "space_type": "l2", "name": "hnsw", "parameters": {} } },... -
データサイズの⼤きい⾼次元ベクトルをなんとかしたい! 48 • 仮に埋め込みモデルがfp32(4バイト)の1024次元の場合 ◦ ベクトルの実データだけで4KB ◦ 100万レコードあると4GB • より⼤量のデータ、ベクトル以外のデータ、インデックスのストレージな
ども考慮すると、OpenSearchに求められるスペックが⾼くなり、運⽤コ ストも⾼騰 -
• S3 Vectorsの費⽤ ◦ Storage / Month : $0.06/GB ◦
Requests : ▪ Put : $0.20/GB ▪ GET, LIST, その他 : $0.055/1,000 リクエスト S3 Vectorsの利⽤費 50 https://aws.amazon.com/s3/pricing/ -
• OpenSearch Serviceを使わずS3 Vectorsのみで運⽤した場合 • 想定ワークロード ◦ 1000万ベクトルデータ。6.17KB/ベクトル。合計実サイズ59GB ◦ 100万/⽉の検索
◦ ストレージコスト: 59 GB * $0.06/GB = $3.54 • 運⽤コスト:$11.38/⽉ = $0.01517/時間 • OpenSearch Serviceの最⼩インスタンス(t2.micro.search)の単価 ($0.018/時間)よりも安い S3 Vectorsのコスト感:Pricing example 1から 51 https://aws.amazon.com/s3/pricing/ -
• OpenSearch ServiceとS3 Vectorsを連携費⽤ ◦ 詳細未定 WIP:S3 Vectorsのコスト感:OpenSearch Serviceと連携 52
https://aws.amazon.com/s3/pricing/ https://docs.aws.amazon.com/opensearch-service/latest/developerguide/s3-vector-opensearch-integration-engine.html -
• OpenSearchからS3、CloudWatch Logs等のデータを検索する • DirectQuery OCUを消費 ◦ OpenSearch Compute Unit
(OCU) - Direct Query ▪ $0.24/H @ N. Virginia cf.) OpenSearch Service direct queryの料⾦体系 53 https://docs.aws.amazon.com/opensearch-service/latest/developerguide/direct-query.html https://aws.amazon.com/opensearch-service/pricing/ -
OpenSearch Optimizedインスタンスファミリーとは? 56 • インデクシング処理能⼒が⾼い • 価格あたりのパフォーマンスが良い • Amazon S3をバックアップストレージとして活⽤
• OR1/OR2/OM2などが該当 ‧公式ドキュメント https://docs.aws.amazon.com/opensearch-service/latest/developerguide/or1.html ‧2024/12 re:Invent https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT329_Whats-new-in-search-observability -and-vectors-in-OpenSearch-Service-.pdf ‧2024/12 Black Belt https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_Amazon-OpenSearch-Service-Best-Prac tice-Logging_1210_v1.pdf -
参考:ServerlessにS3 Vectorsエンジンを指定した時のエラー 57 { "error": { "root_cause": [ { "type":
"mapper_parsing_exception", "reason": "OpenSearch exception [type=mapper_parsing_exception, reason=Invalid engine: s3vector]- server : [envoy]" } ], "type": "mapper_parsing_exception", "reason": "OpenSearch exception [type=mapper_parsing_exception, reason=Invalid engine: s3vector]- server : [envoy]" }, "status": 400 } -
Amazon S3 Vectorsとは? 59 • Amazon S3 Vectorsはサーバーレスなベクトルデータベース • 埋め込みベクトルの型や次元から、ベクトル検索はデータサ
イズが⼤きく、運⽤コストが⾼くなりがち • ⼤規模なベクトルデータに対して1秒未満の遅い検索レイテ ンシーをトレードオフに低コストで運⽤できる • Amazon Bedrock Knowledge Bases(全⽂検索できないこと に注意)やAmazon OpenSearch Service(個⼈的⼤本命)のバッ クエンドとしても使える -
2025年9⽉4~5⽇にクラスメソッド福岡オフィスでイベント開催 61 • 9/4(⽊)18:30~21:30:⽣成AIの参加型グループワークショップ ◦ https://classmethod.connpass.com/event/364649/ • 9/5(⾦)14:00~19:30:DevelopersIO 2025 FUKUOKA
◦ https://classmethod.connpass.com/event/362962/ • 場所 ◦ 福岡県福岡市中央区 舞鶴3丁⽬9−39 福岡舞鶴スクエア 4階