规划在哪里使用 RDS 代理 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

规划在哪里使用 RDS 代理

您可以确定哪些数据库实例、集群和应用程序可能从使用 RDS Proxy 中受益匪浅。为此,请考虑以下因素:

  • 任何出现“连接过多”错误的数据库集群都很适合与代理相关联。这通常以 ConnectionAttempts CloudWatch 指标的值较高为特征。代理允许应用程序打开许多客户端连接,而代理管理与数据库集群的少量长期连接。

  • 对于使用较小 Amazon 实例类(如 T2 或 T3)的数据库集群,使用代理可以帮助避免内存不足情况。它还可以帮助减少建立连接时的 CPU 开销。处理大量连接时可能会发生这些情况。

  • 您可以监控某些 Amazon CloudWatch 指标,以确定数据库集群是否接近某些类型的限制。这些限制针对连接数以及与连接管理关联的内存。您还可以监控某些 CloudWatch 指标,以确定数据库集群是否正在处理许多短期连接。打开和关闭此类连接可能会给数据库带来性能开销。有关要监控的指标的信息,请参阅 使用 Amazon CloudWatch 监控 RDS Proxy 指标

  • Amazon Lambda 函数也可以很好地使用代理。这些函数进行频繁的短数据库连接,可受益于 RDS Proxy 提供的连接池。您可以利用已为 Lambda 函数提供的任何 IAM 身份验证,而不是在 Lambda 应用程序代码中管理数据库凭证。

  • 代理服务器非常适合那些通常需要打开和关闭大量数据库连接,并且没有内置的连接池机制的应用程序。

  • 长时间保持大量连接打开的应用程序通常可以很好地使用代理。诸如软件即服务 (SaaS) 或电子商务等行业中的应用程序通常会使连接保持打开状态,从而最大限度地减少数据库请求的延迟。通过 RDS 代理,与直接连接到数据库集群相比,应用程序可以将更多连接保持为打开状态。

  • 由于为所有数据库集群设置 IAM 身份验证和 Secrets Manager 较为复杂,因此,您可能尚未采用此类身份验证。如果是这样,您可以保留现有的身份验证方法,并将身份验证委派给代理。代理可以为特定应用程序的客户端连接强制执行身份验证策略。您可以利用已为 Lambda 函数提供的任何 IAM 身份验证,而不是在 Lambda 应用程序代码中管理数据库凭证。

  • RDS 代理可以帮助使应用程序更具弹性,对数据库故障更透明。RDS 代理绕过域名系统(DNS)缓存,以将 Aurora 多可用区数据库的故障转移时间缩短多达 66%。RDS 代理还会自动将流量路由到新的数据库实例,同时保留应用程序连接。这使得失效转移对应用程序更加透明。