Configure AWS API ECS services
On AWS, Terraform module v6.0 introduces ECS as the target runtime for the API, split into three services by workload type. Each service scales automatically through Application Auto Scaling, adjusting its running task count between a minimum and maximum based on multiple metrics, including CPU target tracking and event loop timing. The module exposes optional variables to tune per-task size and task counts. The defaults are suitable for most deployments. See Upgrade to Terraform module v6.0 for the migration. 1024 CPU units equal 1 vCPU.braintrust-api handles general API traffic.
braintrust-api-ingest handles ingestion paths (/logs3, /otel/v1/traces).
braintrust-api-background handles background paths (evals, function invocation, proxy).
For example, to raise the ingestion service’s floor for a high-volume deployment:
braintrust_api_ingest_min_count for deployments with spiky ingestion volume or if you expect a launch that will suddenly increase log traffic, and braintrust_api_background_min_count for heavy eval workloads.
Configure Brainstore fast readers
Fast readers are isolated Brainstore nodes dedicated to serving predictable UI queries (paginated viewers, span and trace lookups), preventing resource-intensive ad-hoc queries from making the UI unresponsive.- GCP and Azure: Fast readers are enabled by default starting in Helm chart v5.0.0. See the configuration reference below.
- AWS: Fast readers are enabled by default (2 nodes) starting in Terraform module v5.5.0. On earlier module versions they are disabled by default. Set
brainstore_fast_reader_instance_countin your Terraform configuration to control the node count, or set it to0to opt out (recommended for sandbox or non-production deployments).
Configuration reference
Fast readers are configured under thebrainstore.fastreader key in your values.yaml. If you have customized brainstore.reader settings, mirror those customizations to brainstore.fastreader.
- Azure
- GCP Autopilot
Azure users must explicitly set
brainstore.fastreader.volume.size when using Azure Container Storage (enableAzureContainerStorageDriver: true):Brainstore resource configuration
This section applies to GCP and Azure deployments using the Helm chart (v5.0.1+). AWS deployments manage Brainstore resources automatically.
resources block for each Brainstore component (brainstore.reader, brainstore.writer, brainstore.fastreader) is passed through as-is to the Kubernetes pod spec. You can omit limits entirely, set them to {}, or supply any valid Kubernetes resource spec.
Auto-derived Brainstore environment variables
As of Helm chart v5.1.0,BRAINSTORE_RESPONSE_CACHE_URI and BRAINSTORE_CODE_BUNDLE_URI are automatically populated from your objectStorage configuration and do not need to be set manually. The chart derives these values as follows:
If you previously configured these via
extraEnvVars, remove those overrides after upgrading to v5.1.0 to avoid conflicts.