Amazon SOA-C02: 高可用性、容错与灾难恢复 — 学习指南

属于 AWS SysOps Administrator Associate SOA-C02 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.

该领域涵盖了如何设计系统,以确保在组件、服务或整个区域发生故障时,系统仍能保持可用和可恢复。它涵盖了备份和快照策略、复制和故障转移模式,以及为满足业务的 RTO(恢复时间目标)和 RPO(恢复点目标)而需要的操作测试。其运营重要性非常高:服务中断和数据丢失会直接影响 SLA、收入和合规性。高效的设计需要在成本、复杂性以及可接受的数据丢失和停机风险之间取得平衡。

备份策略、快照和保留

备份必须是自动化的,与应用程序状态保持一致,并根据策略进行保留。使用 AWS Backup 集中管理计划、保留和生命周期规则(创建带有存储库的备份计划,分配资源 ID ARN 或标签)。对于 EBS 卷,使用 Data Lifecycle Manager (DLM) 来计划快照(通过控制台或 aws dlm create-lifecycle-policy);CLI 创建快照的示例:aws ec2 create-snapshot --volume-id vol-0123456789abcdef0 --description "pre-upgrade"。对于 RDS,使用自动快照或手动数据库快照(aws rds create-db-snapshot --db-instance-identifier mydb --db-snapshot-identifier mydb-snap-YYYYMMDD)。启用 RDS 自动备份以实现时间点恢复;启用增强监控和快照保留以满足保留 SLA。

保留、不可变性和跨区域副本是关键决策:

务必捕获应用程序一致性状态:对于 EC2,在创建快照前使用 AWS Systems Manager Run Command 或脚本来刷新/锁定文件系统;对于数据库,优先使用引擎原生快照(RDS/Aurora)或逻辑备份(mysqldump、pg_dump)以进行时间点验证。

跨区域复制和灾难恢复模式

跨区域策略可以减少区域性故障带来的爆炸半径(影响范围)。S3 跨区域复制 (CRR) 需要启用版本控制、一个 IAM 复制角色以及一个复制配置(通过控制台或 aws s3api put-bucket-replication --bucket src --replication-configuration file://replication.json)。RDS 支持跨区域只读副本(aws rds create-db-instance-read-replica),而 Aurora Global Database 则支持具有受控故障转移的低延迟跨区域读/写架构。DynamoDB Global Tables 可在区域间异步复制数据,适用于需要考虑最终一致性的多区域读取场景。

根据 RTO/RPO 和成本选择灾难恢复(DR)模式:

考虑复制一致性:同步复制可将 RPO 降至最低,但会增加延迟,且可能不支持跨区域;大多数跨区域选项是异步的,会引入复制延迟,这决定了实际可行的 RPO。

多可用区和多区域架构选择

多可用区(Multi-AZ)是实现区域内高可用的默认方式;它为许多托管服务提供自动故障转移,RTO 极小。RDS Multi-AZ 和 Aurora 会跨可用区复制存储——故障转移通常是自动的,并使用 DNS 切换。对于 EC2,将实例放置在多个可用区中,并置于 Application Load Balancer 和 Auto Scaling 组之后;使用跨可用区健康检查来检测和替换不健康的目标。

多区域(Multi-Region)增强了抵御区域级故障的弹性,但也增加了复杂性(数据复制、全局路由、合规性)。决策标准:

设计注意事项:

故障切换机制(Route53 健康检查,自动化)

自动化故障切换使用健康检查、路由策略和编排。Route53 支持健康检查以及故障切换/加权/延迟路由。配置 Route53 健康检查以探测端点(HTTP、TCP 或 CloudWatch 警报),并配置一个故障切换记录集,以便在主资源失败时切换到备用资源。CLI 更新示例:aws route53 change-resource-record-sets –hosted-zone-id Z123456 –change-batch file://changes.json。使用 CloudWatch 警报(警报操作触发 AWS Lambda)来为非 DNS 操作编排故障切换。

集成负载均衡器和 Auto Scaling:ALB/NLB 目标组的健康检查会移除不健康的实例,而 Auto Scaling 会自动替换它们。对于数据库故障切换,依赖服务级别的机制:RDS Multi-AZ 或 Aurora 自动故障切换;对于跨区域提升,则使用只读副本或 Aurora Global DB 控制的提升。

两种操作模式:

RTO/RPO 规划、测试和验证

RTO 是最大可接受的停机时间;RPO 是最大可接受的数据丢失量。为每个工作负载定义可衡量的目标,并据此调整架构选择:同步复制可降低 RPO,但可能会增加延迟;异步复制成本较低,但会增加潜在的数据丢失窗口。将业务 SLA 转化为保留策略和复制频率:RPO = 复制延迟 + 备份间隔;RTO = 检测时间 + 故障切换编排时间 + 恢复验证时间。

测试至关重要:定期运行灾难恢复 (DR) 演练,以验证恢复过程、DNS 故障切换和应用程序的完整性。通过将备份恢复到隔离的账户或 VPC 中来验证备份(使用 CloudFormation/CloudFormation StackSets 或 Terraform 自动化重建过程)。在测试期间捕获指标(DNS 传播时间、恢复点、应用级检查),并迭代优化自动化流程以降低 RTO。

常见陷阱和决策标准

实际问题:用例场景

AcmePayments 在 us-east-1 中运行一个符合 PCI 范围的交易 API,并要求在区域性中断期间,核心交易数据的 RTO 小于 5 分钟,RPO 接近于零。

  1. 通过选择 Aurora Global Database,在 us-east-1 中设置可写主数据库,在 eu-west-1 中设置备用数据库以实现快速跨区域复制,从而定义 RTO=5 分钟和 RPO≈0。
  2. 为区域内高可用性 (HA) 启用同步/按区域的 Multi-AZ(Aurora 副本 + Multi-AZ),并通过 Route53 发布 DNS,配置健康检查和低 TTL (60s) 以实现故障切换路由。
  3. 使用跨区域自动快照和 AWS Backup 备份库副本作为额外的不可变副本,并配置保留策略和备份库锁定。
  4. 使用 Step Functions 和 Lambda 自动化故障切换手册,以验证副本提升、更新 Route53 记录 (aws route53 change-resource-record-sets)、运行冒烟测试,并在检测到故障时回滚。
  5. 安排季度性灾难恢复 (DR) 演练,将备份恢复到隔离的 VPC 中,并测量实际的 RTO 和 RPO,然后优化自动化和扩展策略。

基本原理:将低延迟的全球数据库产品 (Aurora Global) 与基于 DNS 的路由和自动化编排相结合,可以在满足严格的 RTO/RPO 要求的同时,保持操作步骤的可重复性和可测试性。定期验证可确保备份和副本确实是可恢复的。


监控、日志与修复 · 所有领域 · 部署、预置与自动化

练习这些题目 → · 在 ExamRoll.io 上限时练习 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通过考试 →

浏览 Amazon →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品