amazon-web-servicesamazon-ec2amazon-aurora

How do you remove/undo/delete a pending modification on Amazon Aurora RDS?


I was pegging the 90 total connections allowed on my Aurora RDS instance, now that I've got a few more heavy duty sites than I had before. I decided to upgrade the instance and I did so, but put the upgrade as pending until the next maintenance window, without considering adding a read-only replica into the cluster. I've added the replica and all is well. I want to cancel that pending upgrade from a db.t2.medium Aurora to a db.r3.large Aurora instance. I can't find a way to clear out the pending modifications queue.

I have the AWS CLI installed and config'd. I just can't find documentation on flushing out the pending modifications queue. Thanks to all in advance.


Solution

  • There is no documented way to cancel pending modifications.

    Note, though, that on an Aurora cluster, the master does not play a role that is as important as you might assume. It differs from other setups, because your data does not actually live on the master instance -- it lives on the Aurora Cluster Volume, which is not part of any instance -- and replicas have a different relationship to the physical data store than in conventional replication.

    When you create an Amazon Aurora instance, you create a DB cluster. A DB cluster consists of one or more DB instances, and a cluster volume that manages the data for those instances. An Aurora cluster volume is a virtual database storage volume that spans multiple Availability Zones, with each Availability Zone having a copy of the DB cluster data.

    https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Overview.html

    So, the nodes don't hold the data -- it's separate, which is one of the powerful features of Aurora's internals. In fact, Aurora replicas don't have their own copy of the data, so in some strict/literal/pedantic sense, they technically are not even properly "replicas" (though that terminology is still used) -- they're just read-only nodes in the cluster.

    So, you could probably just do a Reboot with Failover, which would switch the other instance (your new replica) to become the master. Then create a new replica and destroy the original instance.

    Note that if you have replicas in an aurora cluster, you need to be using the cluster endpoints to connect to the writer node or one of the reader nodes, because if your writer ("master") fails, Aurora will usually swap the roles (or possibly always swap the roles, though there might be cases where it doesn't). You might already be doing that.