Q29 — AWS SAA-C03 第17章

第 29/89 题 | ← 返回第17章

Q1329. 一家公司正在构建一个新闻聚合平台。该平台接收需要清洗和分类的新闻文章。处理后的文章必须长期保存一年。在高峰期,该平台每分钟必须处理多达数千篇传入的文章。此外,该平台还必须为每篇文章提供独立且可扩展的处理能力。哪种解决方案能够满足这些要求?

正确答案: B. 创建一个 AWS Lambda 函数来接收文章。将每篇文章对应的消息发送到 Amazon Simple Queue Service (Amazon SQS) 队列。创建第二个 Lambda 函数来处理 SQS 队列中的文章。配置第二个 Lambda 函数来处理文章并将文章存储到 Amazon S3 存储桶中。

解析

为了满足每分钟处理数千篇传入文章、为每篇文章提供独立可扩展的处理以及将处理后的文章长期存储一年的要求,最佳解决方案是是:正确答案:B. 创建一个 AWS Lambda 函数来接收文章。将每篇文章对应的消息发送到 Amazon Simple Queue Service (Amazon SQS) 队列。创建第二个 Lambda 函数来处理 SQS 队列中的文章。配置第二个 Lambda 函数来处理文章并将文章存储在 Amazon S3 存储桶中。为什么这个方案是最佳选择?1. 可扩展性和独立处理AWS Lambda 可自动扩展以处理数千个并发调用,使其成为高吞吐量数据摄取的理想选择。SQS(简单队列服务)实现了摄取和处理之间的解耦,确保每篇文章都能独立处理。SQS 是完全托管的,具有高度可扩展性,并确保不会丢失消息(至少一次交付)。2. 加工制品的耐用储存Amazon S3 是性价比最高、最持久耐用的长期(1 年)存储解决方案。S3 提供高可用性(99.999999999% 的持久性)和可扩展性,适用于存储已处理物品。3. 事件驱动架构Lambda 摄取 SQS 队列 Lambda 处理 S3 存储是一个完全无服务器、事件驱动的工作流。无需管理服务器(EC2)或缓存(ElastiCache),从而降低运营成本。其他选项为何不太合适?A. 单个大型 EC2 实例,具备内存处理能力单个 EC2 实例存在单点故障,无法针对每篇文章独立扩展。内存处理(RAM)不具备持久性——如果实例发生故障,已处理的文章将会丢失。对于偶发性或峰值工作负载而言,成本效益不高(必须为峰值预留额外资源)。C. Lambda 摄取 ElastiCache EC2 自动扩展组ElastiCache(Memcached)是一种内存缓存,而非持久存储解决方案。需要管理 EC2 实例,这会增加复杂性和成本。在 EC2 中处理文章的可扩展性不如 Lambda,后者可以即时自动扩展。由于文章应存储在 S3 中以确保持久性,因此无需写回 ElastiCache。D. Lambda 摄取 SQS Lambda 第二个 SQS 队列将已处理的文章存储在第二个 SQS 队列中是不正确的,因为:SQS 是一个临时消息队列,并非持久存储解决方案。文章需要存储在 S3 中才能长期保存(1 年)。这种方法引入了不必要的复杂性,却没有提供持久性。推荐架构摄取层:AWS Lambda 接收传入的文章(例如,通过 API 网关或直接调用)。每篇文章都会作为单独的消息发送到 SQS FIFO 队列或标准队列(取决于排序需求)。处理层:第二个 Lambda 函数由 SQS 消息触发。每次 Lambda 调用独立处理一篇文章,从而确保可扩展性。存储层:处理后的文章存储在亚马逊 S3 中,以实现持久、长期的保存。结论最具可扩展性、成本效益和持久性的解决方案是:B. 创建一个 AWS Lambda 函数来接收文章。将每篇文章对应的消息发送到 Amazon Simple Queue Service (Amazon SQS) 队列。创建第二个 Lambda 函数来处理 SQS 队列中的文章。配置第二个 Lambda 函数来处理文章并将文章存储在 Amazon S3 存储桶中。其他选项要么缺乏可扩展性(A),要么使用不必要的复杂性(C),要么无法提供持久存储(D)。