Overview
This AMI runs Chroma, the open-source embedding and vector database, on Ubuntu 24.04 LTS. The upstream vendor image, release 1.5.9, is pinned and baked into the AMI, so first start does not depend on a registry.
What Chroma does
Chroma stores embeddings with documents and metadata and searches them by similarity, with metadata filtering, for semantic search and retrieval-augmented generation. Your application creates the embeddings (or uses a client-side embedding function); the server stores and queries them through its HTTP API and the official Python and JavaScript clients.
What Perimattic adds
Administrator created for you: the one administrator account is created during first-login setup, before the site is published, with a random password generated on your server. Apache provides HTTPS with a free Let's Encrypt certificate for your domain.
Limits you should know
The only address that answers without a token is /api/v2/heartbeat, which returns a timestamp. There is one token and no separate read-only access, and no user accounts. The protection lives in Apache: if you remove the Apache site or publish Chroma's port 8000 yourself, Chroma becomes open to everyone. Data is stored in /opt/app/data on the root volume (mode 700, root), so choose the root EBS volume size for your data and take EBS snapshots for backup. Chroma used about 45 to 50 MB of memory when empty on a t3.medium; real usage grows with your collections. A t3.small (2 GB) starts and passes the tests when empty; a t3.medium (4 GB) is the recommended starting size for real data. Chroma runs as the root user inside its container, which is isolated from the host. Multi-node and cloud features of the vendor are not part of this image.
Licence and attribution
Chroma is released under the Apache License 2.0. Built on the open-source Chroma (Apache-2.0). Not affiliated with, endorsed by, or sponsored by Chroma; Chroma is a trademark of its owner.
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 access token printed at the end of setup Call https://your-domain/api/v2/tenants/default_tenant/databases/default_database/collections with the header Authorization: Bearer
A domain name with an A record pointing at the instance is required, because the API is served over HTTPS.
This AMI is built and supported by Perimattic.
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
- Chroma 1.5.9 (Apache-2.0), pinned and pre-installed: an embedding database with an HTTP API on your own server.
- Secure first login: Chroma has no built-in authentication, so it listens on loopback only and Apache requires a random per-instance access token on every request; HTTPS through Apache and Let's Encrypt.
- 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: Chroma 1.5.9 (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.
- Chroma 1.x has no authentication of its own: it listens on loopback only and Apache requires a random per-instance access token (Authorization: Bearer or X-Chroma-Token) on every request except /api/v2/heartbeat; setup verifies that Chroma stores and searches vectors before the site is published.
- Application: Chroma 1.5.9 (Apache-2.0, unmodified upstream image, pinned). Usage reporting is off and the reset endpoint is disabled.
- Refused requests receive HTTP 403. One token, no read-only access.
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. Chroma used about 45 to 50 MB when empty and the whole host about 580 MB on a t3.medium; what it needs depends on your collections, so size up for large data.
-
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 Chroma
-
Point a domain at the instance
Create a DNS A record (for example chroma.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 access token and writes only its hashes into the Apache rule
- Starts Chroma on the loopback interface and checks that it creates a collection, stores vectors and answers a query
- Configures Apache as an HTTPS reverse proxy that refuses requests without the token, and requests a Let's Encrypt certificate
- Prints the URL and the token; 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 Chroma
Call https://<your-domain>/api/v2/tenants/default_tenant/databases/default_database/collections with the header 'Authorization: Bearer <token>' (or 'X-Chroma-Token: <token>'). View the token again with: sudo cat /opt/app/access.txt Python: chromadb.HttpClient(host='<your-domain>', port=443, ssl=True, headers={'Authorization': 'Bearer <token>'})
-
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/data: back up /opt/app or snapshot the volume before upgrades. To change the token, put a new value in CHROMA_API_TOKEN in /opt/app/.env, delete /opt/app/.setup-done, run sudo bash /opt/app/setup.sh and sudo systemctl reload apache2. Do not remove the Apache site or publish port 8000: Chroma has no authentication of its own.
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
Vendor 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.