1. 课程导入与全局认知

在开始动手搭建任何跨区域架构之前,我们需要先建立一套共同的判断标准:什么样的系统才算"高可用",什么样的系统才算"能容灾",以及我们凭什么说它达到了目标。很多团队在灾备项目上投入巨大,却因为一开始没有把目标量化清楚,最终做出来的架构既昂贵又无法通过真实故障的检验。本节的任务,就是把业务连续性的语言翻译成 AWS 架构的语言。

一、高可用与灾备不是同一件事

高可用(High Availability, HA)关注的是"系统在正常运行期间尽量不中断",它的典型手段是冗余、健康检查、自动故障转移,目标是把故障恢复时间压缩到秒级或分钟级,并且对用户几乎无感。灾备(Disaster Recovery, DR)关注的是"当一整个可用区甚至一整个区域失效时,业务还能不能恢复",它允许更长的中断时间,但要求数据不丢或只丢很少一部分。

两者的关键差别在于故障域(Failure Domain)的层级。单可用区内部署多台实例,只能抵御单机故障;跨可用区部署,可以抵御机房级故障;而跨区域部署,才能抵御区域级灾难,例如大范围电力中断、区域网络隔离或区域性服务异常。本课程讨论的重点,就是最后这一层——多区域。

二、用 RTO 与 RPO 把目标变成数字

业务连续性有两个最核心的指标,它们决定了架构的复杂度和成本:

  • RTO(Recovery Time Objective,恢复时间目标):从故障发生到业务恢复可用的最长可接受时间。RTO 为 15 分钟,意味着架构必须能在 15 分钟内完成流量切换和数据接管。
  • RPO(Recovery Point Objective,恢复点目标):故障发生时最多可接受丢失多长时间的数据。RPO 为 5 分钟,意味着数据复制机制必须保证任意时刻两地的数据差距不超过 5 分钟。

这两个指标不是技术指标,而是业务指标。它们应当由业务方给出,再由架构师翻译成技术方案。一个常见的误区是"RTO 越短越好",实际上 RTO 从 4 小时压缩到 15 分钟,成本可能上升数倍。合理的做法是先分级:核心交易系统 RTO 15 分钟、RPO 1 分钟;报表分析系统 RTO 8 小时、RPO 1 小时。分级之后,不同系统采用不同的灾备策略,整体投入才可控。

判断标准:如果业务方说不出 RTO/RPO 的具体数字,说明业务影响分析(BIA)还没做完,此时不应直接进入架构设计阶段。

三、AWS 全球基础设施:故障域的物理基础

AWS 的全球基础设施由区域(Region)、可用区(Availability Zone, AZ)、边缘站点(Edge Location)等层级构成。区域之间在地理上相互隔离,拥有独立的电力、网络和控制系统;一个区域内通常包含 3 个或更多可用区,AZ 之间通过低延迟专用光纤互联,物理距离足以避免同一灾害同时影响两个 AZ。

理解这个层级,才能理解"多区域"到底意味着什么:跨 AZ 是同一区域内的冗余,延迟通常在毫秒级,适合做同步复制和自动故障转移;跨 Region 是地理级冗余,延迟通常在几十毫秒到数百毫秒,同步复制代价高,因此多采用异步复制。这也是为什么多区域架构中,RPO 往往由复制延迟决定,而 RTO 往往由流量切换和资源启动速度决定。

AWS 全球基础设施层级与故障域 故障域越大,冗余成本越高,可抵御的灾难级别也越高 Region A(主区域 · 如 us-east-1) AZ-a 应用实例 / 数据库主 健康检查端点 AZ-b 应用实例 / 数据库备 自动故障转移目标 同步 区域级服务 Route 53 健康检查 S3 跨区域复制源 CloudWatch 指标与告警(区域维度) Region B(灾备区域 · 如 us-west-2) AZ-c 待命应用实例 数据库只读副本 AZ-d 待命应用实例 可提升为写入节点 区域级服务 Route 53 故障转移记录 S3 复制目标桶 CloudWatch 跨区域仪表板 异步复制 RPO 决定因素 DNS 切换 RTO 决定因素 指标映射关系 RTO ← 流量切换 + 资源启动 RPO ← 数据复制延迟 成本 ← 冗余度 + 常驻资源

四、四种典型灾备策略与成本曲线

把 RTO/RPO 目标落到架构上,业界通常归纳为四种策略,按成本和恢复速度递增排列:

策略典型 RTO典型 RPO核心特征
备份与恢复(Backup & Restore)数小时~数十小时数小时仅定期备份,灾备区无常驻资源
指示灯(Pilot Light)数十分钟分钟级数据持续复制,核心服务常驻但规模最小
温备(Warm Standby)数分钟~数十分钟秒级~分钟级灾备区运行缩小版全栈,可快速扩容
多区域主动-主动(Active-Active)接近 0接近 0两区域同时承载流量,需解决数据冲突

选择哪一种,取决于业务能承受的损失与愿意支付的费用。一个实用的判断方法是:先确定 RTO/RPO 的硬性上限,再选择能满足该上限的最低成本策略,而不是反过来先选最贵的方案。

五、本课程实战项目说明

为了让知识可验证,本课程将围绕一个贯穿始终的实战项目展开:一个部署在 AWS 上的三层 Web 应用,包含 Route 53 域名解析、Application Load Balancer、EC2 应用层、RDS 数据库以及 S3 静态资源。项目分阶段推进:

  1. 第一阶段:在单区域内实现跨 AZ 高可用,验证 AZ 故障时的自动恢复能力。
  2. 第二阶段:引入跨区域数据复制与备份策略,明确 RPO 的实际表现。
  3. 第三阶段:搭建灾备区域,实现 DNS 故障转移,测量真实 RTO。
  4. 第四阶段:进行故障注入演练,用数据检验架构是否达到既定目标。
演练是灾备架构的验收环节。没有经过真实切换验证的 RTO/RPO 只是纸面数字,本课程会在后续章节中给出可执行的故障注入方法与判读依据。

在进入具体搭建之前,请先为你的业务写下两个数字:可接受的最长中断时间,以及可接受的最大数据丢失量。这两个数字将贯穿本课程的所有设计决策。