Overview
This is a repackaged open source software product wherein additional charges apply for hardening, security configuration, and setup support.
WHAT IS MILVUS
Milvus is an open-source vector database purpose-built for similarity search over embeddings. It stores high-dimensional vectors alongside scalar metadata and returns nearest-neighbour results across very large collections in milliseconds, which makes it the storage layer for retrieval-augmented generation, semantic search, recommendation, deduplication and image or audio similarity. Written in Go and C++ with a SIMD-accelerated search core, it supports multiple index types and distance metrics (COSINE, L2, inner product), hybrid search combining vector similarity with scalar filtering, sparse and dense vectors, and full-text search. Clients connect over gRPC or a RESTful API, with official SDKs for Python, Java, Go, Node.js and C#. This AMI runs the standalone configuration - the Milvus engine with etcd for metadata and MinIO for object storage - persisting vectors, indexes and the write-ahead log to the instance's EBS volume. Milvus is a graduated project of the LF AI and Data Foundation. Apache-2.0 license, no vendor lock-in.
WHAT THIS AMI ADDS
Security hardening:
- Authentication is enabled before the database first starts, and a unique 24-character database password is generated on your own instance at first boot - the documented upstream default password never exists on your instance
- The object-storage credential and the management-console password are generated at first boot as well, and written to a root-only credentials file. Nothing is baked into the AMI
- The management console is published only through an nginx TLS reverse proxy protected by its own credentials, and only the console path is proxied - the rest of the management port is not reachable from outside
- The metrics and management port is bound to 127.0.0.1 only
- MinIO object storage is bound to 127.0.0.1 only, and the etcd metadata store publishes no host port at all
- Container confinement is left at the platform default rather than relaxed
- Container log rotation capped so a chatty or restarting container cannot fill the root volume
- UFW firewall pre-configured - only 22, 80, 443 and the database API on 19530 reachable; object storage and metadata ports blocked externally
- fail2ban, auditd and AppArmor pre-configured
- HTTPS enabled by default with a self-signed certificate; Certbot and the nginx plugin are pre-installed so a trusted certificate is one command away
- CVE scan - every image is scanned for vulnerabilities before release
OS hardening (CIS Level 1):
- CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
- auditd, SSH hardening, Kernel hardening, IMDSv2 enforced
Compliance artifacts:
- SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
- CIS Conformance Report at /etc/lynxroute/cis-report.html
- CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
Milvus holds its indexes in RAM and requires a CPU with AVX2, so the recommended instance type is m6i.xlarge (4 vCPU, 16 GB) and no burstable tier is offered.
Highlights
- Milvus security baked in: authentication enabled before the database first starts with a unique password generated at first boot on your instance, the management console reachable only over TLS behind separate credentials, the metrics port and MinIO object storage bound to loopback only, etcd with no host port at all, UFW firewall pre-configured.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
Dimension | Cost/hour |
|---|---|
m6i.xlarge Recommended | $0.05 |
m6i.2xlarge | $0.05 |
m6i.large | $0.03 |
Vendor refund policy
We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Milvus v3.0.0
- Re-release of Milvus 3.0.0. The application version is unchanged; this build refreshes the underlying operating system image
- Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base, picking up every operating-system security update published since the previous build
Additional details
Usage instructions
- Launch instance (m6i.xlarge recommended - Milvus holds its indexes in RAM and requires a CPU with AVX2)
- Open Security Group - allow TCP 19530 and TCP 443 from your IP, and TCP 22 for SSH
- SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
- Read credentials: sudo cat /root/milvus-credentials.txt
- Connect a client to <PUBLIC_IP>:19530 using the token root:<password from the credentials file>
- Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning, then sign in to the management console with the console user and password from the credentials file
The instance takes 1-3 minutes to finish initialising on first launch; a loading page is served until Milvus is ready.
Create a collection, insert vectors and run a similarity search over the REST API, substituting your public IP and password:
curl -X POST "http://<PUBLIC_IP>:19530/v2/vectordb/collections/create"
-H "Authorization: Bearer root:<password>"
-H "content-type: application/json"
-d '{"collectionName":"demo","dimension":8,"metricType":"COSINE"}'
curl -X POST "http://<PUBLIC_IP>:19530/v2/vectordb/entities/insert"
-H "Authorization: Bearer root:<password>"
-H "content-type: application/json"
-d '{"collectionName":"demo","data":[{"id":1,"vector":[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8]}]}'
curl -X POST "http://<PUBLIC_IP>:19530/v2/vectordb/entities/search"
-H "Authorization: Bearer root:<password>"
-H "content-type: application/json"
-d '{"collectionName":"demo","annsField":"vector","limit":1,"data":[[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8]],"outputFields":["id"]}'
Python clients install the official SDK with: pip install "pymilvus>=3.0.1"
In Milvus 3.x the default database is named "default" - examples written for Milvus 2.x that pass "_default" will fail.
After a restart your data is retained, but Milvus reloads each collection into memory before it can answer searches; a search issued in the first few seconds may return an empty result while loading completes.
Change the database password after first sign-in:
curl -X POST "http://<PUBLIC_IP>:19530/v2/vectordb/users/update_password"
-H "Authorization: Bearer root:<password>" -H "content-type: application/json"
-d '{"userName":"root","password":"<password>","newPassword":"<new password>"}'
All generated credentials are saved to /root/milvus-credentials.txt on first launch. Restrict inbound 19530 and 443 to your own address range before putting the instance into service. Replace the self-signed TLS certificate with a CA-signed one for production use: sudo certbot --nginx -d yourdomain.com
Resources
Vendor resources
Support
Vendor support
Visit us online: https://lynxroute.com
For Milvus documentation:
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.