Which database versions does Amazon RDS for PostgreSQL support?
Amazon RDS for PostgreSQL currently supports PostgreSQL 12, 13, 14, 15, and 16. RDS for PostgreSQL also supports PostgreSQL 11 through Amazon RDS Extended Support. Information about the supported minor versions is available in the Amazon RDS User Guide.
What are the extensions supported by RDS for PostgreSQL?
You can check the list of supported extensions in the Amazon RDS User Guide. To request support for additional extensions, you can send an email to rds-postgres-extensions-request@amazon.com with the extension name and use case.
Does RDS for PostgreSQL support audit logging?
RDS for PostgreSQL supports several parameters you can set to log activity that occurs on your PostgreSQL DB instance. You can learn more about them in the Amazon RDS User Guide.
Are there RDS for PostgreSQL limitations that I need to be aware of?
Yes, you can read about the limitations of RDS for PostgreSQL instances in the Amazon RDS User Guide.
How does Amazon RDS distinguish between “major” and “minor” versions of PostgreSQL?
In the context of RDS for PostgreSQL, version numbers are organized as follows: PostgreSQL version = X.Y-R(n).
From the Amazon RDS standpoint, a version change would be considered major if the first part of the version number is being changed. Example: going from 15.9 to 17.1.
A version change would be considered minor if the second part of the version number within the release is being changed. Example: going from 17.1 to 17.2.
R(n) denotes the follow on release to a minor version that may include new features, performance improvements, and bug fixes. A minor version may or may not have R(n) release. Example: going from 17.1 to 17.1-R2 or 17.1-R3
Refer to the PostgreSQL Versioning Policy for more information.
Does Amazon RDS provide guidelines for upgrading engine versions or deprecation of engine versions that are currently supported?
Yes. Please refer to the Amazon RDS FAQs.
Trusted Language Extensions for PostgreSQL
Why should I use Trusted Language Extensions for PostgreSQL?
Trusted Language Extensions (TLE) for PostgreSQL enables developers to build high performance PostgreSQL extensions and run them safely on Amazon RDS. In doing so, TLE improves your time to market and removes the burden placed on database administrators to certify custom and third-party code for use in production database workloads. You can move forward as soon as you decide an extension meets your needs. With TLE, independent software vendors (ISVs) can provide new PostgreSQL extensions to customers running on Amazon RDS.
What are the traditional risks of running extensions in PostgreSQL and how does TLE for PostgreSQL mitigate those risks?
PostgreSQL extensions are executed in the same process space for high performance. However, extensions might have software defects that can crash the database.
TLE for PostgreSQL offers multiple layers of protection to mitigate this risk. TLE is designed to limit access to system resources. The rds_superuser role can determine who is permitted to install specific extensions. However, these changes can only be made through the TLE API. TLE is designed to limit the impact of an extension defect to a single database connection. In addition to these safeguards, TLE is designed to provide DBAs in the rds_superuser role fine-grained, online control over who can install extensions and they can create a permissions model for running them. Only users with sufficient privileges will be able to run and create using the “CREATE EXTENSION” command on a TLE extension. DBAs can also allow-list “PostgreSQL hooks” required for more sophisticated extensions that modify the database’s internal behavior and typically require elevated privilege.
How does TLE for PostgreSQL relate to/work with other AWS services?
TLE for PostgreSQL is available for Amazon RDS on PostgreSQL on versions 14.5 and higher. TLE is implemented as a PostgreSQL extension itself and you can activate it from the rds_superuser role similar to other extensions supported on Amazon RDS.
In what versions of PostgreSQL can I run TLE for PostgreSQL?
You can run TLE for PostgreSQL in PostgreSQL 14.5 or higher in Amazon RDS.
In what Regions is Trusted Language Extensions for PostgreSQL available?
TLE for PostgreSQL is currently available in all AWS Regions and the AWS GovCloud Regions.
How much does it cost to run TLE?
TLE for PostgreSQL is available to Amazon RDS customers at no additional cost.
How is TLE for PostgreSQL different from extensions available on Amazon Aurora and Amazon RDS today?
Aurora and Amazon RDS support a curated set of over 85 PostgreSQL extensions. AWS manages the security risks for each of these extensions under the AWS shared responsibility model. The extension that implements TLE for PostgreSQL is included in this set. Extensions that you write or that you obtain from third-party sources and install in TLE are considered part of your application code. You are responsible for the security of your applications that use TLE extensions.
What are some examples of extensions I could run with TLE for PostgreSQL?
You can build developer functions, such as bitmap compression and differential privacy (such as publicly accessible statistical queries that protect privacy of individuals).
What programming languages can I use to develop TLE for PostgreSQL?
TLE for PostgreSQL currently supports JavaScript, PL/pgSQL, Perl, and SQL.
How do I deploy a TLE for PostgreSQL extension?
Once the rds_superuser role activates TLE for PostgreSQL, you can deploy TLE extensions using the SQL CREATE EXTENSION command from any PostgreSQL client, such as psql. This is similar to how you would create a user-defined function written in a procedural language, such as PL/pgSQL or PL/Perl. You can control which users have permission to deploy TLE extensions and use specific extensions.
How do TLE for PostgreSQL extensions communicate with the PostgreSQL database?
TLE for PostgreSQL access your PostgreSQL database exclusively through the TLE API. The TLE supported trusted languages include all functions of the PostgreSQL server programming interface (SPI) and support for PostgreSQL hooks, including the check password hook.
Where can I learn more about the TLE for PostgreSQL open source project?
You can learn more about the TLE for PostgreSQL project on the official TLE GitHub page.
Amazon RDS Blue/Green Deployments
What RDS for PostgreSQL versions do Amazon RDS Blue/Green Deployments support?
Amazon RDS Blue/Green Deployments are supported in versions 11.21 and higher, 12.16 and higher, 13.12 and higher, 14.9 and higher, and 15.4 and higher. Learn more about available versions in the Amazon RDS documentation.
What Regions do Amazon RDS Blue/Green Deployments support?
Amazon RDS Blue/Green Deployments are available in all applicable AWS Regions and the AWS GovCloud Regions.
When should I use Amazon RDS Blue/Green Deployments?
Amazon RDS Blue/Green Deployments allow you to make safer, simpler, and faster database changes. Blue/Green Deployments are ideal for use cases such as major or minor version database engine upgrades, operating system updates, schema changes on green environments that do not break logical replication, like adding a new column at the end of a table, or database parameter setting changes. You can use Blue/Green Deployments to make multiple database updates at the same time using a single switchover. This allows you to stay current on security patches, improve database performance, and access newer database features with short, predictable downtime.
What kind of changes can I make with Amazon RDS Blue/Green Deployments?
Amazon RDS Blue/Green Deployments allow you to make safer, simpler, and faster database changes, such as major or minor version upgrades, schema changes, instance scaling, engine parameter changes, and maintenance updates.
What is the “blue environment” in Amazon RDS Blue/Green Deployments? What is the “green environment"?
In Amazon RDS Blue/Green Deployments, the blue environment is your current production environment. The green environment is your staging environment that will become your new production environment after switchover.
How do switchovers work with Amazon RDS Blue/Green Deployments?
When Amazon RDS Blue/Green Deployments initiate a switchover, they block writes to both the blue and green environments, until switchover is complete. During switchover, the staging environment, or green environment, catches up with the production system, ensuring data is consistent between the staging and production environment. Once the production and staging environment are in complete sync, Blue/Green Deployments promote the staging environment as the production environment by redirecting traffic to the newly promoted production environment. Blue/Green Deployments are designed to enable writes on the green environment after switchover is complete, ensuring zero data loss during the switchover process.
Can I use Blue/Green Deployments when I have a blue environment as a subscriber/publisher for a self-managed logical replica?
If your blue environment is a self-managed logical replica, or subscriber, we will block switchover. We recommend that you first stop replication to the blue environment, proceed with the switchover, and then resume replication. In contrast, if your blue environment is a source for a self-managed logical replica, or publisher, you can continue to switchover. However, you will need to update the self-managed replica to replicate from the green environment post switchover.
After Amazon RDS Blue/Green Deployments switches over, what happens to my old production environment?
Amazon RDS Blue/Green Deployments do not delete your old production environment. If needed, you can access it for additional validations and performance/regression testing. If you no longer need the old production environment, you can delete it. Standard billing charges apply on old production instances until you delete them.
What do Amazon RDS Blue/Green Deployments switchover guardrails check for?
Amazon RDS Blue/Green Deployments switchover guardrails block writes on your blue and green environments until your green environment catches up before switching over. Blue/Green Deployments also perform health checks of your primary and replicas in your blue and green environments. They also perform replication health checks, for example, to see if replication has stopped or if there are errors. They detect long running transactions between your blue and green environments. You can specify your maximum tolerable downtime, as low as 30 seconds, and if you have an ongoing transaction that exceeds this your switchover will time out.
Do Amazon RDS Blue/Green Deployments support Amazon RDS Proxy, cross-Region read replicas, or cascaded read replicas?
No, Amazon RDS Blue/Green Deployments do not support Amazon RDS Proxy, cross-Region read replicas, or cascaded read replicas.
Can I use Amazon RDS Blue/Green Deployments to rollback changes?
No, at this time you cannot use Amazon RDS Blue/Green Deployments to rollback changes.
DevOps Guru for RDS
What is Amazon DevOps Guru for RDS?
Amazon DevOps Guru for RDS is a new ML-powered capability for Amazon RDS for PostgreSQL (which includes Amazon Aurora) that is designed to automatically detect and diagnose database performance and operational issues, enabling you to resolve issues in minutes rather than days.
Amazon DevOps Guru for RDS is a feature of Amazon DevOps Guru, which is designed to detect operational and performance issues for all Amazon RDS engines and dozens of other resource types. DevOps Guru for RDS expands the capabilities of DevOps Guru to detect, diagnose, and remediate a wide variety of database-related issues in Amazon RDS for PostgreSQL (e.g. resource over-utilization, and misbehavior of certain SQL queries).
When an issue occurs, Amazon DevOps Guru for RDS is designed to immediately notify developers and DevOps engineers and provides diagnostic information, details on the extent of the problem, and intelligent remediation recommendations to help customers quickly resolve database-related performance bottlenecks and operational issues.
Why should I use DevOps Guru for RDS?
Amazon DevOps Guru for RDS is designed to remove manual effort and shorten time (from hours and days to minutes) to detect and resolve hard to find performance bottlenecks in your relational database workload.
You can enable DevOps Guru for RDS for every Amazon RDS for PostgreSQL database, and it will automatically detect performance issues for your workloads, send alerts to you on each issue, explain findings, and recommend actions to resolve.
DevOps Guru for RDS helps make database administration more accessible to non-experts and assists database experts so that they can manage even more databases.
How does Amazon DevOps Guru for RDS work?
Amazon DevOps Guru for RDS uses ML to analyze telemetry data collected by Amazon RDS Performance Insights (PI). DevOps Guru for RDS does not use any of your data stored in the database in its analysis. DevOps Guru for RDS looks for problematic patterns in PI telemetry using a combination of rules and ML-based techniques, and alarms customers when such patterns are detected.
How can I get started with Amazon DevOps Guru for RDS?
To get started with DevOps Guru for RDS, ensure Performance Insights is enabled through the Amazon RDS Console, and simply enable DevOps Guru for your Amazon RDS for PostgreSQL databases. With DevOps Guru, you can choose your analysis coverage boundary to be your entire AWS account, prescribe the specific AWS CloudFormation stacks that you want DevOps Guru to analyze, or use AWS tags to create the resource grouping you want DevOps Guru to analyze.
What types of issues can Amazon DevOps Guru for RDS detect?
Amazon DevOps Guru for RDS helps identify a wide range of performance issues that may affect application service quality, such as lock pile-ups, connection storms, SQL regressions, CPU and I/O contention, memory issues, or misconfigured parameters.
How is DevOps Guru for RDS different from Amazon RDS Performance insights?
Amazon RDS Performance Insights is a database performance tuning and monitoring feature that collects and presents a visual representation of the Amazon RDS database performance metrics, helping you quickly assess the health of your database, and determine when and where to take action. Amazon DevOps Guru for RDS is designed to monitor those metrics, detect when your database is experiencing performance issues, analyze the metrics, and then tell you what’s wrong and what you can do about it.
Amazon RDS is free to try. Pay only for what you use. There is no minimum fee.
Get started with Amazon RDS for PostgreSQL in the AWS Console.