Overview
This AMI runs Milvus standalone, the open-source vector database for similarity search and AI applications, on Ubuntu 24.04 LTS. The official Milvus container image (milvusdb/milvus, version 3.0.5) is pinned and baked into the AMI together with the two services Milvus's own standalone Docker setup uses: etcd (v3.5.25) for metadata and MinIO (RELEASE.2024-12-18T13-15-44Z) for object storage. Nothing is pulled from a registry at first start. Milvus is an independent open-source project and Perimattic is not affiliated with it; product names are trademarks of their respective owners.
Why Milvus?
Milvus stores vector embeddings with their fields and searches them by similarity, with filtering, for semantic search, recommendations and retrieval-augmented generation. It has REST and gRPC APIs and SDKs such as pymilvus.
What Perimattic adds
Secure by default: Milvus ships with authorization switched off and a built-in root password, and its bundled MinIO ships with the keys minioadmin/minioadmin. On this AMI authorization is on from the very first start, and the root password and the MinIO keys are generated on your server at first login. Setup checks that an unauthenticated REST or gRPC request, the default root password and the default MinIO keys are all refused, and that the generated credentials can create a collection, insert, search and drop it, before anything is published. There are no default or shared credentials in the image.
HTTPS: Apache is the reverse proxy, with a free Let's Encrypt certificate requested for your domain by certbot. It publishes only the REST API (paths under /v1 and /v2), and every request there needs the token root:.
What is and is not exposed
gRPC, the protocol pymilvus and most SDKs use, is not published to the internet: it listens on 127.0.0.1 only, so use an SSH tunnel (ssh -L 19530:127.0.0.1:19530). Milvus's management port (9091: metrics, debug and web console) also listens on 127.0.0.1 only and is never proxied. etcd and MinIO are reachable only inside the Docker network. Only ports 22, 80 and 443 are open.
Sizing
Milvus, etcd and MinIO used about 0.3 GB of memory when empty and about 0.4 GB with a loaded collection of 20,000 128-dimension vectors in our tests. Memory grows with your data (roughly 4 bytes per dimension per vector plus index overhead when held in memory). A t3.medium (4 GB) is the recommended starting size; size up with your data. The data is on the instance's root volume, so choose its size for your data. Milvus's own compose file runs Milvus with Docker's seccomp filter off; this image keeps the default filter on, which is enough for in-memory indexes (disk-based DiskANN indexes may need it relaxed).
Licences
Milvus and etcd are released under the Apache License 2.0. MinIO is licensed under the GNU Affero General Public License v3 (AGPL-3.0); it is the unmodified upstream build, used internally by Milvus (source: github.com/minio/minio, release tag RELEASE.2024-12-18T13-15-44Z).
Getting Started Launch the AMI and open ports 22, 80 and 443 in the security group SSH in and answer the setup prompts (domain and admin email) Copy the root password printed at the end of setup Call https://your-domain/v2/vectordb/collections/list with the header Authorization: Bearer root:
A domain name with an A record pointing at the instance is required, because the REST API is served over HTTPS.
Book a free setup consultation at https://cal.com/gaurav-pareek-perimattic/marketplace-setup-consultations or email us at aws-support@perimattic.com .
Support Managed and supported by Perimattic, a cloud infrastructure company with 13+ years of experience serving global clients. We offer free setup assistance, custom integrations, infrastructure consulting, and 24/7 support.
Highlights
- Milvus 3.0.5 standalone (Apache-2.0) with etcd and MinIO, pinned and pre-installed: a vector database with REST and gRPC APIs on your own server.
- Secure first login: authorization is on, and the root password and storage keys are generated on your server and checked (anonymous, default password and default keys all refused); REST over HTTPS, gRPC via SSH tunnel.
- Built on patched Ubuntu 24.04 LTS and supported by Perimattic: free setup assistance at aws-support@perimattic.com.
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
- ...
Dimension | Cost/hour |
|---|---|
t3.medium Recommended | $0.03 |
t3.micro | $0.03 |
c3.2xlarge | $0.03 |
c3.4xlarge | $0.03 |
c3.8xlarge | $0.03 |
c3.large | $0.03 |
c3.xlarge | $0.03 |
c4.2xlarge | $0.03 |
c4.4xlarge | $0.03 |
c4.8xlarge | $0.03 |
Vendor refund policy
For any questions or concerns, please contact: Perimattic.com Email: aws-support@perimattic.com
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
Initial release.
- Application: Milvus 3.0.5 (container image pinned, baked into the AMI).
- Base: Ubuntu 24.04 LTS, fully patched at build time, built by an automated EC2 Image Builder pipeline.
- TLS: Apache reverse proxy with a Let's Encrypt certificate requested by certbot at first login.
- Credentials are generated on the instance at first login; none are present in the image.
- Authorization is on from the first start; the root password and the MinIO keys are generated at first login and setup verifies that unauthenticated REST and gRPC requests, the default root password and the default MinIO keys are refused before the REST API is published.
- Application: Milvus 3.0.5 standalone (Apache-2.0, unmodified official image) with etcd v3.5.25 (Apache-2.0) and MinIO RELEASE.2024-12-18T13-15-44Z (AGPL-3.0), all pinned.
- Only the REST API (/v1, /v2) is published over HTTPS; gRPC (19530) and the management port (9091) listen on 127.0.0.1 only; etcd and MinIO are reachable only inside the Docker network.
Additional details
Usage instructions
-
Launch an Instance
From AWS Marketplace, click Continue to Subscribe and then Continue to Configuration to launch the AMI.
-
Choose the Recommended Instance Type
t3.medium (4 GB of memory) is the recommended starting size. Milvus, etcd and MinIO used about 0.3 GB when empty and about 0.4 GB with 20,000 128-dimension vectors loaded; what you need depends on your data (roughly 4 bytes per dimension per vector in memory, plus index overhead), so size up for large collections.
-
Configure Security Group
Allow inbound traffic on the following ports:
- 22 (SSH) - terminal access for setup
- 80 (HTTP) - needed to validate your domain for the TLS certificate
- 443 (HTTPS) - access to Milvus
-
Point a domain at the instance
Create a DNS A record (for example milvus.example.com) pointing to the instance's public IP before you log in.
-
Connect to the Instance
ssh -i <your-key.pem> ubuntu@<public-ip>
-
First-Login Setup
The first SSH login runs a guided setup:
- Prompts for your domain and admin email and checks the DNS A record
- Generates a random 24-character root password and MinIO keys on your server, and starts Milvus, etcd and MinIO with authorization on
- Checks that unauthenticated REST and gRPC requests, the default root password and the default MinIO keys are refused, and that the generated credentials can create a collection, insert, search and drop it
- Configures Apache as an HTTPS reverse proxy for the REST API and requests a Let's Encrypt certificate
- Prints the URL and the root credentials; they are also stored in /opt/app/access.txt (root only)
If a step fails, fix the problem shown and log in again: the setup resumes where it stopped.
-
Access Milvus
Call https://<your-domain>/v2/vectordb/collections/list with the header 'Authorization: Bearer root:<password>' (view the password again with: sudo cat /opt/app/access.txt). gRPC (port 19530, used by pymilvus) is local to the server: reach it through an SSH tunnel (ssh -L 19530:127.0.0.1:19530 ubuntu@<server>) with the same user and password. Create separate users and roles for your applications.
-
Credentials
Generated on your server, never shared between customers. View them again with:
sudo cat /opt/app/access.txt
-
Manage the Services
cd /opt/app sudo docker compose ps sudo docker compose restart
Data is in /opt/app/volumes (milvus, etcd, minio): back up all of /opt/app or snapshot the volume before upgrades. The root password is only read the first time Milvus starts; change it afterwards with Milvus's update-password call, not by editing .env. Do not put the token in a URL query string, because server logs record URLs.
Thank you for subscribing.
Need Support or Customization? Perimattic's team can help with setup issues, custom features and integrations:
Email us: aws-support@perimattic.com WhatsApp: +91-92142 66896 Learn more: <www.perimattic.com >
We offer free setup assistance, custom development and integrations, and infrastructure consulting.
Resources
Support
Vendor support
Support by Perimattic
Perimattic provides 24/7 support for all AWS Marketplace products. Our team has 13+ years of cloud infrastructure expertise serving global clients.
Contact Channels: Email: aws-support@perimattic.com WhatsApp: +91-92142 66896 Website: <www.perimattic.com >
What We Help With: Initial setup and configuration assistance (free) Troubleshooting connectivity, performance, and backup issues Custom development and integrations Infrastructure consulting and architecture review Migration planning from other solutions Automation solutions and scaling guidance
Instance Sizing Guidance: t2.medium or t3.medium: Development environments, small applications m5.large: Production workloads with moderate traffic m5.xlarge: High-traffic production deployments and larger datasets
For workload-specific sizing recommendations, contact our team for a free consultation.
Refunds and Issues: If you experience any issues or need to request a refund, contact us at aws-support@perimattic.com and we will respond promptly.
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.