AWS Deployment
A Simple AWS Deployment
You can deploy Chroma on a long-running server, and connect to it remotely. There are many possible configurations, but for convenience we have provided a very simple AWS CloudFormation template to experiment with deploying Chroma to EC2 on AWS.Step 1: Get an AWS Account
You will need an AWS Account. You can use one you already have, or create a new one.Step 2: Get credentials
For this example, we will be using the AWS command line interface. There are several ways to configure the AWS CLI, but for the purposes of these examples we will presume that you have obtained an AWS access key and will be using environment variables to configure AWS. Export theAWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables in your shell:
AWS_REGION environment variable:
Step 3: Run CloudFormation
Chroma publishes a CloudFormation template to S3 for each release. To launch the template using AWS CloudFormation, run the following command line invocation. Replace--stack-name my-chroma-stack with a different stack name, if you wish.
Customize the Stack (optional)
The CloudFormation template allows you to pass particular key/value pairs to override aspects of the stack. Available keys are:InstanceType- the AWS instance type to run (default:t3.small)KeyName- the AWS EC2 KeyPair to use, allowing to access the instance via SSH (default: none)
--parameters command line option. Parameters must be specified using
the format ParameterName={parameter},ParameterValue={value}.
For example, the following command launches a new stack similar to the
above, but on a m5.4xlarge EC2 instance, and adding a KeyPair named
mykey so anyone with the associated private key can SSH into the
machine:
Step 4: Chroma Client Set-Up
- Python
- TypeScript
Once your EC2 instance is up and running with Chroma, all
you need to do is configure your
HttpClient to use the server’s IP address and port
8000. Since you are running a Chroma server on AWS, our thin-client package may be enough for your application.Step 5: Clean Up (optional).
To destroy the stack and remove all AWS resources, use the AWS CLIdelete-stack command.
Observability with AWS
Chroma is instrumented with OpenTelemetry hooks for observability. We currently only exports OpenTelemetry traces. These should allow you to understand how requests flow through the system and quickly identify bottlenecks. Check out the observability docs for a full explanation of the available parameters. To enable tracing on your Chroma server, simply pass your desired values as arguments when creating your Cloudformation stack:Troubleshooting
Error: No default VPC for this user
If you get an error sayingNo default VPC for this user when creating ChromaInstanceSecurityGroup, head to AWS VPC section and create a default VPC for your user.