Topic 1 Question #1
一家公司有一个运行在 Amazon EC2 实例上的底层 Web 应用程序,这些实例位于应用程序负载均衡器 (APP) 之后。这些实例运行在
同一个可用区内的 Amazon EC2 自动扩展组中。系统运维管理员需要确保该应用程序的高可用性。
为了满足这一要求,系统运维管理员应该采取什么措施?
答案: C
题目中当前架构的核心风险是所有EC2实例都部署在单个可用区内,一旦该可用区发生供电故障、网络中断等事件,所有实例都会不可用,导致应用完全中断,不符合高可用性要求。AWS架构中实现基础高可用的核心手段是同一区域内跨可用区部署资源,同一区域的可用区之间物理隔离、网络延迟低于2毫秒,且具备独立的供电、网络基础设施,单个可用区故障不会影响同区域其他可用区。将自动扩展组配置为跨同区域的第二个可用区部署实例后,配合应用负载均衡的自动健康检查和流量调度能力,单个可用区故障时,其余可用区的实例仍可正常承接流量,保障应用持续可用,因此选择C选项。
各选项分析:
A. 增加自动扩展组的最大实例数仅能提升应用的峰值容量承载能力,解决的是访问高峰时的性能不足问题,所有实例仍部署在单个可用区中,无法应对可用区级故障,不满足高可用性要求,因此错误。
B. 增加自动扩展组的最小实例数仅能提升应用的基线容量,保障日常运行的最低实例数量,所有实例仍处于同一可用区,无法规避可用区故障导致的服务中断风险,因此错误。
C. 同区域内的多个可用区具备物理隔离、低延迟的特性,将自动扩展组更新为跨同区域的第二个可用区部署实例,可实现应用的多AZ冗余部署,单个可用区故障时其他AZ的实例可正常提供服务,结合应用负载均衡的流量调度能力,完全满足高可用性要求,因此正确。
D. 自动扩展组不能跨AWS区域部署,且应用负载均衡是区域级服务,无法挂载其他区域的EC2实例,跨区域部署属于容灾场景而非基础高可用场景,会大幅提升架构复杂度和成本,不符合需求,因此错误。
关键知识点:
1. 自动扩展组的高可用配置:自动扩展组支持跨同一AWS区域的多个可用区部署实例,是实现EC2工作负载高可用的核心配置手段,可有效规避可用区级故障风险。
2. AWS高可用架构基础原则:同一区域内跨可用区部署是实现99.9%及以上可用性的首要措施,可用区之间低延迟、物理隔离的特性适合无状态Web应用的多活部署。
3. 应用负载均衡的区域特性:应用负载均衡是区域级服务,仅支持关联同区域内多个可用区的EC2实例,可自动将流量调度到健康的实例上,配合跨AZ的自动扩展组实现故障自动转移。
参考资料:
Amazon EC2 Auto Scaling 用户指南 自动扩展组的可用区配置, https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html#availability-zones
AWS Well-Architected 框架 可靠性支柱 可靠性设计原则, https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/design-principles-for-reliability-in-the-cloud.html