Q82 — AWS SAA-C03 第16章

第 82/100 题 | ← 返回第16章

Q1282. 一家公司正在构建一个新的 Web 应用程序,该应用程序通过 API 提供静态和动态内容。该公司希望最大限度地降低全球用户访问该应用程序的延迟。哪种解决方案能够最经济有效地满足这些要求?

正确答案: A. 将静态内容部署到 Amazon S3 存储桶。使用 Amazon API Gateway HTTP API 提供动态内容。创建一个使用 S3 存储桶和 HTTP API 作为源的 Amazon CloudFront 分发版。启用静态内容缓存。

解析

正确的解决方案必须能够最大程度地降低静态和动态内容的全局延迟,同时兼顾成本效益。让我们评估一下每个选项:正确答案:A. 将静态内容部署到 Amazon S3 存储桶。使用 Amazon API Gateway HTTP API 提供动态内容。创建一个使用 S3 存储桶和 HTTP API 作为源的 Amazon CloudFront 分发版。启用静态内容缓存。为什么选项 A 是最佳选择:两种内容类型的全局低延迟:CloudFront(AWS 的 CDN)将静态内容缓存在全球边缘站点(来自 S3),以实现快速交付。动态内容通过 API Gateway HTTP API 提供,该 API 支持低延迟请求(尤其是与 CloudFront 的动态内容加速结合使用时)。成本效益:S3 对于静态存储来说价格低廉。API Gateway HTTP API 的价格低于 REST API(每百万次调用更便宜)。CloudFront 通过缓存减少源站负载(S3/API Gateway),从而降低成本。优化缓存:静态内容缓存在边缘节点(减少 S3 请求)。动态内容可以使用 API 网关缓存(如果适用)或 CloudFront 的 TTL 设置来获取半动态数据。其他选择为何失败:B. 将静态内容部署到 Amazon S3 存储桶。向用户提供存储桶网站终端节点。使用启用缓存的 Amazon API Gateway HTTP API 来提供动态内容。静态内容无 CDN:直接从 S3 网站端点提供静态内容意味着全球用户的延迟更高(没有边缘缓存)。仅 API 网关缓存是不够的:如果没有 CloudFront,动态内容仍然缺乏全球加速。C. 将静态内容部署到 Amazon S3 存储桶。使用两个 Amazon EC2 实例作为 Web 服务器。部署应用程序负载均衡器来分配流量。在 S3 存储桶前端创建一个 Amazon CloudFront 分发,用于缓存静态内容。不必要的复杂性和成本:与无服务器选项(API 网关)相比,EC2 实例价格昂贵(计算、管理、扩展)。ALB 会增加成本,但动态 API 流量无需使用(API 网关更佳)。CloudFront 仅缓存静态内容(动态内容仍会缓存到 EC2,缺少优化)。D. 将静态内容部署到 Amazon S3 存储桶。向用户提供存储桶网站终端节点。在 S3 存储桶前端创建一个 Amazon CloudFront 分发,用于缓存静态内容。没有动态内容的解决方案:此选项仅处理静态内容(通过 S3 + CloudFront)。动态内容仍必须单独提供(例如,通过 EC2、Lambda 或 API 网关,但此处不包括)。主要比较:要求选项 A其他选项静态内容的全球低延迟(CloudFront + S3)(B:S3 端点;C:部分;D:仅静态)动态内容的全球低延迟(CloudFront + API 网关)(B:无 CDN;C:EC2/ALB;D:缺失)经济高效(S3 + HTTP API + CloudFront)(B:无 CDN;C:EC2/ALB;D:不完整)简单(无服务器)(无 EC2/ALB)(C:EC2/ALB)结论:选项 A 是唯一的解决方案:最大限度地降低静态和动态内容的全局延迟。使用经济高效的无服务器组件(S3、API Gateway、CloudFront)。避免不必要的基础设施(EC2、ALB)。最终答案:A