Zero-Downtime Upgrade of Amazon RDS MySQL (Aurora) with Auto-Failover

Upgrading Amazon Aurora MySQL doesn’t have to disrupt your applications. With Aurora’s built-in high availability and failover capabilities, it’s possible to change instance classes or scale infrastructure without causing downtime.

This guide walks you through a zero-downtime upgrade strategy for Amazon RDS Aurora MySQL, ensuring continuous operations even during resource modifications. Whether you're scaling up for performance or optimizing your setup, you can rely on this step-by-step method to upgrade safely and efficiently.

Step 1: Ensure a Matching Reader Instance

  • No Reader? Create one with the same specifications (instance class, storage, etc.) as the writer.
  • Already Have One? Confirm its specs match the writer. Modify it if needed.

This ensures a smooth failover without performance impact.

Step 2: Modify the Writer Instance

  1. Open the RDS/Aurora console.
  2. Select your writer instance and click Modify.
  3. Choose the upgraded instance class (e.g., db.t3.medium to db.r5.large).
  4. Check Apply Immediately, then save.

This action triggers an automatic failover. The reader becomes the new writer while the original writer begins its upgrade.

Step 3: Automatic Failover

During the upgrade process:

  • The reader is promoted to writer.
  • The original writer becomes a reader and is upgraded in the background.
  • Failover typically completes in under a minute.

You now have an upgraded writer running with zero disruption.

Step 4: Finalize (Recommended)

Once the original writer (now a reader) finishes upgrading, you can:

  • Remove the temporary writer: This triggers a failover back to the upgraded original writer.
  • Retain both roles: Modify the current writer (your temporary reader) back to desired reader specs.

Aurora will automatically reassign the correct roles.

Notes and Tips

  • Use the cluster endpoint (<cluster>.cluster-xxxxx) instead of instance endpoints to avoid connection issues during failover.
  • Monitor RDS events for real-time updates.
  • Although this method minimizes downtime, consider performing the upgrade during low-traffic hours.

Conclusion

With careful planning and the use of Aurora's built-in failover, you can upgrade MySQL instances without service interruption. This method provides a reliable and efficient way to scale your infrastructure with zero downtime.