Amazon RDS Proxy is a fully managed, highly available database proxy for Amazon Relational Database Service (RDS) that makes applications more scalable, more resilient to database failures, and more secure.
Many applications, including those built on modern serverless architectures, can have a large number of open connections to the database server and may open and close database connections at a high rate, exhausting database memory and compute resources. Amazon RDS Proxy allows applications to pool and share connections established with the database, improving database efficiency and application scalability. With RDS Proxy, failover times for Aurora and RDS databases are reduced by up to 66% and database credentials, authentication, and access can be managed through integration with AWS Secrets Manager and AWS Identity and Access Management (IAM).
Amazon RDS Proxy can be enabled for most applications with no code changes. You don’t need to provision or manage any additional infrastructure to start using RDS Proxy. Pricing is simple and based on the capacity of underlying database instances. You pay per Aurora Capacity Unit (ACU) for Amazon Aurora Serverless v2 instances or per vCPU for provisioned instances. Amazon RDS Proxy is available for Amazon Aurora with MySQL compatibility, Amazon Aurora with PostgreSQL compatibility, Amazon RDS for MariaDB, Amazon RDS for MySQL, Amazon RDS for PostgreSQL, and Amazon RDS for SQL Server.
Benefits of RDS Proxy
Improved application performance
Increase application availability
Manage application security
Fully compatible with your database
How it works
Amazon RDS Proxy sits between your application and your relational database to efficiently manage connections to the database and improve scalability of the application.
Serverless application development
With Amazon RDS Proxy you can build serverless applications that are more scalable and more available because they use your relational databases more efficiently. Modern serverless applications support highly variable workloads and may attempt to open a burst of new database connections or keep many connections open but idle. A surge of connections or a large number of open connections could strain your database server, leading to slower queries and limited application scalability. By pooling and sharing already established database connections, RDS Proxy allows you to efficiently scale to many more connections from your serverless application. RDS Proxy also enables you to maintain predictable database performance by controlling the total number of database connections that are opened. Finally, RDS Proxy preserves the availability of your serverless application by denying unserviceable application connections that may degrade the performance of your database.
Software-as-a-Service (SaaS) and eCommerce applications
SaaS or eCommerce applications often keep a large number of database connections open to ensure quick user response times, although only a fraction of these open connections may get actively used at a given moment. These open but idle connections still consume database memory and compute resources. Instead of over-provisioning your database to support mostly idling connections, you can use RDS Proxy to hold idling connections from your application while only establishing database connections as required to optimally serve active requests.