Q2 — AWS SAA-C03 第16章

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

Q1202. 一家公司的打包应用程序会根据用户请求动态创建并返回一次性文本文件。该公司正在使用 Amazon CloudFront 进行分发,但希望进一步降低数据传输成本。该公司无法修改该应用程序的源代码。解决方案架构师应该做些什么来降低成本?

正确答案: C. 在 CloudFront 分发上启用缓存以将生成的文件存储在边缘。

解析

为了降低公司的打包应用程序的数据传输成本,该应用程序根据用户请求动态创建和返回一次性文本文件,同时使用 Amazon CloudFront 进行分发并且不修改应用程序的源代码,最合适的解决方案是:C. 在 CloudFront 分发上启用缓存以将生成的文件存储在边缘。分析:CloudFront 缓存:CloudFront 是一个内容分发网络 (CDN),它将内容缓存在世界各地的边缘站点。通过在 CloudFront 发行版上启用缓存功能,您可以将生成的一次性文本文件存储在边缘站点。这减少了需要发送回源服务器(应用程序托管服务器)的请求数量,从而降低了数据传输成本。一次性文件注意事项:虽然文件是一次性的,但如果请求中存在模式(例如,多个用户请求类似的文件,或者同一个文件在短时间内被多次请求),启用缓存仍然有益。即使文件确实是一次性的,缓存机制仍然可以通过为后续对相同或类似文件的请求(如果有)提供缓存响应来帮助减轻源服务器的负载。无需修改源代码:由于公司无法修改应用程序的源代码,因此需要更改应用程序的解决方案(例如,在应用程序级别压缩文件)是不可行的。无需对应用程序进行任何更改即可配置 CloudFront 缓存,使其成为合适的解决方案。为什么其他选项不适合:A. 使用 Lambda@Edge 在将文件发送给用户时对其进行压缩:不适用原因:虽然 Lambda@Edge 可用于在内容发送给用户时对其进行修改或转换,但如果文件本身就很小(文本文件通常就很小),那么在边缘计算上压缩文件可能无法显著降低数据传输成本。此外,Lambda@Edge 还会带来额外的复杂性和潜在成本,如果缓存能够有效减少对源服务器的请求数量,则可能没有必要使用 Lambda@Edge。B. 启用 Amazon S3 Transfer Acceleration 以缩短响应时间:为什么不:Amazon S3 Transfer Acceleration 旨在通过使用优化的网络路径来加速文件与 Amazon S3 之间的传输。但是,它并不能直接降低通过 CloudFront 提供的文件的数据传输成本。此外,该场景描述的是一个动态创建文件的应用程序,这些文件不一定是存储在 S3 中的文件。D. 使用 Amazon S3 分段上传将文件移动到 Amazon S3,然后再返回给用户:原因:Amazon S3 分段上传功能用于将大型文件分段上传到 S3,从而提高上传的可靠性和速度。然而,该解决方案并未解决降低通过 CloudFront 提供服务的文件的数据传输成本的问题。此外,该场景描述的是一个动态创建文件的应用程序,而这些文件不一定需要上传到 S3。结论:在 CloudFront 分布上启用缓存以将生成的文件存储在边缘是降低公司打包应用程序的数据传输成本的最有效方法,而无需对应用程序的源代码进行任何修改。