RDS Deployments: Amazon RDS Multi-AZ Deployments Overview

Challenge

Running a database in a specific availability zone poses a risk to your entire application if that zone becomes inaccessible or experiences downtime.

Multi-AZ Architecture

Amazon addresses this challenge by establishing a standby DB instance that synchronously replicates data from the primary DB instance in a separate availability zone.

In simple terms, when you set up a Multi-AZ deployment, you can have either one standby or two standby DB instances.

multiaz-rds-deployment

One Standby DB Instance (Multi-AZ DB Instance Deployment)

  • This setup has one standby DB instance that helps if the main one fails but doesn't handle reading data.
  • In the AWS Management Console, you can identify this by checking if there's only one row for the DB instance, the Role is either "Instance" or "Primary," and Multi-AZ is set to "Yes."

Two Standby DB Instances (Multi-AZ DB Cluster Deployment)

  • This setup includes two standby DB instances that provide failover support and can also handle reading data.
  • To check in the AWS Management Console, look for a cluster-level row with three DB instance rows underneath.
  • The Role for the cluster-level row should be "Multi-AZ DB cluster."
  • For each instance-level row, Roles can be either "Writer instance" or "Reader instance," and Multi-AZ is set to "3 Zones."

So, by checking these characteristics in the AWS Management Console under Databases and selecting a DB identifier, you can determine if your Multi-AZ deployment is a single or cluster setup.

Failover Conditions

Failover ReasonDescription
OS Patch or Security UpdateA failover is initiated when the operating system beneath the RDS database instance is being patched in an offline operation. This typically occurs during the maintenance window for OS patching or security updates. For more details, refer to the guidelines in Maintaining a DB instance.
Unhealthy Primary HostIn a Multi-AZ DB instance deployment, a failover is triggered when the primary host becomes unhealthy. The system detects an impaired primary DB instance and automatically initiates a failover to ensure continuity.
Network Connectivity LossIf the primary host in a Multi-AZ instance becomes unreachable due to a loss of network connectivity, RDS monitoring detects the issue and initiates a failover to maintain availability.
Customer-Initiated ModificationA failover occurs when a customer initiates a modification to the RDS DB instance. For more information on modifications and their impact, consult the guidelines in Modifying an Amazon RDS DB instance.
Unresponsive Primary InstanceIn a Multi-AZ setup, if the primary DB instance is busy and unresponsive, recommendations include examining event and CloudWatch logs, evaluating workload, using Enhanced Monitoring, and employing Performance Insights for real-time OS metrics. Refer to the provided links for detailed information.
Storage Volume FailureIn a Multi-AZ DB instance deployment, a failover is triggered when the storage volume underlying the primary host experiences a failure. The system detects the storage issue and automatically initiates a failover for continuity.
User-Requested FailoverA failover is initiated when the user requests it, typically by rebooting the DB instance and choosing the option to "Reboot with failover." For step-by-step instructions, refer to Rebooting a DB instance.

Failover Mechanism

In case of a planned or unplanned outage due to the specified conditions, Amazon RDS automatically switches to a standby replica in another Availability Zone, provided Multi-AZ is enabled. The failover times typically range between 60–120 seconds.

How it Operates

In an Amazon RDS Multi-AZ deployment, a primary database instance is automatically created, and data is synchronously replicated to an instance in a different availability zone. Upon detecting a failure, Amazon RDS seamlessly transitions to a standby instance without requiring manual intervention.

DB instance into a Multi-AZ deployment

  1. Log in to the AWS Management Console and go to the Amazon RDS console at https://console.aws.amazon.com/rds/.
  2. In the left sidebar, click on "Databases," and then select the specific DB instance you want to modify.
  3. Under "Actions," click on "Convert to Multi-AZ deployment."
  4. On the confirmation page, you have the option to "Apply immediately" for immediate changes. This won't cause downtime, but there might be a slight impact on performance. Alternatively, you can choose to apply the update during the next maintenance window. For more details, check out the information on using the "Apply Immediately" setting.
  5. Finally, click on "Convert to Multi-AZ" to complete the process.

Multi-AZ:

  • Failover in case of AZ outage (high availability)
  • Data is only read/written to the main database
  • Can only have 1 other AZ as failover

RDS Deployments: Multi-Region

  • Disaster recovery in case of region issue
  • Local performance for global reads
  • Replication cos

RDS Multi AZ (Disaster Recovery)

  • SYNC replication means the data is always up-to-date.
  • Only one DNS name is needed, which means if the main server fails, the app switches automatically to the backup.
  • This setup makes sure your services are almost always available.
  • If something bad happens, like losing a data center, network issues, or hardware failures, the system switches over to the backup without needing anyone to do it manually.
  • This setup isn't for making things faster, it's just for making sure everything keeps running even if something breaks.
  • Also, you can set up extra copies of your data in different places for even more protection in case of a big disaster.

Upgrading RDS: Moving from One to Many Availability Zones

  • No need to stop the database, so it keeps running smoothly.
  • Simply click "modify" for the database.
  • Here's what happens behind the scenes:
    • A snapshot of the database is taken.
    • A new database is created from that snapshot in a different Availability Zone (AZ).
    • The two databases are synced up to stay current with each other.