第002题 - sap
拉斯坎帕纳斯天文台上空的波状云
题目翻译 (Question Translation)
English:
A company is providing weather data over a REST-based API to several customers. The API is hosted by Amazon API Gateway and is integrated with different AWS Lambda functions for each API operation. The company uses Amazon Route 53 for DNS and has created a resource record of weather.example.com
. The company stores data for the API in Amazon DynamoDB tables.
The company needs a solution that will give the API the ability to fail over to a different AWS Region.
Which solution will meet these requirements?
中文翻译:
一家公司通过REST API向多个客户提供天气数据。该API托管在Amazon API Gateway上,并为每个API操作集成了不同的AWS Lambda函数。公司使用Amazon Route 53进行DNS管理,并创建了域名记录weather.example.com
。该公司将API的数据存储在Amazon DynamoDB表中。
公司需要一个解决方案,使API能够在另一个AWS区域中实现故障切换能力。
以下哪种解决方案可以满足这些需求?
答案分析和选项对照
A. 在一个新的区域部署一组新的Lambda函数。更新API Gateway API,使用边缘优化的API端点,并将两个区域的Lambda函数作为目标。将DynamoDB表转换为全局表(Global Tables)。
B. 在另一个区域部署新的API Gateway API和Lambda函数。将Route 53的DNS记录更改为多值回答(multivalue answer)。将两个API Gateway API添加到记录中,并启用目标健康检查(target health monitoring)。将DynamoDB表转换为全局表。
C. 在另一个区域部署新的API Gateway API和Lambda函数。将Route 53的DNS记录更改为故障转移记录(failover record)。启用目标健康检查(target health monitoring)。将DynamoDB表转换为全局表。
D. 在一个新的区域部署新的API Gateway API。将Lambda函数更改为全局函数。将Route 53的DNS记录更改为多值回答(multivalue answer)。将两个API Gateway API添加到记录中,并启用目标健康检查(target health monitoring)。将DynamoDB表转换为全局表。
答案:C
解析 (Explanation)
C 选项是正确答案,因为它以最佳方式满足了跨区域故障切换的需求,同时保持了高可用性和性能。以下是详细的原因:
主要要求分析
- 跨区域故障切换能力
- 需要在另一个AWS区域中部署API Gateway和Lambda函数,以便在主区域不可用时进行故障切换。
- 数据同步
- DynamoDB表需要转换为全局表(Global Tables),以便在多个区域中保持一致的数据可用性和低延迟。
- DNS管理
- 必须配置Route 53以支持自动故障切换或流量分配,确保客户端能够访问可用的API端点。
C 选项的解决方案分析
- API Gateway 和 Lambda 的多区域部署
- 在另一个区域中部署独立的API Gateway和Lambda函数。这为API提供了一个备用区域,以便在主区域出现故障时继续提供服务。
- Route 53 故障切换记录(Failover Record)
- 使用Route 53的故障切换记录(failover record)配置API的DNS记录,以便在主区域的API不可用时自动切换到备用区域的API。
- 启用目标健康检查(target health monitoring),确保自动监控API的健康状态。
- DynamoDB 全局表(Global Tables)
- 将DynamoDB表转换为全局表,以实现跨区域的数据同步和高可用性。这确保了在任何区域调用API时,数据都保持一致。
- 性能与可用性
- 此方案的设计符合“区域故障”场景下的高可用性需求,同时避免了复杂性,直接利用AWS托管服务的能力实现故障切换。
其他选项的分析
- A. 使用边缘优化 API 和 Lambda 函数目标
- 边缘优化(Edge-Optimized)API是为全球客户减少延迟的,但这里的需求是区域间故障切换,而不是降低延迟。此方法也无法实现Route 53记录的区域故障切换。
- B. 多值回答(Multivalue Answer)
- 多值回答(Multivalue Answer)不能提供区域间的自动故障切换能力。它仅提供客户端基于健康检查随机选择的能力,而非严格的主备故障切换。
- D. 全局 Lambda 函数
- AWS目前不支持直接创建“全局”Lambda函数。Lambda函数需要分别部署到各个区域,因此这个选项的假设不正确。此外,多值回答的限制与B选项相同。
总结 (Summary)
最佳答案是C: 它使用API Gateway和Lambda的多区域部署、DynamoDB全局表、Route 53的故障切换记录以及健康检查,全面实现了高可用性和自动故障切换,同时保持架构简单且高效。