第010题 - sap

M16——恒星诞生的支柱

sap010-202411260036127

题目翻译 (Question Translation)


English: A retail company is operating its eCommerce application on AWS. The application runs on Amazon EC2 instances behind an Application Load Balancer (ALB). The company uses an Amazon RDS DB instance as the database backend. Amazon CloudFront is configured with one origin that points to the ALB. Static content is cached. Amazon Route 53 is used to host all public zones.

After an update of the application, the ALB occasionally returns a 502 status code (Bad Gateway) error. The root cause is malformed HTTP headers that are returned to the ALB. The webpage returns successfully when a solutions architect reloads the webpage immediately after the error occurs.

While the company is working on the problem, the solutions architect needs to provide a custom error page instead of the standard ALB error page to visitors.

Which combination of steps will meet this requirement with the LEAST amount of operational overhead? (Choose two.)


中文翻译: 一家零售公司在 AWS 上运行其电子商务应用程序。该应用程序运行在位于 Application Load Balancer (ALB) 后面的 Amazon EC2 实例上。该公司使用 Amazon RDS 数据库实例作为数据库后端。Amazon CloudFront 配置了一个指向 ALB 的原点,静态内容被缓存。Amazon Route 53 被用来托管所有公共域名区域。

在更新应用程序后,ALB 偶尔会返回 502 状态代码(Bad Gateway)错误。根本原因是返回到 ALB 的 HTTP 头格式错误。当解决方案架构师重新加载网页后,网页会成功返回。

在公司解决问题期间,解决方案架构师需要为访问者提供一个自定义错误页面,替代标准的 ALB 错误页面。

哪种步骤组合可以以最少的运维开销满足此需求?(选择两个)


选项分析 (Answer Analysis)


选项 A

Create an Amazon S3 bucket. Configure the S3 bucket to host a static webpage. Upload the custom error pages to Amazon S3.

分析:

  • 重点功能: S3 可以作为静态网站托管,并轻松存储自定义错误页面。
  • 优势:
    • S3 提供极低的管理开销,托管静态内容非常简单。
    • 自定义错误页面可以快速上传到 S3 并在请求错误时提供给用户。
  • 运维开销: 非常低,仅需配置 S3 并上传页面。
  • 与题目相关性: 完全符合需求,用于替换默认的 ALB 错误页面。

此选项是正确答案之一。


选项 B

Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Target.FailedHealthChecks is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a publicly accessible web server.

分析:

  • 重点功能: CloudWatch 监控 ALB 的健康检查,并调用 Lambda 修改转发规则。
  • 问题:
    • 方案复杂,涉及 CloudWatch、Lambda、ALB 转发规则等多种配置。
    • 运维开销较高,尤其是在需要处理大量动态规则变更时。
  • 与题目相关性: 超出需求范围,不适合短期内替代错误页面的方案。

此选项不正确。


选项 C

Modify the existing Amazon Route 53 records by adding health checks. Configure a fallback target if the health check fails. Modify DNS records to point to a publicly accessible webpage.

分析:

  • 重点功能: 通过 Route 53 健康检查实现故障切换到备用目标。
  • 问题:
    • Route 53 的健康检查和 DNS 切换可能导致较长的延迟(取决于 TTL)。
    • 健康检查功能通常适用于区域级别的高可用性,而非处理错误页面。
  • 运维开销: 需要修改 DNS 配置并确保备用页面的可用性,开销中等。
  • 与题目相关性: 不符合“提供错误页面”的核心需求,而是着眼于故障转移。

此选项不正确。


选项 D

Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Elb.InternalError is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a publicly accessible web server.

分析:

  • 重点功能: 通过 Lambda 检测 ALB 内部错误并修改转发规则。
  • 问题:
    • 和选项 B 类似,涉及复杂的多服务集成。
    • 实现和维护成本高,显著增加运维开销。
  • 与题目相关性: 超出题目需求,不符合“最小运维开销”的要求。

此选项不正确。


选项 E

Add a custom error response by configuring a CloudFront custom error page. Modify DNS records to point to a publicly accessible webpage.

分析:

  • 重点功能: CloudFront 支持配置自定义错误响应页面,可以在出现 ALB 错误时提供自定义页面。
  • 优势:
    • CloudFront 已经是现有架构的一部分,不需要引入额外的服务。
    • 提供快速和无缝的自定义错误页面。
  • 运维开销: 非常低,仅需在 CloudFront 控制台中启用错误页面配置。
  • 与题目相关性: 完全符合“最少运维开销”且满足需求。

此选项是正确答案之一。


最佳答案 (Correct Answer)

答案:A、E


详细解析 (Detailed Explanation)

1. 为什么选择 A?

  • 使用 Amazon S3 托管静态自定义错误页面,是一种低成本、高可用的解决方案。
  • 操作简单,运维开销非常小。

2. 为什么选择 E?

  • 使用 CloudFront 配置自定义错误响应,最大限度地利用现有架构。
  • CloudFront 提供高性能和低延迟,确保用户体验最佳。
  • 无需引入新的服务或复杂的配置,运维开销最低。

为什么不选择其他选项?

  • B 和 D: 需要复杂的集成,增加运维开销,不适合短期解决问题。
  • C: Route 53 健康检查的延迟问题,使其不适合用来即时提供错误页面。

总结 (Summary)

通过选择 AE,可以以最小的运维开销实现需求,为用户提供自定义错误页面,同时不引入额外的复杂性,非常符合题目要求。