top of page

In-Place upgrade for Aurora Postgres RDS with AWS Cloudformation

Rebecca Boardman

I've been looking at the process of upgrading Aurora Postgres RDS when your using it in partnership with AWS Cloudformation. AWS are advising if you are on a version below 9-6-16 that you need to upgrade before the 18th of November- or they'll do it for you. Keeping your database up to date is critical for security and stability. In an ideal situation when it came to an upgrade you would create a change set for your Cloudformation stack to upgrade the engine version- then schedule it in for you‘re desired 'maintenance window. The only problem is at the moment there is a known issue when doing an upgrade through Cloudformation as it will replace your cluster rather than doing it as an in-place upgrade....yikes! You can read more about that here: https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/216


At the time of writing this bug still hasn't been confirmed as fixed- however from the product roadmap it is something that AWS have acknowledged is coming soon. I spent some time testing different upgrade methods, some just would not play ball but i did have a few successful methods that worked. To sum up a high level flow on some of the upgrade methods you can follow:


Method 1: In-place upgrade and reimport/add resources back in to CF (Cloudformation)



Method 2: In-place upgrade and rebuild the cluster


Method 3: In-place upgrade and update CF (Cloudformation) to set engineversion to not known:






My opinion

My personal preferred method is the 3rd one. Yes there are some draw backs: having to set the engine version to not known in the template however I've found this to be the most simple method in terms of the number of steps and actions required. The more manual steps associated with a change the greater chance of human error. I would bank on the fact that this issue will most likely be fixed very soon- although this may not be confirmed by the time the upgrade is required. When it's next time to upgrade if the issue was resolve it would just be a case of setting the below (applied as part of the workaround):

 Engineaurora-postgresql
 EngineVersion!Ref 'AWS::NoValue'

To the required version Eg.

 Engineaurora-postgresql
 EngineVersion'10.11'

Recent Posts

See All

Comments


bottom of page