Q99 — AWS SAA-C03 第11章
第 99/100 题 | ← 返回第11章
Q799.一家公司正在开发一款手机游戏,可将分数更新传输到后端处理器,然后将结果发布在排行榜上.解决方案架构师需要设计一个解决方案,能够处理大流量峰值. 按接收顺序处理移动游戏更新,并将处理后的更新存储在高度可用的数据库中.该公司还希望最大限度地减少维护解决方案所需的管理开销.解决方案架构师应该怎样做才能满足这些要求?
- A. 将分数更新推送到 Amazon Kinesis Data Streams.使用 AWS Lambda 处理 Kinesis Data Streams 中的更新.将处理后的更新存储在 Amazon DynamoDB 中. ✓
- B. 将分数更新推送到 Amazon Kinesis Data Streams.使用为 Auto Scaling 设置的一组 Amazon EC2 实例处理更新.将处理后的更新存储在 Amazon Redshift 中.
- C. 将分数更新推送到 Amazon Simple Notification Service (Amazon SNS) 主题.将 AWS Lambda 函数订阅到 SNS 主题以处理更新.将处理后的更新存储在 Amazon EC2 上运行的 SQL 数据库中.
- D. 将分数更新推送到 Amazon Simple Queue Service (Amazon SQS) 队列.使用具有 Auto Scaling 功能的 Amazon EC2 实例队列来处理 SQS 队列中的更新.将处理后的更新存储在 Amazon RDS 多可用区数据库实例中.
正确答案: A. 将分数更新推送到 Amazon Kinesis Data Streams.使用 AWS Lambda 处理 Kinesis Data Streams 中的更新.将处理后的更新存储在 Amazon DynamoDB 中.
解析
为了满足处理大流量峰值. 按接收顺序处理手游更新. 将处理后的更新存储在高可用数据库中以及最小化管理开销的要求,推荐的解决方案是:A. 将分数更新推送到 Amazon Kinesis Data Streams.使用 AWS Lambda 处理 Kinesis Data Streams 中的更新.将处理后的更新存储在 Amazon DynamoDB 中.Amazon Kinesis Data Streams 是一种可扩展且持久的实时流服务,可以处理大流量峰值.将分数更新推送到 Kinesis Data Streams 允许按接收顺序处理更新.AWS Lambda 可用于处理来自 Kinesis Data Streams 的更新. Lambda 函数可以由流触发,并且可以自动扩展以处理不同的工作负载.这消除了管理和配置 EC2 实例的需要.将处理后的更新存储在 Amazon DynamoDB 中提供了高度可用且可扩展的数据库解决方案. DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供自动扩展和高可用性,从而最大限度地减少所需的管理开销.这就是为什么其他选项不是最适合给定要求的原因:B. 将分数更新推送到 Kinesis Data Streams 并使用一组 EC2 实例进行处理:将 EC2 实例与 Auto Scaling 结合使用可以处理流量峰值,但会在管理和扩展实例时引入管理开销.此外,使用 Amazon Redshift 作为存储解决方案可能不是存储单个游戏更新的最佳选择.C. 将分数更新推送到 Amazon SNS 并使用基于 EC2 的 Lambda 函数进行处理:Amazon SNS 是一种发布/订阅消息服务,可能不太适合按接收顺序处理更新.使用基于 EC2 的 SQL 数据库会带来管理开销,并且该解决方案可能不如使用 DynamoDB 那样具有可扩展性和高可用性.D. 将分数更新推送到 Amazon SQS 队列并使用一组 EC2 实例进行处理:虽然 SQS 可以处理消息队列,但它不能保证消息处理的顺序.将 EC2 实例与 Auto Scaling 结合使用会带来管理开销,并且使用 RDS 多可用区可能无法提供与 DynamoDB 相同级别的可扩展性和可用性.因此,满足处理大流量峰值. 按顺序处理更新. 将处理后的更新存储在高可用数据库中以及最小化管理开销的要求的推荐解决方案是:A. 将分数更新推送到 Amazon Kinesis Data Streams.使用 AWS Lambda 处理 Kinesis Data Streams 中的更新.将处理后的更新存储在 Amazon DynamoDB 中.