试点灯与温备
在第二个 Region 中保持工作负载的最小核心运行(试点灯),或保留可随时扩展的缩减版完整副本(温备)
试点灯与温备 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
超越 Backup and Restore
当您的 RTO 要求严格到不能接受数小时时,Backup and Restore 就不够用了。接下来的两个 DR 层级——Pilot Light 和 Warm Standby——始终在 DR 区域运行部分或全部基础设施,从而显著缩短恢复时间。这两种策略都要求持续维护 DR 环境,并在灾难期间使用 Route 53 health-check failover 重定向流量。两者的区别在于 DR 环境中实际运行的资源规模。
Pilot Light:核心资源持续运行
在 Pilot Light 策略中,您只让系统中关键的核心部分在 DR 区域运行,通常仅包括持续复制的数据库层。应用服务器不会运行;相反,您会维护预先构建的 AMI、启动模板或基础设施即代码,以便快速启动这些服务器。您可以将其想象成燃气设备上的引火火焰:火焰很小,但需要时可在几分钟内点燃完整火焰。RTO 通常为 30-60 分钟。
# Pilot Light: what runs 24/7 in DR region
# - RDS Read Replica (receiving continuous replication)
# - Minimal VPC/networking (no extra cost if no data transfer)
# - Route 53 failover record (inactive, health check pointing to primary)
# What is prepared but NOT running:
# - EC2 launch template pointing to DR AMI
# - ALB (can be created in minutes)
# - ASG with desired=0, can scale to 10 on demandPilot Light 故障转移步骤
当主区域发生故障并触发 Pilot Light 故障转移时:Step 1 — 将 DR 区域中的 RDS Read Replica 提升为独立的主数据库。Step 2 — 从预先构建的 AMI 或启动模板启动 EC2 实例。Step 3 — 创建或激活 Application Load Balancer,并注册新的 EC2 实例。Step 4 — 更新应用配置,使其指向已提升数据库的终端节点。Step 5 — Route 53 health check failover 完成 DNS 切换。总时间:30-60 分钟。
# Step 1: Promote RDS Read Replica
aws rds promote-read-replica \
--db-instance-identifier mydb-dr-replica \
--region us-west-2
# Step 2: Scale up ASG in DR region
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name app-asg-dr \
--min-size 2 \
--desired-capacity 4 \
--region us-west-2
# Step 3: Route 53 failover happens automatically
# via health check detecting primary region failureWarm Standby:功能完整但规模缩小
在 Warm Standby 策略中,生产环境的完整但缩小规模的版本会持续运行在 DR 区域。所有应用层都处于活动状态,包括 Web 服务器、应用服务器和数据库,但容量较低(例如使用 2 个实例而不是 20 个)。发生故障转移时,您可以扩展 DR 环境,使其满足生产负载。Route 53 会通过 health-check failover 自动切换流量。RTO 通常低于 15 分钟。Warm Standby 是业务关键型应用最常用的 DR 层级。
# Production vs Warm Standby capacity:
# Tier Production DR Standby
# Web servers 20 EC2 (c5.xl) 2 EC2 (c5.xl)
# App servers 10 EC2 (m5.xl) 2 EC2 (m5.xl)
# Database RDS db.r5.2xl RDS Read Replica (db.r5.xl)
# Cache Redis r6g.xl Redis r6g.medium
#
# Cost: DR standby ~15% of production cost用于 Warm Standby 的 Aurora Global Database
Aurora Global Database 是 Warm Standby DR 的理想数据库技术。辅助区域中的集群始终运行并持续接收复制(延迟小于 1 秒),而且可以在 1 分钟内提升为主数据库,速度远快于提升 RDS Read Replica(后者需要停止复制并应用剩余延迟)。因此,当您的 RTO 要求以分钟计而不是几十分钟时,Aurora Global Database 是推荐选择。
# Promote Aurora Global DB secondary to primary
# (during DR failover)
aws rds failover-global-cluster \
--global-cluster-identifier my-global-db \
--target-db-cluster-identifier my-aurora-cluster-us-west-2
# Aurora handles promotion automatically
# Typical promotion time: 1-2 minutes
# vs RDS Read Replica promotion: 10-30 minutesRoute 53 自动故障转移配置
Pilot Light 和 Warm Standby 都依赖 Route 53 failover routing 来自动重定向流量。请配置一个指向生产区域 ALB 或终端节点的 Primary 记录,并为其附加运行状况检查。再配置一个指向 DR 区域终端节点的 Secondary 记录。当 Route 53 检测到主记录的运行状况检查在达到配置的阈值后仍然失败时,它会停止返回主记录,只提供辅助记录,整个过程会在 DNS TTL 周期内完成。
# Primary record (production)
aws route53 change-resource-record-sets \
--hosted-zone-id ZXXX \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"Failover": "PRIMARY",
"SetIdentifier": "primary",
"HealthCheckId": "hc-us-east-1",
"AliasTarget": {"DNSName": "alb-prod.us-east-1.elb.amazonaws.com","EvaluateTargetHealth": true}
}
}]
}'预热 DR 环境
要让 Warm Standby 达到其 RTO 目标,DR 环境必须经过预热:完成配置并经过测试,以便故障转移期间只需执行扩容操作。这意味着:数据库连接已经建立并缓存,应用配置文件引用 DR 区域的终端节点,EC2 实例已在 ALB 后提供服务(即使实例数量较少),并且运行状况检查均已通过。请每月进行 DR 演练,模拟故障转移,以确保环境始终与生产配置保持同步。
# Validate DR warm standby health
# 1. Check DR ALB target health
aws elbv2 describe-target-health \
--target-group-arn arn:aws:elasticloadbalancing:us-west-2:123:targetgroup/app-dr/xyz
# 2. Check Aurora Global DB secondary
aws rds describe-global-clusters \
--global-cluster-identifier my-global-db
# 3. Verify Route 53 health checks
aws route53 get-health-check-status \
--health-check-id hc-us-west-2使用基础设施即代码保持 DR 一致性
使 DR 环境与生产环境保持同步是最困难的运维挑战。如果您手动配置生产环境,却忘记更新 DR 环境,那么在真正发生灾难时,DR 环境可能无法正常工作。解决方案是使用基础设施即代码(IaC),将相同的模板部署到两个区域。您可以使用 AWS CloudFormation StackSets 或 Terraform with multiple workspaces,从单一代码库将完全相同的基础设施部署到两个区域。这可以消除配置漂移。
# CloudFormation StackSet: deploy to multiple regions
aws cloudformation create-stack-set \
--stack-set-name my-app-infrastructure \
--template-url https://s3.amazonaws.com/mybucket/template.yaml
# Deploy to DR region
aws cloudformation create-stack-instances \
--stack-set-name my-app-infrastructure \
--accounts 123456789012 \
--regions us-west-2 \
--parameter-overrides \
ParameterKey=DesiredCapacity,ParameterValue=2成本比较:Pilot Light 与 Warm Standby
两种策略的成本差异很大。Pilot Light 只需支付数据库副本的费用(通常为主数据库成本的 50-100%),以及 DR 区域中的少量网络成本。应用服务器处于关闭状态,因此不会产生 EC2 成本。Warm Standby 还需要承担运行缩小规模 EC2 实例、ALB 以及可能的较小缓存集群的成本,通常为完整生产环境成本的 15-30%。需要考虑的问题是:Warm Standby 更快的 RTO 是否值得持续承担更高的成本。
# Example monthly cost comparison:
# Production environment: $10,000/month
# Pilot Light DR:
# RDS Read Replica: $500/month
# Minimal networking: $50/month
# Total: $550/month (~5.5% of production)
# Warm Standby DR:
# RDS Read Replica: $500/month
# 2x EC2 instances: $400/month
# ALB + networking: $200/month
# Total: $1,100/month (~11% of production)回切:返回 Primary
Primary region 恢复后,您需要制定回切计划以返回该区域。回切通常是 DR 中最棘手的环节:在中断期间,DR region 可能处理了需要同步回 Primary 的新数据。对于数据库,您可能需要设置反向复制,或将数据从 DR 重新同步到 Primary。对于 Route 53,您需要恢复带有其健康检查的 Primary 记录。请始终像规划和测试 failover 一样,认真规划和测试回切流程。
# Failback procedure steps:
# 1. Restore primary region infrastructure
# 2. Set up replication from DR to primary
# (reverse replication to sync new data)
# 3. Verify data consistency
# 4. Re-enable primary Route 53 health check
# 5. Gradually shift traffic back (weighted routing)
# Route 53 weights: Primary=10%, DR=90%
# Primary=50%, DR=50%
# Primary=100%, DR=0%
# 6. Decommission DR region back to standby capacity何时选择 Pilot Light 与 Warm Standby
在以下情况下选择 Pilot Light:您的 RTO 允许 30–60 分钟的恢复时间,并且希望尽量降低 DR 成本。主要风险在于发生灾难时,需要在压力下启动并配置应用程序服务器。以下情况下选择 Warm Standby:您的 RTO 要求在 15 分钟内恢复;您的应用程序足够复杂,在灾难期间全新启动存在风险;或者您对客户的 SLA 承诺要求更快恢复。对于大多数中等关键性的生产工作负载,Warm Standby 是较为理想的平衡方案。
# Decision guide:
# RTO > 1 hour: Backup and Restore
# RTO 30-60 min: Pilot Light
# RTO 5-15 min: Warm Standby
# RTO < 5 min: Multi-Site Active-Active
# Additional factors for Warm Standby:
# - Complex application startup procedures
# - Contractual SLA commitments to customers
# - High revenue loss per minute of downtime
# - Regulatory requirements for fast recovery快速检查
测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。
课程回顾
本课您学到了:Pilot Light 只在 DR 中保持数据库运行,并在 failover 期间启动应用程序服务器;Warm Standby 运行一个完整但缩减规模的环境,并在 failover 期间扩展;Infrastructure as Code 可防止 Primary 和 DR 环境之间发生配置漂移。请始终同时规划和测试回切流程与 failover 流程。接下来,我们将学习使用 DynamoDB Global Tables 和 Route 53 实现多站点 Active-Active。
常见问题解答
「试点灯与温备」课时是免费的吗?
是的 — 「试点灯与温备」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「试点灯与温备」这节课中我会学到什么?
在第二个 Region 中保持工作负载的最小核心运行(试点灯),或保留可随时扩展的缩减版完整副本(温备) 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「试点灯与温备」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。