Performing a blue/green deployment with RDS is a great way to validate changes and cutover while keeping the same endpoint and disrupting applications as little as possible.
There are some important deployment considerations that you have to know before you create your cluster. Most of the time, teams find out about this after running a cluster in production for months and then want to upgrade or change something, and find out it’s not going to work.
Some limitations that I’ve found most impactful:
- You can’t store the master user password in AWS Secrets Manager.
- You can’t switch from an unencrypted cluster to encrypted or vice versa.
- RDS Proxy is not supported.
Before performing a blue/green deployment be sure to enable logical replication. When using Aurora, this error doesn’t seem to make a lot of sense, at first glance. The error is referring to the binlog_format
parameter of the DB cluster parameter group. This parameter has to be set to something other than OFF
. The recommended value (per AWS) is to set this to ROW.
If this parameter is not set, you will see the following error:
“Blue/Green Deployments require a DB cluster with logical replication enabled. Before you create a Blue/Green Deployment for a DB cluster, associate the DB cluster with a custom DB cluster parameter group that enables logical replication.”
To fix this, be sure to use a custom DB Cluster parameter group, and set the value of binlog_format
to ROW (or anything but OFF).
This will then allow you to perform the blue/green deployment.
Leave a Reply