Amazon RDS Proxy

Amazon RDS Proxy is like a smart assistant for your database, making it work better and safer. It helps applications become more scalable, handle failures in the database more smoothly, and ensures better security.

When many applications are connected to a database, it can use up a lot of memory and resources. Amazon RDS Proxy lets applications share and manage these connections, making the database and the application work more efficiently. It reduces the time it takes for the database to recover after a failure, making sure your application stays available and responsive.

The great thing is, you can use Amazon RDS Proxy without changing your application's code. It's easy to enable, and you don't need to set up any extra infrastructure. The cost is straightforward, based on the capacity you use. It works with various databases like Aurora, MySQL, PostgreSQL, MariaDB, and SQL Server.

Amazon RDS Proxy makes it easier for your applications to handle lots of database connections without causing problems. It's like a smart assistant that helps your applications work better and be more resilient.

When there's a sudden increase in traffic to your database, RDS Proxy prevents issues by reusing existing connections instead of creating new ones quickly. This avoids overloading the database with too many connections. It also queues or slows down new connections if there are too many at once, ensuring your application can still handle the load without crashing.

RDS Proxy is compatible with different database versions and can be used in most applications without changing any code. It even helps reduce the workload on your database by handling some tasks on its own.

In simpler terms, RDS Proxy is like a helpful friend for your database connections, making sure everything runs smoothly even when there's a lot going on.

aws-rds-proxy

Key Benefits:

  1. RDS Proxy is a fully managed database proxy service designed for Amazon RDS.

  2. Improved Application Performance: RDS Proxy keeps a pool of connections to your database, reducing the strain on resources when new connections are made. This means your application can handle a lot of connections without slowing down. By doing so, it reduces the strain on database resources like CPU and RAM, and helps minimize open connections and timeouts.

  3. Increased Application Availability: During database outages, RDS Proxy quickly connects to a new database, minimizing disruptions to your application. It makes failovers up to 66% faster.

  4. Better Application Security: RDS Proxy gives you more control over data security. You can use IAM authentication and avoid storing sensitive database credentials in your application code. AWS Secrets Manager helps you manage database credentials centrally.

  5. Fully Managed and Compatible: RDS Proxy acts like a helpful assistant, handling extra load on your database without the hassle of managing a proxy server. It's completely serverless and works seamlessly with various supported database engines, making it easy to use without changing your application code.

  6. It operates in a serverless, autoscaling, and highly available (multi-AZ) environment.

  7. Notably, it can significantly decrease RDS and Aurora failover times by up to 66%.

  8. RDS Proxy supports various database engines, including RDS (MySQL, PostgreSQL, MariaDB, MS SQL Server) and Aurora (MySQL, PostgreSQL).

  9. Most applications can seamlessly integrate RDS Proxy without requiring any code changes.

  10. It provides the option to enforce IAM Authentication for database access and ensures secure storage of credentials in AWS Secrets Manager.

  11. Importantly, RDS Proxy is never publicly accessible and must be accessed from within the Virtual Private Cloud (VPC).

Quotas and limits for RDS Proxy:

  1. Number of Proxies: You can have up to 20 proxies for each AWS account ID. If you need more, you can request additional proxies from AWS Support.

  2. Associated Secrets: Each proxy can connect to up to 200 different user accounts through Secrets Manager secrets.

  3. Proxy Endpoints: A proxy can have up to 20 endpoints. You can create, view, modify, and delete these endpoints.

  4. Proxy Association: For RDS DB instances in replication configurations, a proxy can only be associated with the writer DB instance, not a read replica.

  5. VPC and Accessibility: Your RDS Proxy must be in the same VPC as the database and can't be publicly accessible. The database can be publicly accessible, but specific network requirements need to be set up.

  6. Tenancy: RDS Proxy doesn't work with a VPC set to dedicated tenancy.

  7. Authentication: If using IAM authentication with RDS Proxy and an RDS DB instance, users connecting through the proxy must authenticate through sign-in credentials.

  8. SSL and DNS: RDS Proxy can't be used with custom DNS when using SSL hostname validation.

  9. Target DB Instance: Each proxy can be associated with a single target DB instance, but multiple proxies can be associated with the same DB instance.

  10. Statement Size: Any statement with a text size greater than 16 KB causes the proxy to pin the session to the current connection.

  11. Region-Specific Limitations: Certain AWS Regions have Availability-Zone (AZ) restrictions when creating a proxy.

Additional limitations for specific databases:

  • For RDS for MariaDB: Specific limitations include proxy listening ports, compatibility with self-managed databases, and restrictions related to certain MariaDB features.

  • For RDS for Microsoft SQL Server: Additional limitations include considerations for Secrets Manager, Active Directory, IAM authentication, and handling of certain SQL Server functionalities.

  • For RDS for MySQL: Limitations involve support for certain authentication plugins, proxy listening ports, compatibility with self-managed databases, and restrictions related to MySQL features.

  • For RDS for PostgreSQL: Additional limitations include session pinning filters, proxy listening ports, canceling queries, handling of PostgreSQL functions, support for streaming replication mode, and specific considerations for PostgreSQL 16.

It's important to be aware of these limitations when using RDS Proxy with different database engines. Always refer to the latest AWS documentation for the most up-to-date information.