第008题 - sap
法国上空闪耀的“光河”STEVE
题目翻译 (Question Translation)
English: A company has a multi-tier web application that runs on a fleet of Amazon EC2 instances behind an Application Load Balancer (ALB). The instances are in an Auto Scaling group. The ALB and the Auto Scaling group are replicated in a backup AWS Region. The minimum value and the maximum value for the Auto Scaling group are set to zero. An Amazon RDS Multi-AZ DB instance stores the application’s data. The DB instance has a read replica in the backup Region.
The application presents an endpoint to end users by using an Amazon Route 53 record. The company needs to reduce its RTO to less than 15 minutes by giving the application the ability to automatically fail over to the backup Region. The company does not have a large enough budget for an active-active strategy.
What should a solutions architect recommend to meet these requirements?
中文翻译: 一家公司有一个多层 Web 应用程序,运行在位于应用程序负载均衡器(ALB)后的一组 Amazon EC2 实例上。实例配置在一个 Auto Scaling 组中。ALB 和 Auto Scaling 组在备用 AWS 区域中也进行了复制,但备用区域中的 Auto Scaling 组的最小值和最大值都设置为零。应用程序的数据存储在 Amazon RDS Multi-AZ 数据库实例中,该数据库实例在备用区域中有一个只读副本。
应用程序通过使用 Amazon Route 53 记录向终端用户提供一个访问端点。公司需要将 RTO(恢复时间目标)减少到小于 15 分钟,并通过自动故障切换到备用区域实现这一目标。公司没有足够的预算支持“主动-主动”策略。
解决方案架构师应该推荐哪种方法来满足这些需求?
选项分析 (Answer Analysis)
选项 A
Reconfigure the application’s Route 53 record with a latency-based routing policy that load balances traffic between the two ALBs. Create an AWS Lambda function in the backup Region to promote the read replica and modify the Auto Scaling group values. Create an Amazon CloudWatch alarm that is based on the HTTPCode_Target_5XX_Count metric for the ALB in the primary Region. Configure the CloudWatch alarm to invoke the Lambda function.
分析:
- 故障切换机制:
- Route 53 配置为基于延迟的路由策略,同时负载均衡两个区域的 ALB。这种配置本质上是一种“主动-主动”策略,不符合题目要求的“主动-被动”架构。
- Lambda 在故障切换时将只读副本提升为主实例,同时修改 Auto Scaling 的值。这是正确的做法,可实现备用区域的快速恢复。
- 问题: 基于延迟的路由策略并不适合此场景,因为题目要求优先使用主区域,而备用区域仅在故障后切换。
此选项不符合题目中对“主动-被动”架构的要求。
选项 B
Create an AWS Lambda function in the backup Region to promote the read replica and modify the Auto Scaling group values. Configure Route 53 with a health check that monitors the web application and sends an Amazon Simple Notification Service (Amazon SNS) notification to the Lambda function when the health check status is unhealthy. Update the application’s Route 53 record with a failover policy that routes traffic to the ALB in the backup Region when a health check failure occurs.
分析:
- 故障切换机制:
- Route 53 配置为故障切换策略(Failover Policy),仅在主区域健康检查失败时将流量路由到备用区域的 ALB。符合“主动-被动”架构的要求。
- Lambda 在健康检查失败时被触发,将只读副本提升为主实例,同时调整 Auto Scaling 组的值。这确保了备用区域能快速上线。
- RTO 满足性: 通过健康检查触发自动故障切换,RTO 可以减少到 15 分钟以下。
- 成本: 无需持续运行备用区域的资源,符合预算限制。
此选项完全符合题目需求,是最佳答案。
选项 C
Configure the Auto Scaling group in the backup Region to have the same values as the Auto Scaling group in the primary Region. Reconfigure the application’s Route 53 record with a latency-based routing policy that load balances traffic between the two ALBs. Remove the read replica. Replace the read replica with a standalone RDS DB instance. Configure Cross-Region Replication between the RDS DB instances by using snapshots and Amazon S3.
分析:
- 故障切换机制:
- 配置 Auto Scaling 组以在备用区域保持与主区域一致的设置,但这意味着备用区域需要持续运行(“主动-主动”架构),与题目预算限制不符。
- 基于延迟的路由策略不适合“主动-被动”架构。
- RTO 问题: 由于移除了只读副本并采用基于快照的跨区域复制,在故障切换时会显著增加 RTO(远超 15 分钟)。
- 问题: 此选项操作复杂性高,且无法满足预算和 RTO 要求。
此选项不符合预算和 RTO 要求。
选项 D
Configure an endpoint in AWS Global Accelerator with the two ALBs as equal weighted targets. Create an AWS Lambda function in the backup Region to promote the read replica and modify the Auto Scaling group values. Create an Amazon CloudWatch alarm that is based on the HTTPCode_Target_5XX_Count metric for the ALB in the primary Region. Configure the CloudWatch alarm to invoke the Lambda function.
分析:
- 故障切换机制:
- AWS Global Accelerator 可提供全局统一的终端点,但“均等权重(equal weighted)”配置意味着流量会被负载均衡到两个区域,与题目“主动-被动”的要求不符。
- 虽然 Lambda 可在故障发生时促进只读副本,但 Global Accelerator 的均等流量分配会导致不必要的复杂性和成本。
- 问题: 配置复杂,且无法确保备用区域资源处于非活跃状态,不符合预算要求。
此选项不符合“主动-被动”架构和预算限制。
最佳答案 (Correct Answer)
答案:B
关键原因:
- 完全符合“主动-被动”架构要求:
- 主区域优先,备用区域仅在健康检查失败后启动。
- 使用 Route 53 的故障切换策略满足业务连续性要求。
- 低成本设计:
- 备用区域资源(Auto Scaling 和只读副本)在非故障时保持最小化状态,避免不必要的开销。
- 自动化切换和满足 RTO:
- Route 53 和 CloudWatch 实现自动触发,RTO 小于 15 分钟。
详细解决方案 (Detailed Solution)
- Route 53 故障切换策略:
- 配置主区域 ALB 为主记录(Primary),备用区域 ALB 为次记录(Secondary)。
- 添加健康检查监控主区域的 ALB。
- 自动化故障切换:
- 使用 CloudWatch 和 SNS 监控健康状况,触发 Lambda 函数。
- Lambda 提升只读副本为主实例,并调整 Auto Scaling 组。
- 备用区域配置:
- Auto Scaling 组初始值为零,避免不必要的成本。
- 在故障时动态启动备用区域资源。
总结 (Summary)
选项 B 提供了一个完全自动化且高效的故障切换解决方案,符合“主动-被动”架构和预算限制,是正确答案。