almacenamiento de vectoresTempo de ejecución en msOpensearch1695Postgresql1807Neptune2236S3 almacenamiento de vectores2284 Unidad de Capacidad de Aurora (ACU)$ 0,12 por ACU por hora Tipo de tienda de vectores Tiempo de recuperaciónPrecio aproximado por mesS3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 A partir del 15 de julio, AWS ha añadido soporte para las tiendas vectoriales S3 para las bases de conocimientos de Bedrock. 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 ha gestionado: Otros de: ¿Qué es cada uno? Gestión de AWS: En el OpenSearch: es un conjunto de búsqueda y análisis distribuido, gestionado por la comunidad, con licencia Apache 2.0, 100% de código abierto, utilizado para un amplio conjunto de casos de uso como el seguimiento de aplicaciones en tiempo real, el análisis de registros y la búsqueda de sitios web. OpenSearch proporciona un sistema altamente escalable para proporcionar acceso rápido y respuesta a grandes volúmenes de datos con una herramienta de visualización integrada, OpenSearch Dashboards, que hace que sea fácil para los usuarios explorar sus datos. OpenSearch está alimentado por la biblioteca de búsqueda Apache Lucene, y soporta una serie de capacidades de búsqueda y análisis como la búsqueda de vecinos cercanos (KNN), SQL, Detección de anomalías, Machine Learning Commons, Trace Analytics, búsqueda de texto completo, y más. OpenSearch OpenSearch S3 Vector de la tienda: 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 es la primera tienda de objetos en la nube con soporte nativo para almacenar y interrogar vectores, proporcionando almacenamiento vectorial diseñado para el uso de agentes de IA, inferencia de IA y búsqueda semántica de su contenido almacenado en Amazon S3. Al reducir el coste de cargar, almacenar y interrogar vectores hasta en un 90%, S3 Vectors hace que sea rentable crear y utilizar grandes conjuntos de datos vectoriales para mejorar la memoria y el contexto de los agentes de IA, así como los resultados de búsqueda semánticos de sus datos de 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 es un servicio de base de datos relacional basado en la nube, totalmente gestionado que es compatible con PostgreSQL. Combina el rendimiento y la disponibilidad de bases de datos comerciales de alto nivel con la simplicidad y rentabilidad de bases de datos de código abierto, específicamente PostgreSQL. El Amazonas Neptuno: 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 es un servicio de base de datos de gráficos rápido, confiable y completamente gestionado que hace que sea fácil construir y ejecutar aplicaciones que funcionen con conjuntos de datos altamente conectados. And non-AWS managed: MongoDB Atlas: MongoDB Atlas es un servicio de base de datos multi-nube por las mismas personas que construyen MongoDB. Atlas simplifica la implementación y gestión de sus bases de datos mientras ofrece la versatilidad que necesita para construir aplicaciones globales resilientes y de alto rendimiento en los proveedores de nube de su elección. Pinecone: Pinecone es un servicio de base de datos vectorial basado en la nube diseñado para aplicaciones de IA, en particular aquellas que involucran la generación aumentada por la recuperación. Redis Enterprise Cloud: Redis Enterprise Cloud es una oferta totalmente gestionada, on-demand, base de datos como servicio (DBaaS) de Redis, construida sobre la base del código abierto Redis. Ahora, entendemos qué es cada una de las tiendas soportadas.Voy a probar y comparar sólo las tiendas gestionadas por AWS. Creación de una función lambda en Python. 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 }) } En este ejemplo, utilizaremos el modelo de base de amazon.nova-micro-v1:0 para comparar el rendimiento. Esta función lambda espera un evento de prueba en el formato: { "query": "Can you provide a list of bank holidays employers can have?", "kb_id": "AAUAL8BHQV" } Question - es nuestra consulta de mi archivo de ejemplo de texto. Puedes usar cualquier archivo de texto que quieras. kb_id - ID de la base de conocimientos; crearemos una base de conocimientos de base para probar Y he creado 4 bases de conocimiento diferentes utilizando diferentes fuentes de datos: Y por último, tenemos todo lo que necesitamos para hacer nuestras pruebas: Executar la función lambda y cambiar sólo el ID de la base de conocimientos para probarlo correctamente. OpenSearch: Neptune: PostgreSQL: S3 Vector store: Y para una mejor visual, ordenado por el tiempo de ejecución: almacenamiento de vectoresTempo de ejecución en msOpensearch1695Postgresql1807Neptune2236S3 almacenamiento de vectores2284 Tienda de vectores Tiempo de ejecución en ms Como puede ver aquí, OpenSearch es una solución de almacenamiento más rápida. Pagar como por 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 El OCU mínimo que puede pagar es de 0.5. Esto significa $0.24 * 24 horas * 30 días * 2 (indexación, búsqueda y consulta) * 0.5 (OCU mínimo) = $172. : de PostgreSQL - pay per ACU Unidad de Capacidad de Aurora (ACU)$ 0,12 por ACU por hora La ACU mínima que puedes pagar es 0. pero 1 ACU te costará $0.12 * 24 horas * 30 días = $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 La instancia mínima es de $0.48 por hora. Esto significa que por mes te costará $0.48 * 24 horas * 30 días = $345. Wow! S3 vector store, here - you will need to pay for requests and storage. S3 Almacenamiento vectorial /Mundo - almacenamiento lógico mensual de datos vectoriales, claves y metadatos = $0.06 per GB S3 Vectors request pricing Solicitudes PUT (por GB)* GET, LIST y todas las demás solicitudes (por 1000 solicitudes) S3 Vectores Requiere $0.20 por GB $0.055 *PUT está sujeto a una carga mínima de 128KB por PUT. Para reducir los costos de PUT, puede batir múltiples vectores por solicitud de PUT. S3 Precio de las consultas vectoriales S3 Solicitudes de consulta de vectores (por 1000 solicitudes) $0.0025 S3 Datos vectoriales: suma de vectores por índice multiplicado por el tamaño vectorial promedio (datos vectoriales, clave y metadatos filtrables) Los primeros 100 mil vectores $0.0040 por TB Más de 100 mil vectores $0.0020 por TB El TLDR: S3 Vectors storage charge ((4 bytes * 1024 dimensiones) datos vectoriales / vector + 1 KB de metadatos filtrables / vector + 1 KB de metadatos no filtrables / vector + 0,17 KB de clave / vector) = 6,17 KB de almacenamiento lógico por vector medio. 6.17 KB/vector promedio * 250.000 vectores * 40 índices de vectores = 59 GB de almacenamiento lógico. Costo mensual total de almacenamiento = 59 GB * $0.06/GB por mes = $3.54 Final comparison table: Tipo de tienda de vectores Tiempo de recuperaciónPrecio aproximado por mesS3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 Tipo de vector Tiempo de recuperación Precio aproximado por mes Si la velocidad no es tan crítica, elegiría la tienda de vectores S3.El ganador obvio, de lo contrario, es OpenSearch, que probablemente sería una opción mejor. ¿Qué tienda vectorial está utilizando en su proyecto?