Cloud Computing 13 min read

Amazon S3 Vectors Cuts Storage Costs by 90% and Boosts Performance

Amazon S3 Vectors, now generally available, reduces vector‑storage costs up to 90%, scales a single index to 20 billion vectors, delivers sub‑second query latency and 1,000 PUT /s write throughput, and integrates with Bedrock, OpenSearch, CloudFormation, and PrivateLink for end‑to‑end AI workloads.

Amazon Cloud Developers
Amazon Cloud Developers
Amazon Cloud Developers
Amazon S3 Vectors Cuts Storage Costs by 90% and Boosts Performance

General Availability and Cost Reduction

Amazon S3 Vectors is now generally available as the first cloud object storage service that natively stores and queries vector data. Compared with dedicated vector‑database solutions, it lowers total storage cost by up to 90%.

Adoption Statistics

Since the preview launch in July 2025, users have created more than 250,000 vector indexes, imported over 40 billion vectors, and executed more than 1 billion queries within four months.

Capacity Improvements

A single index can hold up to 20 billion vectors, allowing a vector bucket to store up to 20 trillion vectors—40 times the preview limit of 50 million vectors per index. This eliminates the need to split large datasets across multiple indexes.

Query Performance Enhancements

Low‑frequency queries return results in under 1 second, while high‑frequency queries achieve latency around 100 ms or lower, making the service suitable for conversational AI and multi‑agent workflows. The maximum number of results per query has increased from 30 to 100, providing richer context for retrieval‑augmented generation (RAG) applications.

Write Throughput

Streaming updates to a vector index now support up to 1,000 PUT transactions per second, enabling rapid ingestion of small batches and concurrent data sources.

Serverless Managed Architecture

The service is fully managed and serverless; users do not need to provision or configure compute resources. Billing is based solely on actual vector storage and query usage, supporting the entire AI development lifecycle from prototyping to large‑scale production.

Integration Capabilities

Amazon S3 Vectors can serve as the vector engine for Amazon Bedrock knowledge bases and integrates with Amazon OpenSearch for combined search and analytics. Deployment can be automated with AWS CloudFormation, private connectivity is available via Amazon PrivateLink, and resource tags enable fine‑grained cost allocation and access control.

Pricing and Regional Availability

The service is available in 14 AWS regions, expanding from the original five preview regions. Pricing consists of three dimensions:

PUT pricing : charged per logical GB of uploaded vectors, including metadata and keys.

Storage cost : charged based on the total logical storage occupied by an index.

Query fees : includes per‑API‑call charges and per‑TB fees for indexed data (excluding non‑filterable metadata). Fees per TB decrease after the index exceeds 100,000 vectors.

CLI Workflow – Creating a Bucket and Index

echo "Creating S3 Vector bucket..."
aws s3vectors create-vector-bucket \
    --vector-bucket-name "$BUCKET_NAME"

echo "Creating vector index..."
aws s3vectors create-index \
    --vector-bucket-name "$BUCKET_NAME" \
    --index-name "$INDEX_NAME" \
    --data-type "float32" \
    --dimension "$DIMENSIONS" \
    --distance-metric "$DISTANCE_METRIC" \
    --metadata-configuration "nonFilterableMetadataKeys=AMAZON_BEDROCK_TEXT,AMAZON_BEDROCK_METADATA"

The --dimension value must match the model’s embedding dimension, and the distance metric can be either cosine or Euclidean.

Embedding and Query Example

# 1. Create embedding request
echo '{"inputText":"Should I write open source or open‑source"}' | base64 | tr -d '
' > body_encoded.txt

# 2. Compute the embeddings with Amazon Titan Embed model
aws bedrock-runtime invoke-model \
  --model-id amazon.titan-embed-text-v2:0 \
  --body "$(cat body_encoded.txt)" \
  embedding.json

# 3. Search the S3 Vectors index for similar chunks
vector_array=$(cat embedding.json | jq '.embedding') && \
aws s3vectors query-vectors \
  --index-arn "$S3_VECTOR_INDEX_ARN" \
  --query-vector "{\"float32\": $vector_array}" \
  --top-k 3 \
  --return-metadata \
  --return-distance | jq -r '.vectors[] | "Distance: \(.distance) | Source: \(.metadata."x-amz-bedrock-kb-source-uri" | split("/")[-1]) | Text: \(.metadata.AMAZON_BEDROCK_TEXT[0:100])..."'

The first query result returns JSON containing the source document URI, page number, and a snippet confirming that the correct spelling is “open source” (without a hyphen).

Metadata Handling

Each vector can store up to 50 metadata keys, of which up to 10 may be marked as non‑filterable. Filterable keys enable query‑time filtering, while non‑filterable keys provide additional context without affecting query performance.

Additional Import Methods

Users can also employ the Amazon S3 Vectors Embed CLI to generate embeddings via Amazon Bedrock and store them directly, or use S3 Vectors as the vector engine for Amazon OpenSearch.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PerformanceserverlessAIAWSpricingS3 VectorsVector Storage
Amazon Cloud Developers
Written by

Amazon Cloud Developers

Official technical community of Amazon Cloud. Shares practical AI/ML, big data, database, modern app development, IoT content, offers comprehensive learning resources, hosts regular developer events, and continuously empowers developers.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.