Q73 — AWS SAA-C03 第17章
第 73/89 题 | ← 返回第17章
Q1373. 一家电子商务公司在 AWS 上运行一个多层应用程序。前端和后端层都运行在 Amazon EC2 实例上。数据库层运行在 Amazon RDS for MySQL 数据库实例上。后端层与 RDS 数据库实例通信。该应用程序频繁调用数据库以返回相同的数据集。频繁的数据库调用导致性能下降。解决方案架构师必须提高应用程序后端性能。哪种方案能够满足这一要求?
- A. 在 EC2 实例和 RDS 数据库实例之间配置 Amazon SNS 主题。
- B. 配置 Amazon ElastiCache(Redis OSS)缓存。配置后端 EC2 实例以从缓存中读取数据。 ✓
- C. 配置 Amazon DynamoDB Accelerator (DAX) 集群。配置后端 EC2 实例以从集群读取数据。
- D. 配置 Amazon Data Firehose 以流式传输对数据库的调用。
正确答案: B. 配置 Amazon ElastiCache(Redis OSS)缓存。配置后端 EC2 实例以从缓存中读取数据。
解析
让我们分析每个选项,以确定改善应用程序后端性能的最佳解决方案。由于频繁调用数据库返回相同的数据集,导致应用程序后端运行速度变慢:方案 A:在 EC2 实例和 RDS 数据库实例之间配置 Amazon SNS 主题。Amazon Simple Notification Service (SNS) 是一种完全托管的发布/订阅消息服务。它主要用于向多个订阅者(例如电子邮件地址、移动设备或其他 AWS 服务)发送消息。SNS 的设计目的并非缓存数据或通过处理重复查询来降低数据库负载。它更适合基于通知的用例,而不是提升数据库查询性能。所以,这个选项是错误的。方案 B:配置 Amazon ElastiCache(Redis 开源)缓存。配置后端 EC2 实例从缓存中读取数据。Amazon ElastiCache 是一项完全托管的内存缓存服务,支持 Redis 和 Memcached。通过配置 ElastiCache(Redis 开源软件)缓存,应用程序后端可以将频繁访问的数据存储在内存中。当后端查询之前访问过的数据时,可以首先检查缓存。如果数据存在于缓存中(缓存命中),则可以比查询数据库更快地检索数据。这减少了对 Amazon RDS for MySQL 数据库实例的直接调用次数,从而提高了应用程序后端的整体性能。因此,此选项是正确的。选项 C:配置 Amazon DynamoDB Accelerator (DAX) 集群。配置后端 EC2 实例以从该集群读取数据。Amazon DynamoDB Accelerator (DAX) 是一种专为 Amazon DynamoDB(一种 NoSQL 数据库服务)设计的内存缓存。由于此场景中的数据库层运行在 Amazon RDS for MySQL(一种关系型数据库)上,因此 DAX 不适用。DAX 针对 DynamoDB 的数据模型和访问模式进行了优化,无法用于缓存来自 MySQL 数据库的数据。因此,此选项不正确。选项 D:配置 Amazon Kinesis Data Firehose 以流式传输数据库调用。Amazon Kinesis Data Firehose 是一项完全托管的服务,用于捕获、转换流式数据并将其交付到 Amazon S3、Amazon Redshift 和 Amazon OpenSearch Service 等目标位置。它用于实时数据流和分析,而不是用于缓存数据以提高数据库查询性能。Data Firehose 的设计目的并非通过处理重复查询来减轻数据库负载。所以,这个选项是错误的。因此,满足提高应用程序后端性能要求的解决方案是配置 Amazon ElastiCache(Redis OSS)缓存,并配置后端 EC2 实例从缓存中读取数据,答案是 B。