Q89 — AWS SAA-C03 第14章

第 89/100 题 | ← 返回第14章

Q1089. 一家公司正在开发一款社交媒体应用程序.该公司预计用户和数据量将快速且不可预测地增长.该应用程序需要处理持续的大量用户请求.用户请求包括长时间运行的进程,这些进程以关系格式存储大量用户生成的内容和用户个人资料.这些进程必须按特定顺序运行.该公司需要一种能够扩展资源以满足需求高峰且不会造成停机或性能下降的架构.该公司必须确保应用程序的组件能够独立发展而不会影响系统的其他部分.哪些 AWS 服务组合可以满足这些要求?

正确答案: A. 使用 AWS Fargate 启动类型在 Amazon Elastic Container Service (Amazon ECS) 上部署应用程序.使用 Amazon RDS 作为数据库.使用 Amazon Simple Queue Service (Amazon SQS) 解耦组件之间的消息处理.

解析

为了满足社交媒体应用程序的要求,我们需要考虑可扩展性、可靠性以及按特定顺序处理长时间运行的流程的能力,同时确保组件可以独立发展.让我们评估每个选项:A. 使用 AWS Fargate 启动类型在 Amazon Elastic Container Service (Amazon ECS) 上部署应用程序.使用 Amazon RDS 作为数据库.使用 Amazon Simple Queue Service (Amazon SQS) 解耦组件之间的消息处理.带有 Fargate 的 Amazon ECS 提供了一种无服务器的方式来运行容器,允许根据需求自动扩展.Amazon RDS 可以处理关系数据,并且可以通过适当的实例类型和配置进行扩展.Amazon SQS 是一种完全托管的消息队列服务,可实现云应用程序组件的分离.它确保消息按特定顺序传递,并可处理所需的消息量.B. 使用 AWS Fargate 启动类型在 Amazon Elastic Container Service (Amazon ECS) 上部署应用程序.使用 Amazon RDS 作为数据库.使用 Amazon Simple Notification Service (Amazon SNS) 解耦组件之间的消息处理.ECS 和 Fargate 适用于容器化应用程序,而 Amazon SNS 主要用于发送通知(例如电子邮件、短信)和向多个终端节点/订阅者广播消息.它不保证消息顺序,也不提供与 SQS 相同级别的消息处理解耦.C. 使用 Amazon DynamoDB 作为数据库.使用 AWS Lambda 函数实现应用程序.配置 Amazon DynamoDB Streams 以调用 Lambda 函数.使用 AWS Step Functions 管理服务之间的工作流程.DynamoDB 是一个完全托管的 NoSQL 数据库,可以扩展以处理非常高的请求率.Lambda 函数可以由 DynamoDB Streams 触发,后者可以捕获 DynamoDB 表中的更改.AWS Step Functions 可以管理工作流程并确保按特定顺序调用 Lambda 函数.但是,DynamoDB 不是关系型的,可能无法满足以关系格式存储用户配置文件的要求.D. 使用具有自动扩展功能的 AWS Elastic Beanstalk 环境来部署应用程序.使用 Amazon RDS 作为数据库.使用 Amazon Simple Notification Service (Amazon SNS) 来解耦组件之间的消息处理.Elastic Beanstalk 提供了一种在 AWS 云中部署和管理应用程序的简便方法,并具有自动扩展功能.RDS适合关系数据.然而,SNS 并不适合解耦需要严格顺序和可靠传递的组件之间的消息处理.考虑到这些因素,选项 A 是最合适的解决方案.它提供了一种可扩展的、无服务器的方式来使用 ECS 和 Fargate 运行容器,使用 RDS 进行关系数据存储,并利用 SQS 以可靠且有序的方式解耦和管理组件之间的消息处理.因此,正确答案是:A. 使用 AWS Fargate 启动类型在 Amazon Elastic Container Service (Amazon ECS) 上部署应用程序.使用 Amazon RDS 作为数据库.使用 Amazon Simple Queue Service (Amazon SQS) 解耦组件之间的消息处理.