AWS Deployment
Deploy Chroma on AWS EC2 using CloudFormation.Prerequisites
- AWS account with appropriate permissions
- AWS CLI configured
- EC2 key pair (optional, for SSH access)
CloudFormation Template
The AWS deployment uses a CloudFormation template located atdeployments/aws/chroma.cf.json.
Template Parameters:
Deploy with AWS Console
-
Navigate to CloudFormation
- Go to AWS Console → CloudFormation → Create Stack
-
Upload Template
- Upload
deployments/aws/chroma.cf.json - Or use Amazon S3 URL if hosted
- Upload
-
Configure Parameters
- Choose instance type (recommended:
t3.smallor larger) - Set Chroma version
- Optionally add SSH key pair
- Choose instance type (recommended:
-
Review and Create
- Review settings
- Acknowledge IAM resource creation
- Click “Create Stack”
-
Get Instance IP
- Wait for stack creation to complete
- Go to Outputs tab
- Copy
ServerIpvalue
Deploy with AWS CLI
What Gets Deployed
The CloudFormation template provisions:-
EC2 Instance
- Amazon Linux 2
- 24 GB EBS volume
- Docker and Docker Compose installed
-
Security Group
- Port 22 (SSH) - open to 0.0.0.0/0
- Port 8000 (Chroma HTTP) - open to 0.0.0.0/0
-
User Data Script
Docker Compose Configuration
The AWS deployment uses this Docker Compose file:Connect to Chroma
Security Recommendations
Update Security Group:Monitoring
GCP Deployment
Deploy Chroma on Google Compute Engine using Terraform.Prerequisites
- GCP project with billing enabled
gcloudCLI installed and configured- Terraform installed
Terraform Configuration
The GCP deployment uses Terraform files indeployments/gcp/.
Variables (chroma.tfvars):
Deploy with Terraform
Terraform Resources
Themain.tf creates:
-
Firewall Rule
-
Compute Instance
Connect to Instance
Machine Type Recommendations
Cleanup
Azure Deployment
Deploy Chroma on Azure Virtual Machines using Terraform.Prerequisites
- Azure subscription
- Azure CLI installed and configured
- Terraform installed
- SSH key pair
Terraform Configuration
Variables (chroma.tfvars.tf):
Deploy with Terraform
Azure Resources
Themain.tf creates:
- Resource Group
- Virtual Network (10.0.0.0/16)
- Subnet (10.0.1.0/24)
- Network Security Group
- Port 22: SSH
- Port 8000: Chroma HTTP
- Public IP Address
- Network Interface
- Linux Virtual Machine
- Debian 11
- 24 GB OS disk
- Docker and Chroma auto-installed
Network Security Group
Connect to Instance
VM Size Recommendations
Cleanup
Common Configuration
Environment Variables
All cloud deployments support these environment variables:Persistent Storage
All deployments use Docker volumes for persistence:Backup and Restore
Production Considerations
High Availability
For production HA deployments:- Use Kubernetes instead of single-instance deployments
- Deploy across multiple availability zones
- Set up load balancing
- Configure auto-scaling
Monitoring
Configure OpenTelemetry for comprehensive observability:Security
-
Restrict network access
- Modify security groups/firewall rules
- Use VPN or VPC peering
- Implement authentication
-
Enable SSL/TLS
- Use reverse proxy (nginx, HAProxy)
- Configure SSL certificates
-
Regular updates
Cost Optimization
- AWS: Use Spot Instances for non-critical workloads
- GCP: Use Preemptible VMs for development
- Azure: Use Reserved Instances for long-term production
- Monitor and adjust instance sizes based on usage
Comparison
Next Steps
Docker Deployment
Learn about Docker configuration options
Kubernetes
Scale to distributed Kubernetes deployment
Authentication
Secure your Chroma deployment
Observability
Monitor your cloud deployment