跳至主要内容

Amazon RDS 代理

Amazon RDS 代理

提高应用程序的可扩展性、韧性和安全性

概述

Amazon RDS 代理是一个完全托管、高度可用的 Amazon Relational Database Service(RDS)的数据库代理,提高了应用程序的可扩展性、抵御故障的韧性和安全性。

许多应用程序,包括建立在现代无服务器架构上的应用程序,都可以与数据库服务器建立大量的开放连接,并且能够以高速率打开和关闭数据库连接,从而耗尽数据库内存和计算资源。Amazon RDS 代理允许应用程序汇集和共享与数据库建立的连接,从而提高数据库效率和应用程序的可扩展性。使用 RDS 代理,Aurora 和 RDS 数据库的故障转移时间减少了 66%,并且可以通过与 Amazon Secrets Manager 和 Amazon Identity and Access Management (IAM) 集成来管理数据库凭证、身份验证和访问。

无需更改代码,即可为大多数应用程序启用 Amazon RDS 代理。无需预置或管理任何其他基础设施,即可开始使用 RDS 代理。可基于底层数据库实例的容量轻松定价。对于预置的实例,按照 vCPU 付费。Amazon 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 RDS 代理实例维护着与 RDS 数据库实例之间已建立的连接池,从而减轻了建立新连接时通常出现的在数据库计算和内存资源方面面临的压力。RDS 代理还会共享不常使用的数据库连接,因此访问 RDS 数据库的连接将会减少。此连接池能使您的数据库高效支持大量和高频率的应用程序连接,以便应用程序可以在不影响性能的情况下进行扩展。

提高应用程序可用性

RDS 代理会在保留应用程序连接的同时自动连接到新的数据库实例,最大限度地减少因中断影响数据库可用性而造成的应用程序中断。发生故障转移时,RDS 代理会将请求直接路由到新的数据库实例。这将 Aurora 和 RDS 数据库的失效转移时间缩短了 66%。

管理应用程序安全性

Amazon RDS 代理允许您选择是否对数据库访问实施 IAM 身份验证,避免将数据库凭证硬编码到应用程序代码中,从而使您能够进一步控制数据安全性。RDS 代理还使您能够使用 Amazon Secrets Manager 集中管理数据库凭证。

完全托管式

数据库代理服务器有助于处理数据库上的额外负载。虽然传统的代理服务器允许应用程序更有效地扩展,但它们难以部署、修补和管理 —— 消耗的时间和精力可以更好地花在开发更出色的产品上。Amazon RDS 代理为您提供了数据库代理的优势,而不会带来修补和管理代理服务器的额外服务单。RDS 代理完全无服务器,可自动扩展以适应您的工作负载。

与数据库完全兼容

Amazon RDS 代理与受支持的数据库引擎的协议完全兼容,因此您可以在不更改应用程序代码的情况下为应用程序部署 RDS 代理。您只需将应用程序连接指向代理而不是 RDS 数据库,其余部分将得到无缝管理。

可用且持久

Amazon RDS 代理具有高可用性,并在多个可用区(AZ)上部署,以保护您免受基础设施故障的影响。每个可用区在其独立的、物理上显著不同的基础设施中运行,并已设计为具备高可靠性。在不太可能发生基础设施故障的情况下,RDS 代理端点将保持在线且一致,让您的应用程序能够继续运行数据库操作。

工作原理

Amazon RDS Proxy sits between your application and your relational database to efficiently manage connections to the database and improve scalability of the application.

使用案例

无服务器应用程序开发

借助 Amazon RDS 代理,您可以构建可扩展性和更可用性更高的无服务器应用程序,因为它们能更有效地使用关系数据库。现代无服务器应用程序支持高度可变的工作负载,可能会尝试打开大量新的数据库连接或使许多连接保持打开但处于空闲状态。连接激增或大量开放连接可能会增加数据库服务器负担,从而导致查询速度减慢和应用程序可扩展性受限。通过池化和共享已建立的数据库连接,RDS 代理能够让您从无服务器应用程序高效地扩展到更多连接。通过控制打开的数据库连接的总数,RDS 代理还使您能够保持可预测的数据库性能。最后,RDS 代理会拒绝可能降低数据库性能的不可用应用程序连接,从而保留了无服务器应用程序的可用性。

软件即服务 (SaaS) 和电子商务应用程序

SaaS 或电子商务应用程序通常将大量数据库连接保持在开放状态,以确保快速的用户响应时间,尽管这些开放连接中只有一小部分会在特定时刻得到积极使用。这些开放但空闲的连接仍然占用数据库内存和计算资源。您可以使用 RDS 代理保存来自应用程序的空闲连接,同时仅根据需要建立数据库连接,以优化活动请求,而不是通过过度预置数据库来支持主要空闲连接。