AWS RDS for PostgreSQL ships a broad allow-list of extensions — pgvector, postgis, and pg_cron all run on RDS, most via a plain CREATE EXTENSION, with preload-backed ones enabled through a custom DB parameter group.
vector data type and ivfflat and hnsw access methods
Job scheduler for PostgreSQL
Cheminformatics functionality for PostgreSQL.
Extension to manage partitioned tables by time or ID
Extension to manage partitioned tables by time or ID
Reorganize tables in PostgreSQL databases with minimal locks
Reorganize tables in PostgreSQL databases with minimal locks
PL/JavaScript (v8) trusted procedural language
Hypothetical indexes for PostgreSQL
provides auditing functionality
Changing data capture in JSON format
PostgreSQL Logical Replication
type for storing hyperloglog data
Active-Active Replication Extension for PostgreSQL
Give PostgreSQL ability to manually force some decisions in execution plans.
Give PostgreSQL ability to manually force some decisions in execution plans.
Foreign data wrapper for querying a MySQL server
Foreign data wrapper for querying a MySQL server
The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
foreign data wrapper for Oracle access
Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
Trusted Language Extensions for PostgreSQL
Output plugin for logical replication in Raw SQL format
Output plugin for logical replication in Raw SQL format
aws_s3 postgres extension to import/export data from/to s3
aws_s3 postgres extension to import/export data from/to s3
IPv4/v6 and IPv4/v6 range index type for PostgreSQL
create 2-gram (bigram) index for faster full text search.
create 2-gram (bigram) index for faster full text search.
server-side support for profiling PL/pgSQL functions
server-side support for profiling PL/pgSQL functions
Exposes the Linux operating-system process table through SQL so load, memory, CPU, and I/O stats can be queried from PostgreSQL.
Exposes the Linux operating-system process table through SQL so load, memory, CPU, and I/O stats can be queried from PostgreSQL.
foreign-data wrapper for Postgres log file access
foreign-data wrapper for Postgres log file access
Provides a means for logging execution plans of slow statements automatically
Provides a means for logging execution plans of slow statements automatically
bloom access method - signature file based index
support for indexing common datatypes in GIN
support for indexing common datatypes in GiST
data type for case-insensitive character strings
connect to other PostgreSQL databases from within a database
connect to other PostgreSQL databases from within a database
text search dictionary template for integers
text search dictionary template for extended synonym processing
calculate great-circle distances on the surface of the Earth
determine similarities and distance between strings
data type for storing sets of (key, value) pairs
functions for tracking who changed a table
functions, operators, and index support for 1-D arrays of integers
data types for international product numbering standards
data type for hierarchical tree-like structures
functions for tracking last modification time
inspect the contents of database pages at a low level
examine the free space map (FSM)
track planning and execution statistics of all SQL statements executed
track planning and execution statistics of all SQL statements executed
text similarity measurement and index searching based on trigrams
text similarity measurement and index searching based on trigrams
examine the visibility map (VM) and page-level visibility info
examine the visibility map (VM) and page-level visibility info
functions to inspect contents of PostgreSQL Write-Ahead Log
functions to inspect contents of PostgreSQL Write-Ahead Log
PL/pgSQL procedural language
PostGIS geometry and geography spatial types and functions
foreign-data wrapper for remote PostgreSQL servers
functions for implementing referential integrity (obsolete)
data type for representing line segments or floating-point intervals
functions that manipulate whole tables, including crosstab
functions that manipulate whole tables, including crosstab
TABLESAMPLE method which accepts number of rows as a limit
TABLESAMPLE method which accepts time in milliseconds as a limit
TABLESAMPLE method which accepts time in milliseconds as a limit
text search dictionary that removes accents
generate universally unique identifiers (UUIDs)
RDS has no dashboard toggle for extensions. Most are plain SQL — connect as your master user and run CREATE EXTENSION. The exception is preload-backed extensions (pg_cron, pgaudit, pg_partman's background worker, auto_explain), which must be added to shared_preload_libraries in a custom DB parameter group and require a reboot before you can create them.
Run from psql or any client connected as the master user. Most extensions need nothing else.
-- Enable a plain extension (no preload needed)
CREATE EXTENSION IF NOT EXISTS vector;
-- Verify it's installed
SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';
-- RDS can restrict which extensions are creatable via an allow-list.
-- Default is '*' (all permitted). Check the current setting:
SHOW rds.allowed_extensions;
-- If a name isn't listed, CREATE EXTENSION fails with:
-- "permission denied to create extension ... not specified in rds.allowed_extensions"Preload-backed extensions (pg_cron, pgaudit, pg_partman bgw, auto_explain) need shared_preload_libraries. The default parameter group is read-only, so create a custom one, set the library list, attach it, and reboot — then run CREATE EXTENSION.
# 1. Create a custom DB parameter group for your PG major
aws rds create-db-parameter-group \
--db-parameter-group-name pg17-custom \
--db-parameter-group-family postgres17 \
--description "custom"
# 2. Add the libraries you need to shared_preload_libraries
aws rds modify-db-parameter-group \
--db-parameter-group-name pg17-custom \
--parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_stat_statements,pg_cron,ApplyMethod=pending-reboot"
# 3. Attach the parameter group to your instance
aws rds modify-db-instance \
--db-instance-identifier mydb \
--db-parameter-group-name pg17-custom \
--apply-immediately
# 4. Reboot so the preload takes effect, then CREATE EXTENSION pg_cron;
aws rds reboot-db-instance --db-instance-identifier mydbWith Terraform, manage shared_preload_libraries on an aws_db_parameter_group and attach it to the instance. Run CREATE EXTENSION afterward (e.g. via a provisioner or a separate SQL step).
resource "aws_db_parameter_group" "pg17" {
name = "pg17-custom"
family = "postgres17"
parameter {
name = "shared_preload_libraries"
value = "pg_stat_statements,pg_cron"
apply_method = "pending-reboot"
}
}
# Reference this group from your aws_db_instance via
# parameter_group_name = aws_db_parameter_group.pg17.nameThese extensions ship enabled by default — no CREATE EXTENSION needed.
Proprietary extensions that exist only on AWS RDS for PostgreSQL, not part of the open-source PostgreSQL ecosystem.
Import data from and export query results to Amazon S3 directly from SQL — useful for bulk loads and offloading without a separate ETL tool.
DocsInvoke AWS Lambda functions from inside Postgres — call out to serverless code from triggers or stored procedures.
DocsHelper types and functions shared by aws_s3 and aws_lambda (S3 URIs, function ARNs). A dependency you enable alongside them.
DocsForeign data wrapper that exposes the RDS database engine logs as SQL-queryable tables, so you can grep slow queries and errors with SELECT.
DocsFast physical migration of a database between two RDS for PostgreSQL instances — moves data at the file level, far quicker than logical dump/restore.
DocsTrusted Language Extensions dev kit — author and install your own extensions in trusted languages without superuser or filesystem access.
DocsActive-active logical replication for PostgreSQL — multi-writer setups across RDS instances, developed and open-sourced by AWS.
DocsExtensions you might expect that aren't available on AWS RDS for PostgreSQL, with workarounds where they exist.
timescaledbWhy missing: timescaledb is not on the RDS for PostgreSQL extension allow-list and cannot be created — RDS doesn't compile or load it.
Alternative: For time-series workloads, use native Postgres partitioning with pg_partman (supported on RDS), run TimescaleDB on Timescale Cloud, or self-manage TimescaleDB on EC2.
citusWhy missing: citus (distributed Postgres) isn't offered on RDS — among managed clouds it's effectively exclusive to Azure's Cosmos DB for PostgreSQL. GCP Cloud SQL doesn't offer it either.
Alternative: For sharded/distributed Postgres, use Azure Cosmos DB for PostgreSQL (managed Citus), or self-host Citus on EC2. For read scaling on RDS, add read replicas instead.
RDS supports user-authored extensions through pg_tle (Trusted Language Extensions for PostgreSQL), AWS's framework for installing extensions written in trusted languages — JavaScript (PL/v8), Perl, Tcl, PL/pgSQL, and SQL — without superuser access. The runtime is sandboxed: no filesystem access and no native C extensions, so you can't load arbitrary compiled code. You can further restrict which extensions are creatable at all with the rds.allowed_extensions parameter (default '*'), which acts as an allow-list enforced at CREATE EXTENSION time.
1bench is a modern GUI client for PostgreSQL — connect to your AWS RDS for PostgreSQL instance, install extensions, write queries, and inspect schemas without leaving the IDE.
Try 1bench for PostgreSQL