When Your Data Breaks on AWS (HA & DR Part 2): RTO, RPO, Point-in-Time Recovery, and Choosing a DR Strategy
In Part 1 , we looked at what happens when a single bad write hits your database: how Aurora Backtrack can rewind it, how idempotency stops the same request from running twice, and why a restored database quietly leaves behind the data written during the restore. Part 2 zooms out to the questions every team eventually has to answer: How much data can we afford to lose, and how long can we afford…
In Part 1, we explored the consequences of a single erroneous database write using Aurora Backtrack. We also learned how idempotency prevents the same request from executing twice, and why restoring a database after a restore preserves the data written during the process. Now, Part 2 addresses the questions every team must answer: how much data loss and downtime are acceptable?
How does DynamoDB Point-in-Time Recovery (PITR) function? Can automation detect a disaster and restore the database autonomously? Which of the four AWS disaster recovery strategies should be implemented?
Before selecting an AWS service, two crucial metrics must be determined: Recovery Point Objective (RPO) and Recovery Time Objective (RTO). RPO represents the maximum data loss tolerance, measured in time. If a database crash occurs at 12:00 PM and the RPO is 15 minutes, the system must restore data up to 11:45 AM. Anything written from 11:45 to 12:00 is considered lost.
RTO represents the maximum acceptable downtime. If the system crashes at 12:00 PM and the RTO is 4 hours, the team has until 4:00 PM to restore service. In essence, RPO looks backward at the last good copy, while RTO looks forward to the time when the system can be used again.
Business leaders determine these metrics based on the system's criticality and the organization's financial capacity. For instance, a healthcare system with vital patient data would require near-zero RPO and RTO, necessitating active databases in multiple regions at a significant cost. If the organization cannot afford such high costs, they must accept higher RPO and RTO. Missed RTO or RPO objectives during a real outage lead to SLA breaches, regulatory fines, and reputational damage.
DynamoDB Point-in-Time Recovery (PITR) is a valuable recovery tool on AWS. When enabled for a DynamoDB table, AWS continuously captures every change made to it, offering per-second granularity. This allows restoring the table to an exact state, such as October 31, 2026, at 14:35:12. The rolling recovery window lasts up to 35 days, with the oldest day falling off as each new day is added. PITR is table-specific, enabling it on critical tables while leaving less important ones unsupported to save costs.
Upon restoring with PITR, AWS creates a new table containing historical data, preserving the original table's integrity. However, certain table settings, like auto-scaling, CloudWatch alarms, tags, and TTL configurations, are not carried over to the restored table, requiring manual reapplication. While automation of restores is technically possible using CloudWatch alarms, EventBridge, and Lambda functions, it is not recommended due to the risk of inaccuracy and false positives.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.