Run AWS RDS maintenance manually

amazon-rdsamazon-web-servicesmaintenance

I received an email from AWS about one of my multi-AZ RDS instance. They basically said that there was going to be an upgrade during a certain period:

We are contacting you to inform you that one or more of your Amazon RDS DB instances is scheduled to receive system upgrades during your maintenance window between July 21 2:00 PM and July 28 2:00 PM PDT.

The window seems big and I want to reduce the impacts even if we are on a multi-AZ setup. From my experience with EC2 instances, it is possible to reboot the instance and the upgrade will be applied. Is it the same thing for RDS instances?

Thanks a lot!

Best Answer

If you're on a multi-AZ database you don't have to do anything. AWS will upgrade the standby instance, change DNS so your applications use the standby, then upgrade the primary. Note that it won't change your primary back to the first, but you can do that manually if you think it's worthwhile.

Maintenance will happen some time in that window. It doesn't really matter when, since it's a managed service.

To directly answer your question, no, I don't think a reboot will schedule these upgrades. RDS Instances have a weekly maintenance window. Updates will be applied at the time you specify.

How Failover Works

From here.

In the event of a planned or unplanned outage of your DB instance, Amazon RDS automatically switches to a standby replica in another Availability Zone if you have enabled Multi-AZ. The time it takes for the failover to complete depends on the database activity and other conditions at the time the primary DB instance became unavailable. Failover times are typically 60-120 seconds. However, large transactions or a lengthy recovery process can increase failover time. When the failover is complete, it can take additional time for the RDS console UI to reflect the new Availability Zone.

The failover mechanism automatically changes the DNS record of the DB instance to point to the standby DB instance. As a result, you will need to re-establish any existing connections to your DB instance.

Conclusion

Based on this, RDS on its own isn't suitable for situations where you can't tolerate a couple of minutes of downtime occasionally. It's probably better than any individual EC2 instance running a single database, but if you really want high availability SQL some kind of clustering may be required.