Q9 — AWS SAA-C03 第17章

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

Q1309. 一家公司使用通用型 Amazon RDS 实例来部署 MySQL 数据库实例。该公司已将该数据库实例配置为跨两个可用区的多可用区 (Multi-AZ) 配置,作为其生产应用程序的一部分。公司财务团队需要对数据库实例运行 SQL 查询来生成报表。客户反映,在生成报表期间,应用程序的性能存在严重问题。解决方案架构师需要尽可能降低报表作业对数据库实例的影响。哪种解决方案能够满足这些要求?

正确答案: C. 添加 RDS 只读副本。更新报表作业,使其查询副本端点。

解析

为最大程度地减少报表查询对生产环境 Amazon RDS for MySQL 数据库实例的影响,最佳解决方案是:C. 添加 RDS 只读副本。更新报表作业,使其查询副本端点。为什么选项 C 正确:读取副本以报告工作负载Amazon RDS 只读副本是主数据库实例的只读副本,它会异步地将数据从主实例复制到只读副本,以分担读取密集型工作负载(例如,报表、分析)。通过将报表查询定向到只读副本,您可以将生产工作负载与长时间运行或资源密集型查询的性能影响隔离开来。只读副本支持多可用区(尽管此用例不需要),可确保在需要时进行报告的高可用性。经济高效的规模化只读副本使用与主数据库实例相同的实例类,但可以独立扩展(例如,如果报表需要更多资源,则可以升级到更大的实例类)。与升级主实例(选项 D)不同,只读副本允许您将资源专门用于报表,从而优化成本。无架构复杂性与 Amazon RDS Proxy(选项 A)不同,只读副本不需要对连接逻辑进行应用程序更改(尽管您必须更新报告作业的端点)。Amazon RDS 不支持具有三个可用区的多可用区 (选项 B)(它仅支持两个可用区的多可用区部署)。其他选项为何错误:A. Amazon RDS 代理RDS Proxy 改进了连接管理(例如连接池),但并未隔离读取工作负载。报表查询仍会在主数据库实例上运行,从而导致性能问题。它适用于处理连接高峰(例如来自微服务的高峰),但不适用于分离读写工作负载。B. 三个可用区Amazon RDS 不支持跨三个可用区的多可用区部署。最多只能部署在两个可用区(一个主可用区,一个备用可用区)。即使支持此功能,也无法解决报告工作负载对主实例的影响。D. 内存优化实例类升级到内存优化实例(例如 db.r6g.xlarge)可能会提高整体性能,但不会隔离报表查询。报告功能仍然会占用主实例的 CPU/内存资源,从而影响生产工作负载。比只读副本更贵,但只读副本更适合这种使用场景。方案C的实施步骤:创建只读副本导航至 RDS 控制台,选择主数据库实例,然后选择“创建只读副本”。配置副本(例如,实例类、存储、可用区放置)。更新报告工作修改报表应用程序的数据库连接字符串,使其指向只读副本的端点。确保副本在运行报表之前已完全同步(在 RDS 控制台中检查“复制状态”)。监控性能使用 Amazon CloudWatch 跟踪副本上的 ReplicaLag(落后于主副本的时间)和 CPUUtilization 等指标。如果延迟较高,请考虑扩展副本实例类别或使用多可用区只读副本以提高可用性。结论:选项 C(只读副本)是 Amazon RDS for MySQL 上将报表工作负载与生产流量隔离的最有效、可扩展且成本效益最高的解决方案。