2025: us-east-1 sập 4 giờ, hàng ngàn app offline. Team có DR plan – failover 15 phút. Team không có – đợi AWS fix.
Mình từng thấy team không có DR plan – khi region sập, họ mất 8 giờ để recover thủ công. Cái giá của DR plan không phải là tiền, mà là kỷ luật test nó mỗi quý.
RPO/RTO – hai con số bạn phải thống nhất với business
Bốn chiến lược DR, từ rẻ đến đắt
| Strategy | RPO | RTO | Cost vs Baseline |
|---|---|---|---|
| Backup & Restore | Giờ-ngày | Giờ-ngày | 1x |
| Pilot Light | Phút | <30 phút | 1.2-1.5x |
| Warm Standby | Giây | <5 phút | 1.5-2x |
| Active-Active | Gần 0 (near zero) | <1 phút | 2x+ |
- RPO (Recovery Point Objective) = Mất bao nhiêu dữ liệu?
- RTO (Recovery Time Objective) = Mất bao lâu để recover?
# RDS cross-region snapshot
aws rds copy-db-snapshot --source-db-snapshot-identifier arn:aws:rds:ap-southeast-1:...:myapp-db-daily \
--target-db-snapshot-identifier myapp-db-dr --source-region ap-southeast-1 --region us-east-1
# S3 Cross-Region Replication (Bài 7)
# DynamoDB global table (multi-region active-active)
## DR Runbook -- thứ bạn không muốn dùng nhưng phải có
1. Verify outage (CloudWatch dashboard + AWS Health)
2. Decision: outage > RTO? → TRIGGER FAILOVER
3. Promote DR: promote RDS replica → scale ECS → verify health
4. **Data consistency check: verify replication lag (RDS replica), data consistency (DynamoDB global table eventual consistency), và validation dữ liệu trước khi chuyển DNS**
5. Update DNS: Route 53 failover → DR region
6. Communicate: status page + Slack #incidents
**Game day mỗi quý:** test DR plan. Không test -- DR plan chỉ là giấy.
> **Ghi chú failback:** DR plan nên bao gồm cả failback process -- sau khi primary region khôi phục, cần có strategy để chuyển workload về primary (promote ngược lại, verify data sync, cut over DNS). Failback thường phức tạp và rủi ro hơn failover, cần test riêng.
DR plan không phải để bạn tự tin khi region sập, nó để bạn biết chính xác mình sẽ mất bao nhiêu dữ liệu và bao lâu để quay lại. Nếu chưa có, hôm nay là ngày tốt nhất để bắt đầu.
Bài sau: [Phần 41: DynamoDB nâng cao -- single-table design](/posts/aws/41-dynamodb-nang-cao-single-table-design/)