Q47 — AWS SAA-C03 第16章
第 47/100 题 | ← 返回第16章
Q1247. 一家公司拥有一个支持无服务器应用程序的 Amazon RDS for Microsoft SQL Server 数据库。该数据库持续拥有大量新的数据库连接。每周有几次,数据库会达到最大连接数并出现性能问题。解决方案架构师需要提升数据库的性能效率。哪种解决方案可以满足这一要求?
- A. 创建一个 Amazon API Gateway 应用层 (APl) 来传递与数据库的连接。配置应用程序通过该应用层 (APl) 连接数据库,而不是直接连接。
- B. 使用 RDS Proxy 创建代理。配置应用程序通过代理连接数据库,而不是直接连接数据库。 ✓
- C. 创建 Amazon Aurora 数据库集群。在数据库集群上启用连接池。将数据迁移到数据库集群。将应用程序切换到新数据库。
- D. 创建 RDS for SQL Server 多可用区数据库。配置应用程序以连接到多可用区终端节点,而不是直接连接到数据库。
正确答案: B. 使用 RDS Proxy 创建代理。配置应用程序通过代理连接数据库,而不是直接连接数据库。
解析
该公司的 Amazon RDS for Microsoft SQL Server 数据库遇到了性能问题,原因是连接流失率高(频繁建立新连接),导致连接数达到上限。目标是通过优化连接处理来提高性能效率。关键要求:减少连接开销(避免达到最大连接数)。提高无服务器应用程序的性能(可能使用许多短期连接)。保持与 Microsoft SQL Server 的兼容性。选项分析:A. 创建一个 Amazon API Gateway API 来传递到数据库的连接。配置应用程序通过 API 连接到数据库,而不是直接连接。错误:API 网关并非为数据库连接池设计。这会增加延迟和复杂性(HTTP SQL 转换效率低下)。对于高频数据库连接来说,它并非可扩展的解决方案。B. 使用 RDS Proxy 创建代理。将应用程序配置为通过代理连接到数据库,而不是直接连接。正确的:RDS Proxy 是 RDS 的完全托管连接池服务(支持 MySQL、PostgreSQL 和 SQL Server)。好处:减少连接开销(重复使用连接而不是创建新的连接)。防止最大连接限制(池空闲连接)。提高性能(特别是对于具有许多短暂连接的无服务器应用程序)。无需更改代码(只需更新连接字符串)。此场景的最佳选择。C. 创建 Amazon Aurora 数据库集群。在数据库集群上启用连接池。将数据迁移到数据库集群。将应用程序切换到新的数据库。错误:Aurora 不支持 Microsoft SQL Server(仅支持兼容 MySQL/PostgreSQL 的引擎)。对于 SQL Server 数据库,迁移到 Aurora 并不可行。对于此用例来说这不是一个有效的解决方案。D. 创建 RDS for SQL Server 多可用区数据库。配置应用程序以连接到多可用区终端节点,而不是直接连接到数据库。错误:多可用区提供高可用性(故障转移),而不是连接池。没有解决连接限制问题。连接中断的性能没有得到改善。为什么 RDS Proxy(选项 B)是最佳解决方案:连接池:RDS Proxy 维护一个数据库连接池,减少了为每个请求创建新连接的需求。可扩展性:高效处理数千个并发连接。无服务器友好:非常适合频繁打开/关闭连接的基于 Lambda 的应用程序。SQL Server 支持:RDS Proxy 可与 RDS for SQL Server 兼容。无停机时间:无需迁移数据库或修改应用程序逻辑(只需更新连接字符串)。最终答案:B. 使用 RDS Proxy 创建代理。配置应用程序通过代理连接到数据库,而不是直接连接。实施步骤:在 AWS 控制台中创建 RDS 代理:选择 RDS for SQL Server 实例作为目标。配置连接池设置(最小/最大连接)。更新应用程序连接字符串:用 RDS 代理端点替换直接 RDS 端点。监控性能:检查 CloudWatch 指标,了解连接流失率是否降低,延迟是否得到改善。此解决方案将消除连接限制问题,并提升无服务器应用程序的性能。