A company's application integrates with multiple software-as-a-service (SaaS) sources for data collection. The company runs Amazon EC2 instances to receive the data and to upload the data to an Amazon S3 bucket for analysis. The same EC2 instance that receives and uploads the data also sends a notification to the user when an upload is complete. The company has noticed slow application performance and wants to improve the performance as much as possible.
Which solution will meet these requirements with the LEAST operational overhead?
A. Create an Auto Scaling group so that EC2 instances can scale out. Configure an S3 event notification to send events to an Amazon Simple Notification Service (Amazon SNS) topic when the upload to the S3 bucket is complete.
B. Create an Amazon AppFlow flow to transfer data between each SaaS source and the S3 bucket. Configure an S3 event notification to send events to an Amazon Simple Notification Service (Amazon SNS) topic when the upload to the S3 bucket is complete.
C. Create an Amazon EventBridge (Amazon CloudWatch Events) rule for each SaaS source to send output data. Configure the S3 bucket as the rule's target. Create a second EventBridge (Cloud Watch Events) rule to send events when the upload to the S3 bucket is complete. Configure an Amazon Simple Notification Service (Amazon SNS) topic as the second rule's target.
D. Create a Docker container to use instead of an EC2 instance. Host the containerized application on Amazon Elastic Container Service (Amazon ECS). Configure Amazon CloudWatch Container Insights to send events to an Amazon Simple Notification Service (Amazon SNS) topic when the upload to the S3 bucket is complete.
B
技巧:排除明显错误选项,在没有明显错误的选项中选择最合理的选项。
某公司的应用程序与多个软件即服务(SaaS)源集成,用于数据收集。该公司运行 Amazon EC2 实例来接收数据,并将数据上传到 Amazon S3 存储桶进行分析。接收和上传数据的 EC2 实例在上传完成时也会向用户发送通知。该公司已经注意到应用程序性能缓慢,并希望尽可能地提高性能。
哪种解决方案能够以最小的运营开销满足这些要求?
A. 不正确。创建一个 Auto Scaling 组,以便 EC2 实例可以向外扩展。配置 S3 事件通知,以便在上传到 S3 存储桶完成时将事件发送到 Amazon Simple notification Service(Amazon SNS)主题。通过创建 Auto Scaling 组,EC2 实例可以根据负载自动扩展,这有助于提高应用程序的性能,特别是在数据接收和上传高峰期。当数据上传到 S3 存储桶完成时,S3 事件通知可以触发 Amazon SNS 主题,从而向用户发送通知。这种方式不需要修改现有的 EC2 实例逻辑,操作开销较小。但是,该方案并依然依赖于 EC2 实例进行数据接收和上传,并没有做架构层面的优化。
B. 正确。创建一个 Amazon AppFlow 流,在每个 SaaS 源和 S3 存储桶之间传输数据。配置 S3 事件通知,以便在上传到 S3 存储桶完成时将事件发送到 Amazon Simple notification Service(Amazon SNS)主题。AppFlow 是一种完全托管的服务,可以自动化地在 SaaS 源和 AWS 服务(如 S3)之间传输数据。使用 AppFlow 可以减少 EC2 实例的负载,因为数据传输不再完全依赖于 EC2 实例。当数据上传到 S3 存储桶完成时,S3 事件通知可以触发 Amazon SNS 主题,从而向用户发送通知。该方案引入了完全托管的新服务(AppFlow),显著减少了 EC2 实例的负载,提高了应用程序的性能,且操作开销较小。
C. 不正确。为每个 SaaS 源创建一个 Amazon EventBridge(Amazon CloudWatch Events)规则,以发送输出数据。将 S3 存储桶配置为规则的目标。创建第二个 EventBridge(Cloud Watch Events)规则,以便在上传到 S3 存储桶完成时发送事件。将 Amazon 简单通知服务(Amazon SNS)主题配置为第二条规则的目标。该方案中数据接收和上传,没有进行优化,仍然依赖于 EC2 实例。使用 EventBridge 为每个 SaaS 源创建规则并将 S3 存储桶作为目标并不高效,而且使用 EventBridge 用于在上传完成后发送通知,增加了系统的复杂性。
D. 不正确。创建一个 Docker 容器来代替 EC2 实例。在 Amazon Elastic Container Service(Amazon ECS)上托管容器化应用程序。配置 Amazon CloudWatch Container Insights,以便在上传到 S3 存储桶完成时将事件发送到 Amazon 简单通知服务(Amazon SNS)主题。将应用程序容器化并托管在 ECS 上可以提高可移植性和可扩展性,但并没有直接解决 EC2 实例在数据接收和上传方面的性能瓶颈。Amazon CloudWatch Container Insights 也只是用于监控容器并发送通知,同样没有直接提高数据接收和上传的性能。此外,需要管理容器和 ECS 集群,操作开销较高。