Connection proxies - Amazon Aurora MySQL Database Administrator’s Handbook

Connection proxies

  • Amazon RDS Proxy is a fully managed, highly available database proxy for Amazon RDS that makes applications more scalable, more resilient to database failures, and more secure. Amazon RDS Proxy reduces the memory and CPU overhead for connection management on the database.

  • Using Amazon RDS Proxy, you can handle unpredictable surges in database traffic that otherwise might cause issues due to oversubscribing connections or creating new connections at a fast rate. To protect the database against oversubscription, you can control the number of database connections that are created.

  • Each RDS proxy performs connection pooling for the writer instance of its associated Amazon RDS or Aurora database. Connection pooling is an optimization that reduces the overhead associated with opening and closing connections and with keeping many connections open simultaneously. This overhead includes memory needed to handle each new connection. It also involves CPU overhead to close each connection and open a new one, such as Transport Layer Security/Secure Sockets Layer (TLS/SSL) handshaking, authentication, negotiating capabilities, and so on. Connection pooling simplifies your application logic. You don't need to write application code to minimize the number of simultaneous open connections. Connection pooling also cuts down on the amount of time a user must wait to establish a connection to the database.

  • To perform load balancing for read-intensive workloads, you can create a read-only endpoint for RDS proxy. That endpoint passes connections to the reader endpoint of the cluster. That way, your proxy connections can take advantage of Aurora read scalability.

  • ProxySQL, MaxScale, and ScaleArc are examples of third-party proxies compatible with the MySQL protocol. For even greater scalability and availability, you can use multiple proxy instances behind a single DNS endpoint.