Vector storeExecution time in msOpensearch1695Postgresql1807Neptune2236S3 vector store2284 Aurora Capacity Unit (ACU) $0.12 per ACU per hour ベクトルストアの種類 回収時間 月当たりの価格S3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 AWS は 7 月 15 日より、Bedrock 知識ベースの S3 ベクトルストアのサポートを追加しました。 AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune AWS 管理: ほか: それぞれ何ですか? AWS 管理: オープン検索: OpenSearch は、リアルタイムのアプリケーションモニタリング、ログアナリティクス、およびウェブサイト検索などの幅広い用途に使用される分散型、コミュニティ・ドライブ、Apache 2.0 ライセンス、100%オープンソースの検索および分析スイートです。OpenSearch は、統合されたビジュアル化ツール、OpenSearch ダッシュボードを使用して、大規模なデータへの迅速なアクセスを提供し、応答するための高度にスケーラブルなシステムを提供しています。 オープン検索 オープン検索 S3 Vector ストア Amazon S3 Vectors is the first cloud object store with native support to store and query vectors, delivering purpose-built, cost-optimized vector storage for AI agents, AI inference, and semantic search of your content stored in Amazon S3. By reducing the cost of uploading, storing, and querying vectors by up to 90%, S3 Vectors makes it cost-effective to create and use large vector datasets to improve the memory and context of AI agents as well as semantic search results of your S3 data. Amazon S3 Vectors は、AI エージェント、AI 推定、および Amazon S3 に格納されているコンテンツのセマンティック 検索を目的で構築されたコスト最適化されたベクター ストレージを提供し、ベクターのアップロード、ストレージ、クエリのコストを最大 90% 削減することにより、S3 Vectors は、AI エージェントのメモリとコンテキスト、および S3 データのセマンティック 検索結果を改善する大規模なベクター データセットの作成と使用をコスト効率的にします。 AWS Aurora PostgreSQL: Amazon Aurora PostgreSQL is a cloud-based, fully managed relational database service that is compatible with PostgreSQL. It combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases, specifically PostgreSQL. Essentially, it's a PostgreSQL-compatible database offered as a service by Amazon Web Services Amazon Aurora PostgreSQL は、クラウドベースの、完全に管理されたリレーショナル データベース サービスで、PostgreSQL と互換性があり、ハイエンドの商用データベースのパフォーマンスと可用性と、オープンソースのデータベース、特に PostgreSQL のシンプルさとコスト効率を組み合わせています。 アマゾン・ネプトン: Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets Amazon Neptune は、高度に接続されたデータセットで動作するアプリケーションの構築と実行を容易にする、高速で信頼性の高い、完全に管理されたグラフ データベース サービスです。 And non-AWS managed: MongoDB Atlas: MongoDB Atlas は、MongoDB を構築する同じ人々による複数のクラウドデータベースサービスです。Atlas は、データベースの展開と管理を簡素化し、あなたが選択したクラウドプロバイダーで強力でパフォーマンスの高いグローバルなアプリケーションを構築するために必要な多様性を提供します。 Pinecone: Pinecone は、AI アプリケーション向けに設計されたクラウドベクターデータベースサービスで、特にリクエスト拡張生産を含むアプリケーションです。 Redis Enterprise Cloud: Redis Enterprise Cloud は、オープンソースの Redis に基づいて構築された、完全に管理された、リクエストに応じて、データベースとしてのサービス (DBaaS) オファーです。 サポートされているストアのそれぞれが何であるかを理解しています. I’m going to test and compare only AWS-managed stores. Python lambda 関数を作成しました。 import json import time import boto3 def lambda_handler(event, context): """Demo: Bedrock Nova Micro with Knowledge Base timing comparison""" # Configuration - easily change these for testing MODEL_ID = "amazon.nova-micro-v1:0" # Allow override for comparison KNOWLEDGE_BASE_ID = event.get('kb_id') # Initialize clients bedrock_runtime = boto3.client('bedrock-runtime') bedrock_agent_runtime = boto3.client('bedrock-agent-runtime') query = event.get( 'query', 'Can you provide a list of bank holidays employers can have?') start_time = time.time() try: # 1. Retrieve from Knowledge Base kb_start = time.time() kb_response = bedrock_agent_runtime.retrieve( knowledgeBaseId=KNOWLEDGE_BASE_ID, retrievalQuery={'text': query}, retrievalConfiguration={ 'vectorSearchConfiguration': {'numberOfResults': 3}} ) kb_time = time.time() - kb_start # 2. Build context and prompt context = "\n".join([r['content']['text'] for r in kb_response.get('retrievalResults', [])]) prompt = f"Context: {context}\n\nQuestion: {query}\n\nAnswer:" # 3. Call Bedrock model model_start = time.time() response = bedrock_runtime.converse( modelId=MODEL_ID, messages=[{"role": "user", "content": [{"text": prompt}]}], inferenceConfig={"maxTokens": 500, "temperature": 0.7} ) model_time = time.time() - model_start total_time = time.time() - start_time answer = response['output']['message']['content'][0]['text'] return { 'statusCode': 200, 'body': json.dumps({ 'kb_id': KNOWLEDGE_BASE_ID, 'query': query, 'answer': answer, 'timing_ms': { 'kb_retrieval': round(kb_time * 1000), 'model_inference': round(model_time * 1000), 'total': round(total_time * 1000) }, 'chunks_found': len(kb_response.get('retrievalResults', [])) }) } except Exception as e: return { 'statusCode': 500, 'body': json.dumps({ 'error': str(e), 'kb_id': KNOWLEDGE_BASE_ID }) } この例では、Amazon.nova-micro-v1:0 ベッドロック モデルを使用してパフォーマンスを比較します。 この lambda 関数は、以下の形式のテストイベントを期待します。 { "query": "Can you provide a list of bank holidays employers can have?", "kb_id": "AAUAL8BHQV" } query - is our query from my text example file. あなたが望むすべてのテキストファイルを使用することができます。 kb_id - knowledge base ID; we will create a bedrock knowledge base to test そして、さまざまなデータソースを使用して4つの異なる知識ベースを作成しました。 そして最後に、私たちは私たちのテストを行うために必要なすべてを持っています: Lambda 関数を実行し、知識ベース ID だけを変更して正しくテストしましょう。 OpenSearch: Neptune: PostgreSQL: S3 Vector store: そして、より良い視覚のために、実行時間に順番に: Vector storeExecution time in msOpensearch1695Postgresql1807Neptune2236S3 vector store2284 ベクターショップ MS での実行時間 ここで見ることができるように、OpenSearchはより高速なストレージソリューションですが、コストはどうですか? OCUとして支払う。 OpenSearch OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour あなたが支払うことができる最小OCUは0.5です。これは0.24ドル * 24時間 * 30日間 * 2 (インデックス、検索、およびクエリ) * 0.5 (最小OCU) = $172です。 : : PostgreSQL - pay per ACU Aurora Capacity Unit (ACU) $0.12 per ACU per hour あなたが支払うことができる最小ACUは0です。しかし、1 ACUはあなたに0.12ドルになります * 24時間 * 30日間 = $86 : Neptune Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour 最低インスタンスは1時間あたり0.48ドルです. それは毎月0.48ドルになります * 24時間 * 30日間 = $345. Wow! S3 vector store, here - you will need to pay for requests and storage. S3 ベクターストレージ / Month - monthly logical storage of vector data, key, and metadata = $0.06 per GB S3 Vectors request pricing PUT リクエスト(GB ごとに)* GET、LIST およびその他のリクエスト(1000 リクエストごとに) S3 ベクトル リクエスト $0.20 per GB $0.055 *PUT は、PUT リクエストごとに最低 128KB の料金がかかります。 S3 ベクトル クエリ価格 S3 ベクトル クエリ リクエスト(1000 リクエストあたり) $0.0025 S3 Vector data - sum of vectors per index multiplied by average vector size (vector data, key, and filterable metadata) 最初の 100,000 ベクター $0.0040 per TB 100,000 以上のベクトル $0.0020 per TB TLDR : S3 Vectors storage charge ((4 バイト * 1024 次元) ベクトルデータ/ベクトル + 1 KB フィルタ可能なメタデータ/ベクトル + 1 KB 非フィルタ可能なメタデータ/ベクトル + 0.17 KB キー/ベクトル) = 6.17 KB 平均ベクトルあたりの論理ストレージ。 6.17 KB/平均ベクター * 250,000 ベクター * 40 ベクターインデックス = 59 GB 論理ストレージ。 月間ストレージの総コスト = 59 GB * $0.06/GB per month = $3.54 Final comparison table: ベクトルストアの種類 回収時間 月当たりの価格S3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 ベクタータイプ リターンタイム 約1ヶ月分の価格 スピードがそれほど重要でない場合、私はS3ベクターストアを選択します. 明らかな勝者は、そうでなければ、OpenSearchであり、おそらくより良い選択になるでしょう。 あなたのプロジェクトで使用しているベクトルストアは何ですか?