Moving on from Amazon RDS for PostgreSQL Versions 9.4
Historically, the PostgreSQL community releases a new major version yearly, and with that, has a defined end of life (EOL) policy of older major versions. This allows version and upgrade decisions to be made on dates known well into the future. The community EOL policy is to support a major version for 5 years after its initial release. After the 5th year, a major version will have one final minor release containing any fixes and will then be considered EOL and no longer supported. The final release dates of all versions of PostgreSQL can be found on the community website. The latest major version to reach EOL was 9.4, which occurred on February 13, 2020.
What is happening
With no additional fixes, particularly security related, coming from the PostgreSQL community, now is the ideal time for you to upgrade all PostgreSQL 9.4 instances. To encourage the use of newer versions of PostgreSQL, on February 15, 2020, Amazon Relational Database Service (RDS) stopped supporting creation of new PostgreSQL 9.4 instances from the console. Restoration of existing PostgreSQL 9.4 snapshots and the ability to create read replicas with 9.4 instances is still possible until the April 20, 2020. Any remaining PostgreSQL 9.4 instances will be automatically upgraded to PostgreSQL 11 during a maintenance window after April 20, 2020. If there is any reason that prevents the automatic upgrade to PostgreSQL 11, the instance is instead upgraded to PostgreSQL 9.5.
We recommend that you upgrade any existing Amazon RDS PostgreSQL 9.4 databases before April 20, 2020 to allow for time to test. Determining if there are any 9.4 instances can be quickly done by logging into the console. If any Amazon RDS PostgreSQL 9.4 instances exist in a given Region, an alert appears giving details about the 9.4 retirement.
If there are any existing PostgreSQL 9.4 instances in your account, you can upgrade them before April 20, 2020 by following the steps for a major version upgrade in Upgrading the PostgreSQL DB Engine for Amazon RDS.
Choosing a version
PostgreSQL 9.4 was a feature rich release that pushed PostgreSQL into a new set of application types. The most visible feature was the introduction of the JSONB datatype. PostgreSQL 9.4 also introduced logical decoding, which allows replication tools like the AWS Database Migration Service (DMS) to use PostgreSQL as a source database. These great features and many more are available in newer major versions of PostgreSQL.
Amazon RDS recommends that all Amazon RDS PostgreSQL 9.4 instances be upgraded to PostgreSQL 11, but there may be business reasons that upgrading to a different major version is necessary. For example, some applications are not yet certified on PostgreSQL 11 and must move to a slightly earlier version. When manually upgrading ahead of the automatic upgrades starting on April 20, you can choose the version of PostgreSQL that best meets your needs.
Community EOL Date
|9.5||February 11, 2021||
Row level security
Insert on conflict (aka Upsert)
|9.6||November 11, 2021||
Full text phrase search
|10||November 10, 2022||
Native table partitioning
|11||November 9, 2023||
In addition to the many new features available in each major version, Amazon RDS PostgreSQL continues to increase performance year over year. Newer PostgreSQL versions also give you access to newer instance types. A simple benchmark shows the performance of each major version with the default configuration increasing with the same application workload.
The year over year performance increases coming from new major versions of PostgreSQL is a compelling reason to stay current with the latest major version. However, some queries or operations in your application may experience performance regressions, so be sure to test for performance in addition to compatibility with your application before you upgrade.
With the PostgreSQL community retiring PostgreSQL 9.4, now is the time for you to upgrade all Amazon RDS PostgreSQL 9.4 instances. Besides keeping current with security fixes, there are a number of advantages to upgrading that make PostgreSQL easier to operate, administer, and develop. Even without any changes in an application or process to leverage the new features, the general performance improvements can be seen across almost all applications. For applications using a newer version of PostgreSQL, the EOL schedule for community PostgreSQL is known out to the end of 2024 and should be managed as part of a yearly plan.
About the Authors
Jim is a Principal Database Engineer at AWS. Prior to joining AWS, Jim was CTO at OpenSCG and CEO at StormDB, a Postgres-XC scalable public cloud solution. Jim was chief architect and part of the founding team of EnterpriseDB. Jim also very active in the PostgreSQL community, co-founding both the New York and Philadelphia PostgreSQL Meetup groups, co-organizing the largest PostgreSQL conferences, and serving on the Board of the PostgreSQL Foundation. Jim also speaks regularly at PostgreSQL and other open sources conferences.
Mohan Manthena is a Senior Product Manager at Amazon Web Services.