跳至主要内容

Amazon RDS 代理

Amazon RDS 代理常见问题

页面主题

一般性问题

全部打开

RDS 代理是 Amazon RDS 的一项完全托管式、高度可用且易于使用的数据库代理功能,它使您的应用程序能够:1) 通过共享数据库连接来提高可扩展性;2) 将数据库故障转移时间减少 66% 并在故障转移期间保留应用程序连接,从而提高可用性;3) 选择性地对数据库实施 Amazon IAM 身份验证,并在 Amazon Secret Manager 中安全地存储凭证,从而提高安全性。

具有不可预测工作负载的应用程序:支持高度可变工作负载的应用程序可能会尝试打开大量新的数据库连接。RDS 代理的连接管理可让客户通过高效地重复使用数据库连接来优雅地扩展应用程序,以处理不可预测的工作负载。首先,RDS 代理会启用多个应用程序连接来共享数据库连接,以便有效地使用数据库资源。其次,通过调节打开的数据库连接的总数,RDS 代理还可让客户保持可预测的数据库性能。再次,RDS 代理将删除无法服务以保持应用程序的整体性能和可用性的应用程序请求。

经常打开和关闭数据库连接的应用程序:基于无服务器、PHP 或 Ruby on Rails 等技术构建的应用程序可能会频繁打开和关闭数据库连接,以满足应用程序请求。RDS 代理可让客户维护一个数据库连接池,以避免在建立新连接时对数据库计算和内存造成不必要的压力。

保持连接开放但空闲的应用程序:SaaS 或电子商务等行业的应用程序可能会使数据库连接保持空闲状态,以最大限度地缩短客户复活时的响应时间。客户可以使用 RDS 代理保存空闲连接,同时仅根据需要建立数据库连接,以优化活动请求,而不是通过过度调配数据库来支持主要空闲连接。

经历临时故障需要可用性的应用程序:借助 RDS 代理,客户可以构建能够透明地容忍数据库故障的应用程序,而无需编写复杂的故障处理代码。RDS 代理会自动将流量路由到新的数据库实例,同时保留应用程序连接。RDS 代理还会绕过 DNS(域名系统)缓存,将 Amazon RDS 和 Aurora 多可用区数据库的故障转移时间缩短多达 66%。在数据库故障转移期间,应用程序可能会遇到延迟增加的情况,可能必须重试正在进行的事务。

得到提升的安全性和集中式凭证管理:RDS 代理可让客户选择使用关系数据库实施基于 IAM 的身份验证,从而帮助他们构建更安全的应用程序。RDS 代理还可让客户通过 Amazon Secret Manager 集中管理数据库凭证。

RDS 代理转变了构建现代无服务器应用程序的方法,这些应用程序利用了关系数据库的强大功能和简单操作的优势。首先,RDS 代理会通过池化和重复使用数据库连接,使无服务器应用程序能够有效地扩展。其次,使用 RDS 代理,您便无需再处理 Lambda 代码中的数据库凭证。您可以使用与 Lambda 函数关联的 IAM 执行角色对 RDS 代理和数据库进行身份验证。再次,您无需管理任何新的基础架构或代码,即可充分发挥由关系数据库支持的无服务器应用程序的潜力。RDS 代理是完全托管式的,并会根据您的应用程序需求自动扩展其容量。

RDS 代理可用于兼容 MySQL 的 Amazon Aurora、兼容 PostgreSQL 的 Amazon Aurora、Amazon RDS for MariaDB、Amazon RDS for MySQL、Amazon RDS for PostgreSQL 和 Amazon RDS for SQL Server。有关支持的引擎版本列表,请参阅 Amazon Aurora 用户指南Amazon RDS 用户指南

只需在 Amazon RDS 控制台中单击几下,即可为 Amazon RDS 数据库启用 RDS 代理。启用 RDS 代理时,您可以指定要从中访问 RDS 代理的 VPC 和子网。作为 Lambda 用户,您可以为 Amazon RDS 数据库启用 RDS 代理并设置 Lambda 函数来访问它,只需在 Lambda 控制台中单击几下即可访问,而无需离开此控制台。

要通过 RDS 代理在应用程序和数据库之间进行身份验证,有多种选择:

您可以在 Amazon Secrets Manager 中使用传统的用户名和密码身份验证来存储您的数据库证书,从而集中化、保护并简化应用程序的凭证管理。使用 Secrets Manager 时,您可以像连接数据库一样连接 RDS 代理,您提供的用户名和密码与存储在 Secrets Manager 中的凭证相匹配,然后用于数据库连接。

为了增强安全性,您可以使用基于 IAM 的身份验证。您的应用程序可以使用 IAM 执行角色(与 Lambda 或 EC2 等服务相关联)通过 RDS 代理进行身份验证,而不是指定用户名和密码。IAM 身份验证有两种选择:

  • 对客户端到代理的连接使用 IAM 身份验证,对代理到数据库的连接使用 Secrets Manager
  • 对客户端到代理和代理到数据库的连接均使用 IAM 身份验证,无需在 Secrets Manager 中存储数据库密码

有关使用 RDS 代理进行身份验证的更多信息,请参阅 https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/rds-proxy-connecting.html

是。有关 Amazon RDS 代理 SLA 的完整详细信息,请参阅 Amazon RDS 代理 SLA 详细信息页面