Q31 — AWS SAA-C03 第17章

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

Q1331. 一家公司部署了一个使用 Amazon DynamoDB 作为数据库层的无服务器应用程序。该应用程序的用户数量大幅增长。该公司希望将数据库响应时间从毫秒级提升到微秒级,并对数据库请求进行缓存。哪种解决方案能够在满足这些要求的同时,将运维开销降至最低?

正确答案: A. 使用 DynamoDB Accelerator(DAX)。

解析

正确答案:A使用 DynamoDB 加速器 (DAX)。为什么这个方案能够以最小的运维开销满足需求?该公司希望将 DynamoDB 的响应时间从毫秒级提升到微秒级,并以最小的运维工作量缓存频繁请求。主要要求:DynamoDB 读取操作延迟极低(微秒级)。缓存层用于减少直接数据库调用。运行开销极小(无需手动扩展、修补或复杂设置)。选项 A(DAX)是最佳选择,因为:DynamoDB Accelerator (DAX) 是一款完全托管的内存缓存,专为 DynamoDB 设计。它通过缓存频繁访问的数据,将读取延迟从毫秒级降低到微秒级。无需运维开销——AWS 负责扩展、补丁和故障转移。无缝集成——可与现有的 DynamoDB API 配合使用(读取操作无需更改代码)。经济高效——只需为 DAX 集群节点付费(无需单独的缓存基础设施)。其他方案为何失败?B. 迁移到 Amazon RedshiftRedshift 是一个 OLAP(分析型)数据库,并非针对低延迟 OLTP(事务型)工作负载进行优化。其运维开销较高,需要手动调优、清理和扩展。它并非缓存解决方案,无法改善 DynamoDB 的读取延迟。C. 迁移到 Amazon RDSRDS(MySQL、PostgreSQL 等)是关系型数据库,而非像 DynamoDB 那样的 NoSQL 解决方案。迁移 RDS 需要对代码进行大量修改并重新设计应用程序架构。它本身并不提供微秒级延迟(需要额外使用 ElastiCache)。D. 使用 Amazon ElastiCache(Redis 开源软件)ElastiCache(Redis/Memcached)是一种通用缓存解决方案,但需要手动与 DynamoDB 集成。更高的运行开销——需要应用程序级别的缓存逻辑(例如,失效、直写/后写)。不如 DAX 无缝衔接——DAX 是专为 DynamoDB 设计的,而 ElastiCache 需要更多设置。DynamoDB Accelerator (DAX) 的工作原理DAX 位于您的应用程序和 DynamoDB 之间,用于缓存频繁读取的数据项。如果数据已缓存,则读取请求将由 DAX 处理(延迟仅为微秒级)。未缓存的读取操作仍然会发送到 DynamoDB(毫秒级延迟)。写入操作首先写入 DynamoDB,然后在 DAX 中失效(最终一致性)。架构图应用层DynamoDB 加速器 (DAX)(内存缓存集群)Amazon DynamoDB 表要点总结对于需要极低延迟且配置要求极低的 DynamoDB 读取操作,DAX 是最佳选择。请避免迁移到 Redshift/RDS——它们并非为此类用例而设计。ElastiCache 是一个不错的替代方案,但相比 DAX 需要更多的配置工作。该方案可确保微秒级的读取性能,且零操作开销。