This section will guide you on how to deploy ParadeDB to an AWS instance. You need to have an AWS account, and optionally the AWS CLI installed.
Selecting an AWS EC2 Instance
The first step is to launch an EC2 instance. If you are looking for a production ready setup, we recommend storage-optimized instances like the
If you are only testing or need a development setup, you can use a general-purpose instance like the
We recommend you add storage to your instance using EBS volumes. Generally, for indexing and search it is recommended to use fast SSD storage. For starting
out, general purpose storage will serve fine. However, if you are looking for a more performant setup, you can use provisioned iops volumes like
io2. The instance
needs at least 16GB of storage to install ParadeDB, in addition to any amount of storage you expect to store within your PostgreSQL database.
You can use any AMI, as long as you can install Docker and Docker-compose to it. We recommend using the latest Ubuntu LTS AMI.
After you have selected the right instance for your needs, you can launch an instance via the console using the “Launch instance” button, or you can use the AWS CLI to do so.
Create an EC2 Security Group with an ingress rule on the port where ParadeDB will be exposed, by default 5432.
Step 1: Connect to the Instance
Open your terminal or command prompt and navigate to the directory where you saved the *.pem file associated with your EC2 instance. Connect to the instance using SSH:
ssh -i "your-key-file.pem" ubbuntu@your-instance-public-ip
Step 2: Install Docker Engine on the Instance
The instructions below assume you are on a Debian-based image. If you picked a different AMI, you will need to use the appropriate package manager (i.e. yum, etc.). Update the installed packages and add the Docker repository:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Allow usage for non-root users:
sudo groupadd docker
sudo usermod -aG docker $USER
# Activate changes on groups
After adding the user to the Docker group, it’s recommended to log out and log back in for the changes to take effect.
Step 3: Run the ParadeDB image
Pull and run the ParadeDB Docker image:
docker run \
-e POSTGRES_USER=<user> \
-e POSTGRES_PASSWORD=<password> \
-e POSTGRES_DB=<dbname> \
-p 5432:5432 \
Verify that the PostgreSQL server is running:
Make sure that your instance can accept connections on the TCP port where PostgreSQL is running.
That’s it! You can now connect to your ParadeDB instance and start writing queries.