Milvus on AWS - Your Own Vector Database, Without the Per-Query Bill

Every RAG pipeline eventually needs somewhere to put the vectors. A managed vector database gets you started fast, but the pricing is usually built around usage - per vector stored, per query run - and that bill grows exactly when your product is working, which is a strange thing to be penalized for. Self-hosting Milvus yourself means Docker Compose files, dependency versions, and a handful of supporting services to wire together before you've indexed a single embedding.

Meetrix packaged Milvus, the open-source vector database behind a lot of production RAG and semantic search systems, into an AWS Marketplace AMI. Ports configured, dependencies installed, ready to accept connections a few minutes after launch. Ready to try it? Launch the Meetrix Milvus AMI on AWS Marketplace.

What is Milvus?

Milvus is an open-source database purpose-built for storing and searching embedding vectors, the numerical representations that text, images, audio, and video get turned into before an AI model can compare them for similarity. Instead of matching keywords, it finds the nearest vectors to a query in high-dimensional space, which is what powers retrieval-augmented generation, semantic search, and recommendation systems that feel like they understand what you meant instead of just what you typed.

It's built to handle that at a scale most general-purpose databases weren't designed for - collections running into the billions of vectors, with indexing algorithms tuned specifically for approximate nearest-neighbor search. A lot of production RAG stacks either run Milvus directly or run Zilliz's managed version of it, which is Milvus under a different pricing model.

What Usage-Based Vector Search Actually Costs

Managed vector database services typically bill per vector stored and per query executed, and both numbers move in the same direction as your product's success - more users means more queries, which means a bigger invoice. A RAG feature that looked cheap during a demo with a few thousand test documents can look very different once a real embedding corpus and real query volume show up. AWS compute costs for a self-hosted instance don't move with usage the same way - the bill for handling ten queries a second looks a lot like the bill for handling one.

How Deployment Works

Setting up Milvus by hand means writing a Docker Compose file, pulling the right images, and opening the correct ports before you can run a single query. Through the Marketplace, it's four steps:

  1. Subscribe and Launch from AWS Marketplace Open the Meetrix Milvus listing, subscribe, and use the one-click launch option with the vendor-recommended instance type. Milvus and its supporting services ship pre-installed and already running.
  2. The Right Ports Are Already Open The launch creates a security group with SSH, HTTP/HTTPS, and Milvus's client port (19530) already configured. You're not guessing which port pymilvus needs or debugging a connection timeout.
  3. Wait for Boot, Then Connect Give the instance a few minutes to finish starting up, then connect with the pymilvus SDK using the default credentials and the instance's public IP on port 19530.
  4. Change the Default Password Swap out the default admin credentials before storing anything beyond test data. It takes one command and closes the most obvious gap in a fresh deployment.

What Meetrix Brings to This Deployment

  • No Manual Dependency Wrangling - Running Milvus yourself means getting its supporting services installed and correctly versioned together. This AMI ships with all of it already running, not a checklist you have to work through first.
  • Security Group Configured Correctly From the Start - SSH, web, and the Milvus client port are all open on launch, nothing left for you to figure out by trial and error against a closed connection.
  • Sized for Actual Vector Workloads - The recommended instance type is chosen for real ingestion and query load, not a demo-sized default that falls over the moment you load a production dataset.
  • No Usage-Based Markup - You pay AWS compute costs, not a per-vector or per-query fee that scales with how much your product succeeds.
  • People Who Actually Run This Stack - If you need help with instance sizing, index tuning, or scaling as your collection grows, you're talking to engineers who deploy Milvus regularly, not a support queue reading from a script.

Who Is Milvus on AWS Right For?

This deployment fits any team storing and searching embeddings at a scale where usage-based pricing starts to hurt. It's a strong match if you're:

  • A team building a RAG pipeline that's outgrown pgvector or a simple in-memory index
  • An ML engineer building semantic search over a large or fast-growing document set
  • A product team building recommendations based on embedding similarity rather than manual rules
  • A team matching images or video by content instead of by keyword or filename
  • A startup that wants a self-hosted alternative to Pinecone or Zilliz Cloud's usage-based billing
  • A compliance-conscious org that needs embeddings, and whatever they were derived from, to stay inside your own AWS account
  • Anyone already running the rest of their AI stack on AWS who'd rather not send vectors to a third-party service

Milvus on AWS by Meetrix vs Alternatives

Feature Milvus on AWS by Meetrix Pinecone Zilliz Cloud (Managed Milvus) Self-Hosted Milvus (Manual)
Hosting Your AWS account - fully self-hosted Pinecone's cloud, no self-host option Zilliz's managed cloud, or a self-hosted enterprise tier Your EC2 instance, configured by you
Data Control Complete - vectors never leave your account Pinecone stores and indexes your vectors Zilliz stores and indexes your vectors on the hosted tier Complete, if configured correctly
Deployment Time Minutes via AWS Marketplace Instant (API signup) Instant for the hosted tier Hours - dependencies, ports, and config by hand
SSL & Auth Security group pre-configured, SSL available via Route 53 Managed by Pinecone Managed by Zilliz on the hosted tier Manual - easy to leave a port open to the world
Pricing Model AWS compute costs only, no per-query fee Usage-based, billed per stored vector and per query Usage-based, billed per compute unit on the hosted tier AWS compute costs only
GDPR / Data Residency Choose your AWS region, vectors stay there Limited region choice, Pinecone's terms apply Limited region choice, Zilliz's terms apply Your responsibility to configure
Support Meetrix engineers, commercial SLA Pinecone support tiers Zilliz support tiers Community forums only

Resources

How Teams Use This in Production

AI / SaaS | North America
80%lower vector search costs

Cutting Vector Search Costs Before Usage Ate the Margin

A startup building a RAG-powered support assistant was running on a managed vector database billed per stored vector and per query. As their embedding corpus and query volume grew, the bill grew faster than the feature's revenue could justify.

We deployed Milvus on a Meetrix AWS Marketplace instance sized for their corpus, migrated their embeddings across, and pointed their existing RAG pipeline at the new endpoint.

Vector search costs down 80% Predictable AWS billing instead of per-query fees No changes needed to their embedding or query code
"The feature was working, which is exactly when the bill got scary. Moving to our own Milvus instance meant success stopped being the thing driving our infrastructure costs up." Founder, AI SaaS Company, United States
Healthcare AI | Europe
100%in-region vector data

Keeping Clinical Embeddings Inside a Required EU Region

A healthcare AI company building clinical semantic search needed embeddings derived from patient records to stay inside a specific EU region. The managed vector database they'd been evaluating couldn't guarantee that level of region pinning on the plan they could afford.

We deployed Milvus inside their eu-central-1 AWS account, locked the security group down to their own VPC, and documented the setup for their compliance review.

All vector data confirmed in-region Compliance review passed on first submission Same pymilvus client code, no rewrite needed
"We couldn't get a straight answer about where our vectors would actually sit. Running Milvus inside our own account meant we could point at the region and prove it." Head of ML, Healthcare AI Company, Netherlands
E-commerce | Asia Pacific
40Mproduct embeddings indexed

Scaling Visual Search Past What a Free Tier Could Handle

An e-commerce company had built a "shop the look" image-similarity feature on a managed vector database's entry tier. As their catalog grew past a few million images, they kept hitting usage limits and unpredictable overage charges.

We deployed Milvus on a right-sized EC2 instance through the Meetrix AMI, re-indexed their full product catalog, and helped them plan instance sizing as ingestion kept growing.

40 million product embeddings indexed with no usage ceiling No more overage charges as the catalog grows Catalog growth no longer means a bigger recurring bill
"We kept hitting a wall that had nothing to do with our engineering and everything to do with someone else's pricing tier. Owning the database outright made that wall go away." Engineering Lead, E-commerce Company, Singapore

Frequently Asked Questions

What is Milvus actually used for?

Storing and searching embedding vectors at scale - the kind of workload behind retrieval-augmented generation (RAG), semantic search, recommendation engines, and image or video similarity search. If your app turns text, images, or audio into vectors and needs to find the nearest matches fast, that's what Milvus is built for.

Is Milvus free?

Milvus itself is open source. With this AMI, you pay standard AWS compute costs for the EC2 instance running it - there's no per-vector or per-query fee layered on top like you'd get with a managed vector database service.

Does this include a web-based admin UI?

No, not bundled by default. Milvus itself doesn't ship one, and this deployment keeps things lean by not adding extra containers you didn't ask for. If you want a UI, you can run Attu, the open-source Milvus management tool, in a separate container pointed at this instance's port 19530.

What's the default login, and is it safe to leave it?

The AMI ships with a default admin user (root) and a default password for the first login. Change it immediately if you're storing anything beyond test data - leaving default credentials on an instance reachable from the internet is asking for trouble.

Can I connect my existing RAG pipeline without rewriting it?

Yes. You connect with the standard pymilvus SDK or any client that speaks the Milvus wire protocol, the same way you would against any other Milvus instance. In most cases it's a one-line change - swap the host and port to point at your new instance.

Can this scale as my embedding collection grows?

Yes. Resize the underlying EC2 instance as your collection and query volume grow. For larger production workloads, Meetrix can help with instance sizing and index tuning as part of our support offering.

Run Your Own Vector Database on AWS

Stop paying per query for a vector database you don't control. Deploy Milvus on AWS in minutes, set up by a team that runs this stack every day.

Deploy on AWS Marketplace