Skip to content

AWS Backend (RDS + Bedrock)

The AWS setup uses Amazon RDS PostgreSQL with pgvector for storage and Amazon Bedrock Titan Embed v2 for embeddings.

Prerequisites

  • An AWS account
  • AWS CLI configured (aws configure)
  • An RDS PostgreSQL instance (version 15+ recommended for pgvector support)
  • IAM permissions for Bedrock (bedrock:InvokeModel)

Step 1: Create an RDS PostgreSQL instance

aws rds create-db-instance \
  --db-instance-identifier distill-db \
  --db-instance-class db.t4g.micro \
  --engine postgres \
  --engine-version 15.7 \
  --master-username distill \
  --master-user-password <your-password> \
  --allocated-storage 20

Ensure your security group allows inbound connections on port 5432 from your machine.

Step 2: Enable pgvector

Connect to the instance and run:

CREATE EXTENSION IF NOT EXISTS vector;

Step 3: Configure environment

export BACKEND=postgres
export DATABASE_URL="postgresql://distill:<your-password>@distill-db.<id>.<region>.rds.amazonaws.com:5432/distill"
export EMBEDDING_PROVIDER=bedrock
export AWS_REGION=us-east-1

Bedrock access uses the default AWS credential chain (environment variables, ~/.aws/credentials, or instance role). No extra key configuration is needed.

Step 4: Start Distill

python -m distill_mcp

The PostgreSQL store will automatically create the memories table, pgvector extension, full-text search indexes, and RLS policies.

Cost

Varies by instance type. A db.t4g.micro instance costs approximately $13/month (on-demand). Bedrock Titan Embed v2 pricing is per input token and negligible at typical usage volumes.