Q42 — AWS SAA-C03 第16章
第 42/100 题 | ← 返回第16章
Q1242. 一家公司运行一个无服务器应用程序,该应用程序使用 Amazon RDS 作为 AWS 上的后端数据库。该应用程序有时会遇到不可预测的流量增长。在流量高峰期间,该应用程序频繁打开和关闭与数据库的连接。流量高峰会导致应用程序从数据库接收错误或耗尽连接。该公司需要确保该应用程序始终具有可扩展性和高可用性。哪种解决方案无需对应用程序代码进行任何更改即可满足这些要求?
- A. 增加RDS数据库参数组的最大连接数。
- B. 为 RDS 数据库实例启用多可用区部署来处理连接管理。
- C. 在无服务器应用程序和 Amazon RDS 之间部署 Amazon RDS 代理 ✓
- D. 购买 Amazon RDS 的预留实例,以确保数据库在高峰负载流量期间具有高可用性。
正确答案: C. 在无服务器应用程序和 Amazon RDS 之间部署 Amazon RDS 代理
解析
该公司的无服务器应用程序经常遭遇不可预测的流量高峰,导致数据库连接频繁打开/关闭、连接错误以及连接耗尽。目标是在不修改应用程序代码的情况下确保可扩展性和高可用性。关键问题:连接耗尽(峰值期间连接耗尽)。高连接流失率(频繁的打开/关闭操作,会降低性能)。需要在不更改代码的情况下实现可扩展性和高可用性。选项分析:A.增加RDS数据库参数组的最大连接数。优点:暂时增加连接限制。缺点:无法解决根本原因(连接流失和效率低下)。RDS 仍然对连接数有硬性限制(例如,MySQL 的连接数约为 16,000)。可扩展性并没有得到改善——只是延迟了问题的发生。结论:这不是一个可持续的解决方案。B. 为 RDS 数据库实例启用多可用区部署来处理连接管理。优点:提供高可用性(故障转移支持)。缺点:对连接管理没有帮助(多可用区用于故障转移,而非连接池)。无法防止连接耗尽或提高可扩展性。结论:与问题无关。C. 在无服务器应用程序和 Amazon RDS 之间部署 Amazon RDS 代理。优点:管理连接池,减少频繁打开/关闭连接的需要。通过有效地重用连接来提高可扩展性。通过在应用程序之间共享连接来防止连接耗尽。高度可用(与多可用区 RDS 配合使用)。不需要更改应用程序代码(透明工作)。缺点:对于此用例而言,没有什么重大缺点。结论:最佳解决方案——直接解决连接管理和可扩展性问题。D. 购买 Amazon RDS 预留实例,确保数据库在峰值负载流量期间保持高可用性。优点:降低可预测工作量的成本。缺点:不会提升可扩展性(预留实例是为了节省成本,而非提升性能)。多可用区(而非预留实例)已提供高可用性。不能解决连接耗尽问题。结论:与问题无关。最终答案:C. 在无服务器应用程序和 Amazon RDS 之间部署 Amazon RDS 代理。为什么 RDS Proxy 是最佳选择:连接池:减少频繁打开/关闭连接的开销。可扩展性:高效处理峰值流量,且不会达到连接限制。高可用性:与多可用区 RDS 无缝协作。无需更改代码:RDS Proxy 管理连接时,应用程序保持不变。无服务器友好:非常适合工作负载不可预测的基于 Lambda 的应用程序。