AWS推出能提升关系型数据库应用可扩展性的代理服务

AWS针对关系型数据库服务(RDS)提供了代理服务RDS Proxy,这是一项全托管的服务,可以让数据库应用程序更具可扩展性,并且拥有能抵抗数据库故障的能力,提升应用程序可靠性,并且提升安全性。

AWS提到,许多应用程序,包括创建在AWS Lambda、Fargate、Amazon ECS或EKS服务之上的应用程序,都可以大量且快速地打开或关闭,与数据库服务器间的连接,而这样的操作容易耗全部据库的内存和计算资源。

Amazon RDS Proxy的执行实例会维护与RDS数据库执行实例间创建的连接池,减轻创建新连接时,对数据库内存和计算资源造成的影响,并且在应用程序间共享这些连接,进而提高数据库的效率以及应用程序的可扩展性。

RDS Proxy因为可以共享不常用的数据库连接,所以使得访问RDS数据库的连接更少,官方提到,这样的连接池能够有效率地支持大量和频繁的应用程序连接,当用户扩展应用程序时,便不会影响到数据库性能。

而且RDS Proxy能够在维持现有连接的状态下,连接新的数据库执行实例,因此可以最大程度减少因为数据库服务中断,所造成的应用程序可用性问题,当数据库故障时,RDS Proxy会直接将请求路由到新的数据库执行实例,这样可以使得故障转移时间减少66%。

另外,由于RDS Proxy让用户可强制数据库访问使用IAM身份验证,因此将能避免数据库凭证被写死在程序代码中的安全性风险,多增加了一道的安全性控制,而且借由RDS Proxy,用户还能以AWS Secrets Manager集中管理数据库凭证。

RDS Proxy目前仅可用于MySQL和PostgreSQL引擎系列的数据库,包括MySQL 5.6、MySQL 5.7,以及PostgreSQL 10.11和11.5。AWS解释,在Aurora集群中,连接池的所有连接,都由Aurora主要执行实例处理,因此当用户想要在读取密集的工作负载中执行负载均衡,做法是在Aurora集群使用读取端点。

另外,RDS Proxy必需要和数据库位于同一个VPC中,虽然数据库可以被公开访问,但是RDS Proxy却不行,而且RDS Proxy不支持压缩模式,像是mysql指令的–compress或-C选项皆不支持。