Q49 — AWS SAA-C03 第17章

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

Q1349. 由于需求增加,应用程序出现性能问题。这种需求增加主要针对从 Amazon RDS 托管数据库中提取的只读历史记录,这些记录包含自定义视图和查询。解决方案架构师必须在不更改数据库结构的情况下提升性能。哪种方法既能提高性能又能最大限度地减少管理开销?

正确答案: C. 在 Amazon EC2 上部署 Memcached 并缓存应用程序的数据。

解析

B 或 CC正确的解决方案是 B. 部署 Amazon ElastiCache(Redis OSS)并缓存应用程序的数据。解释:要求:由于对存储在 Amazon RDS 数据库中的历史数据的需求增加,该应用程序遇到了读取性能问题。该解决方案必须在不修改数据库结构(例如,不更改模式或重写查询)的情况下提高性能。尽量减少管理开销(优先选择完全托管服务,而不是自行管理的解决方案)。为什么选项 B 正确:Amazon ElastiCache(Redis):支持 Redis(开源、高性能键值存储)的完全托管内存缓存服务。通过缓存频繁访问的数据(例如,自定义视图/查询的结果),降低 RDS 的读取负载。无需更改架构——应用程序可以在查询 RDS 之前检查缓存。管理开销低——AWS 会处理扩展、修补和备份。性能优势:Redis 提供亚毫秒级的缓存数据延迟,显著提升读取性能。它支持多种数据结构(例如哈希表、列表),能够高效地存储查询结果。其他选项错误的原因:A. 部署 Amazon DynamoDB 并迁移所有数据错误:DynamoDB 是一个 NoSQL 数据库,而不是缓存层。从 RDS(关系型数据库)迁移到 DynamoDB 需要重写应用程序并修改数据模型,这违反了“不得更改数据库结构”的要求。全面迁移需要高昂的管理成本。C. 在 Amazon EC2 上部署 Memcached错误:Memcached 是一个有效的缓存解决方案,但在 EC2 上运行它会带来管理开销(扩展、修补、监控)。对于完全托管、可扩展的解决方案而言,ElastiCache(Redis)是更好的选择。D. 在 Amazon RDS 上部署 Amazon DynamoDB Accelerator (DAX)错误:DAX 是为 DynamoDB 设计的,而不是为 RDS 设计的。它不能用于加速 RDS 查询。即使可以,DAX 也是为 NoSQL 工作负载设计的,而不是关系型数据库。正确方法(方案 B):将 ElastiCache (Redis) 部署在与 RDS 相同的 AWS 区域中,以最大限度地减少延迟。配置应用程序以:首先检查 Redis 中是否有缓存数据(使用从查询/视图派生的缓存键)。如果未找到,则查询 RDS 并将结果以适当的生存时间 (TTL) 存储在 Redis 中。使用 Redis 数据结构(例如,表格数据的哈希表)可以高效地缓存查询结果。示例架构:应用程序[检查 Redis 缓存] 如果未命中,则查询 Redis 中的 RDS 存储并返回结果。结论:方案 B 是最佳解决方案,因为它:提升读取性能,延迟低于毫秒级。无需对数据库结构进行任何更改。使用完全托管的服务(ElastiCache)来最大限度地减少运营开销。其他选项要么违反要求(A、D),要么引入不必要的管理(C)。