HAQM RDS Proxy

Make your applications more scalable, resilient, and secure

Why HAQM RDS Proxy?

HAQM Relational Database Service (HAQM RDS) Proxy is a fully managed, highly available database proxy for HAQM 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. HAQM RDS Proxy allows applications to pool and share connections established with the database, improving database efficiency and application scalability. With HAQM RDS Proxy, failover times for HAQM Aurora and HAQM 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).

HAQM 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 HAQM RDS Proxy. Pricing is simple and based on the capacity of underlying database instances. You pay per Aurora Capacity Unit (ACU) for HAQM Aurora Serverless v2 instances or per vCPU for provisioned instances. HAQM RDS Proxy is available for HAQM Aurora PostgreSQL-Compatible Edition, HAQM Aurora MySQL-Compatible Edition, HAQM RDS for PostgreSQL, HAQM RDS for MySQL, HAQM RDS for MariaDB, and HAQM RDS for SQL Server.

Benefits of HAQM RDS Proxy

Your HAQM RDS Proxy instance maintains a pool of established connections to your HAQM RDS database instances, reducing the stress on database compute and memory resources that typically occurs when new connections are established. HAQM RDS Proxy also shares infrequently used database connections, so that fewer connections access the HAQM RDS database. This connection pooling enables your database to efficiently support a large number and frequency of application connections, so your application can scale without compromising performance.
HAQM RDS Proxy minimizes application disruption from outages affecting the availability of your database by automatically connecting to a new database instance while preserving application connections. When failovers occur, HAQM RDS Proxy directly routes requests to the new database instance. This reduces failover times for Aurora and HAQM RDS databases by up to 66%. HAQM RDS Proxy also supports Multi-AZ with two readable standbys for typically under 35 second failovers, 2x improved write latency, added read capacity, and reduced minor version upgrade downtime to typically under 1 second.
HAQM RDS Proxy gives you additional control over data security by giving you the choice to enforce IAM authentication for database access and avoid hard coding database credentials into application code. HAQM RDS Proxy also allows you to centrally manage database credentials using Secrets Manager.
A database proxy server helps handle additional load on your database. While traditional proxy servers allow applications to scale more effectively, they are difficult to deploy, patch, and manage—consuming time and energy that could be better spent on developing great products. HAQM RDS Proxy gives you the benefits of a database proxy without requiring the additional burden of patching and managing your own proxy server. HAQM RDS Proxy is completely serverless and automatically scales to accommodate your workload.
HAQM RDS Proxy is fully compatible with the protocols of supported database engines, so you can deploy HAQM RDS Proxy for your application without making changes to your application code. You simply point your application connections to the proxy instead of the HAQM RDS database, and the rest is seamlessly managed.

Use cases

Serverless application development

With HAQM 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, HAQM RDS Proxy allows you to efficiently scale to many more connections from your serverless application. HAQM RDS Proxy also allows you to maintain predictable database performance by controlling the total number of database connections that are opened. Finally, HAQM 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 overprovisioning your database to support mostly idling connections, you can use HAQM RDS Proxy to hold idling connections from your application while only establishing database connections as required to optimally serve active requests.

Applications with unpredictable workloads

Applications that support highly variable workloads may attempt to open a burst of new database connections. Connection governance in HAQM RDS Proxy allows customers to gracefully scale applications dealing with unpredictable workloads by efficiently reusing database connections. First, HAQM RDS Proxy enables multiple application connections to share a database connection for efficient use of database resources. Second, HAQM RDS Proxy allows customers to maintain predictable database performance by regulating the number of database connections that are opened. Third, HAQM RDS Proxy removes unserviceable application requests to preserve overall performance and availability of the application.