GCP Deployment
A Simple GCP Deployment
You can deploy Chroma on a long-running server, and connect to it remotely. For convenience, we have provided a very simple Terraform configuration to experiment with deploying Chroma to Google Compute Engine.Step 1: Set up your GCP credentials
In your GCP project, create a service account for deploying Chroma. It will need the following roles:- Service Account User
- Compute Admin
- Compute Network Admin
- Storage Admin
GOOGLE_APPLICATION_CREDENTIALS environment variable to the path of your JSON key file:
Step 2: Install Terraform
Download Terraform and follow the installation instructions for your OS.Step 3: Configure your GCP Settings
Create achroma.tfvars file. Use it to define the following variables for your GCP project ID, region, and zone:
Step 4: Initialize and deploy with Terraform
Download our GCP Terraform configuration to the same directory as yourchroma.tfvars file. Then run the following commands to deploy your Chroma stack.
Initialize Terraform:
e2-small instance.
Finally, apply the deployment:
Customize the Stack (optional)
If you want to use a machine type different from the defaulte2-small, in your chroma.tfvars add the machine_type variable and set it to your desired machine:
Step 5: Chroma Client Set-Up
- Python
- TypeScript
Once your Compute Engine 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 Azure, our thin-client package may be enough for your application.Step 5: Clean Up (optional).
To destroy the stack and remove all GCP resources, use theterraform destroy command.
Observability with GCP
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 define the following variables in yourchroma.tfvars: