Database High Availability and Disaster Recovery Design – it solves the problem of your database crashing and taking your whole application down with it. For DBS-C01, this is the single most heavily tested objective because AWS wants to know you can keep data safe and accessible even when things go wrong.
Jump to a section
A simple way to picture Database High Availability and Disaster Recovery Design
3 baggage handlers work at a busy airport. One handler, Priya, covers the morning shift. Another, Carlos, covers the afternoon. A third, Mei, is on standby at home. When Priya’s belt jams, Carlos takes over immediately – that’s high availability (HA). The airport has two separate conveyor systems in different terminals, so if one terminal loses power, the other can still sort luggage – that’s disaster recovery (DR). The airport also keeps a second set of empty bags in a warehouse 50 miles away, so if the main warehouse burns down, flights can still depart with alternative bags – that’s a backup in another region. The key mapping: the handlers are database instances, the conveyor belts are data replication paths, and the distant warehouse is a secondary AWS Region. The airport expects zero missed flights even when a belt breaks – that’s the same as a database requiring 99.999% uptime. Without these three layers, a single jam grounds all flights; in IT, that means lost transactions, angry customers, and failed audits.
Let us start with the basics. A database is just a structured place where you store data – customer orders, user accounts, product inventory. If that database stops working, your application stops working. High availability (HA) and disaster recovery (DR) are two different strategies to prevent that from happening.
High availability means the database stays up and responds to queries even when individual components fail. Think of it as building redundancy inside one location (an AWS Availability Zone or multiple zones). The system has no single point of failure – if one server crashes, another takes over instantly. The goal is zero downtime and zero data loss.
Disaster recovery is different. DR is what you do when a whole AWS Region (like us-east-1) goes offline because of a natural disaster, a power grid failure, or a human error. DR means you have a standby copy of your database in another AWS Region, and you have a plan to switch traffic to that copy if the main region fails. The goal here is to minimise data loss (measured by Recovery Point Objective, RPO) and downtime (measured by Recovery Time Objective, RTO).
AWS services that help with HA include Amazon RDS Multi-AZ (which creates a standby replica in a different Availability Zone), Amazon Aurora (which replicates data across three Availability Zones by default), and Amazon DynamoDB (which stores data across multiple servers and racks automatically). For DR, you use cross-Region read replicas, automated backups, or snapshot copy to a secondary Region.
The core principle is that you must decide how much data loss you can tolerate (RPO) and how fast you need to recover (RTO). For example, a banking app might require RPO of zero seconds and RTO of 1 minute – meaning you lose zero transactions and are back up in 60 seconds. A blog might tolerate RPO of 24 hours and RTO of 4 hours – meaning losing a day of comments is acceptable and taking four hours to restore is fine.
The most common mistake beginners make is thinking HA and DR are the same thing. They are not. HA keeps you running during small failures (one server, one rack, one zone). DR saves you when a whole region goes down. You need both.
AWS offers specific services for each goal:
Amazon RDS Multi-AZ: automatically creates and maintains a standby replica in a different Availability Zone. If the primary fails, AWS automatically fails over to the standby. This gives HA with RTO of typically 1-2 minutes.
Amazon Aurora Global Database: replicates data across multiple AWS Regions with typical lag under 1 second. This is designed for DR and also for low-latency reads in distant locations.
Amazon DynamoDB Global Tables: automatically replicate across Regions with single-digit millisecond latency. This gives both HA and DR within one service.
Amazon ElastiCache for Redis with Multi-AZ: automatically failover to a replica in a different zone. Used for caching, but the same HA principles apply.
You must also design the database for fault tolerance at the application layer. For instance, if your application connects to a single database endpoint and that endpoint fails, the app breaks. So you use a DNS endpoint like an AWS RDS endpoint that automatically points to whichever instance is healthy. Or you use an Elastic Load Balancer for read replicas.
Real-world example: an e-commerce site. They use Amazon RDS Multi-AZ for the order database. When the primary in us-east-1a fails, the standby in us-east-1b takes over within two minutes. No orders are lost because synchronous replication kept the standby identical. Separately, they also copy nightly backups to us-west-2. If a hurricane hits us-east-1, they can restore from the backup in us-west-2 – but they will lose up to 24 hours of orders (RPO = 24 hours) and it will take 6 hours to restore (RTO = 6 hours). That is the difference between HA and DR.
In DBS-C01, you will be asked to choose the right combination of services based on given RPO and RTO numbers. You will also see questions about synchronous vs asynchronous replication, Multi-AZ vs read replicas, and when to use Aurora vs RDS vs DynamoDB.
Identify RPO and RTO Requirements
The business tells you how much data loss (RPO) and downtime (RTO) are acceptable. For example, if RPO = 5 minutes, you cannot lose more than 5 minutes of transactions. This step defines which AWS service configurations are viable.
Choose Between HA and DR or Both
If RTO is under 5 minutes, you need HA inside a region (Multi-AZ). If the risk is a region failure, you need DR across regions. Often you need both, which means combining Multi-AZ with cross-Region replicas or backups.
Select the Right AWS Service
Compare Amazon RDS Multi-AZ, Aurora, DynamoDB Global Tables, and ElastiCache Redis. Each has different replication modes (synchronous vs asynchronous), failover behaviour, and cost. Pick the one that matches your RPO/RTO numbers.
Configure Replication and Failover Settings
For RDS Multi-AZ, you simply enable it during creation. For Aurora, you create an Aurora Global Database. For DynamoDB, you enable Global Tables. You may also need to set up DNS endpoints with health checks so the application automatically connects to the healthy instance.
Write and Test the Disaster Recovery Runbook
Document every step: how to detect failure, how to promote standby, how to update DNS, and how to restore from backup. Test this process quarterly. Without testing, you will discover missing steps or misconfigurations only during a real crisis.
Monitor and Tune Continuously
Set up Amazon CloudWatch alarms for replication lag, failover status, and performance. Review RPO compliance monthly. Update the runbook when application changes affect database connection logic.
An IT professional tasked with designing a database for a SaaS company that sells project management software. The company has 50,000 active users and processes thousands of transactions per hour. The CEO demands that the service must never go down for more than 5 minutes (RTO = 5 minutes) and can lose at most 1 second of data (RPO = 1 second). They use Amazon Aurora because it provides synchronous replication across three Availability Zones by default.
Step one: The professional evaluates the current setup. The database is a single Aurora cluster in us-east-1. That is a single region. If the entire region fails, the app dies. So they must add cross-Region DR.
Step two: They create an Aurora Global Database. This sets up a secondary cluster in us-west-2. Data replicates asynchronously from the primary to the secondary – typical lag is under 1 second. This meets the RPO of 1 second because if the primary fails, the secondary will have all data up to about 1 second before the failure.
Step three: They configure an Aurora Auto Scaling policy for read replicas. This ensures that during a spike in traffic, read queries are handled by replicas, keeping the primary from being overloaded. This is not for HA but for performance resilience.
Step four: They write a disaster recovery runbook. The runbook details exactly what happens when a region failure is detected. The steps include:
Verify the failure using Amazon CloudWatch alarms.
Promote the secondary Aurora cluster in us-west-2 to primary. This takes about 2-3 minutes.
Update the application’s DNS endpoint to point to the new primary.
Notify the operations team via Slack.
Step five: They test the DR procedure quarterly. During one test, they discover that the application had hard-coded the old endpoint in configuration files. They fixed that by switching to an Amazon Route 53 endpoint with health checks. Now the app automatically uses the healthy database.
Step six: They also set up automated backups with a retention period of 35 days. These backups are cross-Region copied to us-west-2. That gives them an additional safety net: if both regions somehow become corrupt, they can restore from a snapshot from 6 hours ago.
What the IT professional does daily:
Monitors replication lag using Amazon CloudWatch metrics.
Reviews RTO and RPO reports.
Updates the disaster recovery runbook when application changes happen.
Attends weekly meetings to discuss incident history and plan improvements.
This real-world scenario shows that designing for HA and DR is not a one-time setup. It is an ongoing process of monitoring, testing, and iterating.
The DBS-C01 exam loves to test your ability to differentiate between high availability and disaster recovery concepts, and to match specific AWS services to given RPO and RTO requirements. You can expect at least 5-8 questions directly on this objective.
Key question patterns:
Scenario questions: They describe a business requirement (e.g., maximum 15 minutes downtime, zero data loss) and ask which service configuration meets it. The correct answer usually involves Multi-AZ for HA or cross-Region replication for DR.
Comparison questions: Which service provides the lowest RTO? (Answer: Aurora Global Database, because failover happens in minutes, not hours). Which service provides automatic failover? (RDS Multi-AZ, Aurora, DynamoDB Global Tables).
Trap questions: They ask about Multi-AZ RDS but give options that include Read Replicas. Read Replicas do NOT provide automatic failover – they are for read scaling only. The exam wants you to know that Read Replicas are not for HA.
True/False style: “An RDS Multi-AZ deployment provides automatic failover in under 5 minutes.” True.
Specific concepts they love to test:
Multi-AZ vs Multi-Region: Multi-AZ is for HA within a region. Multi-Region is for DR across regions.
Synchronous vs Asynchronous replication: Synchronous (Multi-AZ) guarantees zero data loss but adds latency. Asynchronous (cross-Region replicas) may lose a few seconds of data but works across long distances.
Amazon Aurora Replica vs RDS Read Replica: Aurora replicas can serve as failover targets (up to 15 replicas). RDS Read Replicas do not support automatic failover.
DynamoDB Global Tables vs DynamoDB DAX: Global Tables replicate across Regions. DAX is only a caching layer in one region.
Amazon ElastiCache for Redis: Multi-AZ replication groups provide automatic failover, but ElastiCache is not a relational database – they might include it as a distractor.
Common traps to watch for:
They ask about “Multi-AZ” but write “Multi-region” in the options.
They describe a scenario requiring RTO of 1 minute but offer backup and restore as an option – restore takes hours.
They use the phrase “eventual consistency” – this applies to DynamoDB Global Tables but not to RDS Multi-AZ (which is strongly consistent).
They mention “snapshot” when the requirement is near-zero data loss – snapshots are point-in-time, not continuous.
Memorise these definitions:
RPO (Recovery Point Objective): Maximum acceptable data loss measured in time.
RTO (Recovery Time Objective): Maximum acceptable downtime measured in time.
HA (High Availability): System stays up despite component failures.
DR (Disaster Recovery): Plan to recover after a catastrophic event.
Multi-AZ: Multiple Availability Zones in one Region.
Cross-Region: Multiple AWS Regions.
Failover: Automatic switching to a standby component.
Replica: A copy of the database that can serve reads and, in some cases, become the primary.
The exam will also test your understanding of AWS service limits. For example, RDS Multi-AZ does not work with SQL Server Mirroring – you must use the AWS managed Multi-AZ feature. Aurora automatically handles replication, so you do not need to configure it manually.
Finally, be prepared for questions that ask you to recommend a solution based on cost. Multi-AZ RDS costs twice as much as single-AZ because you pay for two instances. Aurora includes storage replication for free but requires a minimum of one instance per region. DynamoDB Global Tables charge for replication traffic. The exam expects you to weigh cost against requirements.
High availability uses synchronous replication within one region to survive server or zone failures with minimal downtime.
Disaster recovery uses asynchronous replication or backups across regions to survive a full region outage.
Recovery Point Objective (RPO) measures how much data you can afford to lose, and Recovery Time Objective (RTO) measures how long you can afford to be down.
Amazon RDS Multi-AZ provides automatic failover to a standby in a different Availability Zone but does not serve read traffic.
Amazon Aurora automatically replicates data across three Availability Zones and supports up to 15 Aurora Replicas that can also be used for failover.
Amazon DynamoDB Global Tables replicate data across multiple AWS Regions with single-digit millisecond latency for both reads and writes.
Manual snapshots are not sufficient for disaster recovery because restoring a snapshot can take hours, exceeding low RTO requirements.
Cross-Region read replicas in RDS are asynchronous and can be promoted to a standalone database, but they do not provide automatic failover.
Always match the AWS service to the required RPO and RTO: near-zero RPO requires synchronous replication, while higher RPO allows cheaper asynchronous options.
Testing your disaster recovery plan regularly is mandatory – untested plans fail when you need them most.
These come up on the exam all the time. Here's how to tell them apart.
Synchronous Replication
Data is written to both primary and replica before confirming the write to the user.
Guarantees zero data loss (RPO = 0).
Adds latency because you wait for both writes to complete.
Asynchronous Replication
Data is written to the primary first, then replicated later.
May lose a few seconds or minutes of data (RPO > 0).
Lower latency because the user does not wait for the replica.
Multi-AZ RDS
Creates a single standby replica in another Availability Zone.
Standby does not serve read traffic.
Failover takes 1–2 minutes and is automatic.
Aurora Multi-AZ
Replicates data across three Availability Zones by default.
All replicas (up to 15) can serve read traffic.
Failover is automatic and typically under 30 seconds.
Cross-Region Read Replica (RDS)
Asynchronous replication with lag of seconds to minutes.
Requires manual promotion to become the primary.
Supports up to 5 read replicas per region.
Aurora Global Database
Asynchronous replication with typical lag under 1 second.
Can be promoted to primary in minutes with a single API call.
Supports up to 16 secondary regions.
Manual Snapshot Backup
Takes a one-time copy of the database.
Restoring can take hours depending on size.
RPO can be up to 24 hours if you only snapshot daily.
Continuous Backup (Point-in-Time Restore)
AWS automatically backs up transaction logs every 5 minutes.
Restore to any point within seconds within the retention period.
RPO is typically 5 minutes.
Mistake
High availability and disaster recovery are the same thing.
Correct
High availability keeps the system running during small, localised failures within one region. Disaster recovery is about recovering after a whole region fails. You need both.
The terms sound similar and both aim to prevent downtime, so beginners lump them together.
Mistake
Multi-AZ RDS automatically scales read traffic.
Correct
Multi-AZ RDS creates a standby replica for failover only. It does not serve read traffic. To scale reads, you need separate Read Replicas.
Beginners see 'replica' and assume it can handle reads, not realising Multi-AZ replica is a passive standby.
Mistake
Taking a manual snapshot every day is enough for disaster recovery.
Correct
Snapshots are point-in-time backups that can take hours to restore. For true DR with low RTO, you need a running standby in another Region, not just a snapshot.
Many people think backups equal DR because they see 'backup' as the safety net, ignoring the recovery time.
Mistake
Aurora Global Database provides automatic failover with zero data loss.
Correct
Aurora Global Database replicates asynchronously, so you may lose up to a second of data (not zero). For zero data loss, you need synchronous replication within a single region (Aurora Multi-AZ).
The word 'Global' sounds more resilient, but the asynchronous nature introduces a data loss trade-off.
Mistake
You can use a Read Replica as a failover target for RDS.
Correct
RDS Read Replicas do not support automatic failover. Only Multi-AZ deployments or Aurora replicas can become the primary automatically.
The term 'replica' suggests a backup role, but AWS explicitly separates read scaling from failover.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
Multi-AZ creates a standby replica in another Availability Zone for automatic failover. Read Replicas are separate copies that handle read traffic but do not provide automatic failover.
Yes, you can use cross-Region Read Replicas for DR by promoting them. However, there is no automatic failover – you must manually promote and redirect traffic.
RDS Multi-AZ uses synchronous replication to a standby that does not serve reads. Aurora Multi-AZ replicates across three Availability Zones automatically, and all replicas can serve read traffic and be used for failover.
Yes, it replicates data across multiple Regions. If one Region fails, reads and writes automatically go to another Region with no manual intervention.
It means zero data loss is required. You must use synchronous replication, like Amazon RDS Multi-AZ with synchronous commit, or Aurora’s Multi-AZ mode. Cross-Region replicas are asynchronous and cannot achieve zero RPO.
No, because restoring from a backup in S3 typically takes hours. For disaster recovery with low RTO, you need a running standby in another Region.
Up to 15 Aurora Replicas. They can all serve read traffic and can be promoted to the primary during a failover.
You've finished Database High Availability and Disaster Recovery Design. Continue through the DBS-C01 study guide to build a complete picture of the exam.
Done with this chapter?