Flash card
Amazon RDS Proxy: a fully managed, highly available connection pool sitting between clients and RDS or Aurora.
- Pools and reuses database connections, so many short-lived client connections share a much smaller set of backend ones.
- Written for the serverless failure mode: a Lambda function scaling to hundreds of concurrent executions opens hundreds of connections and exhausts the database.
- Holds client connections open through a failover and reconnects to the new writer, cutting failover time as the application experiences it.
- Retrieves database credentials from Secrets Manager and authenticates with IAM, so no password lives in the function.
- Priced per vCPU of the database instance it fronts, so it is a standing cost rather than a free improvement.
Pick it when
Pick it over a larger instance when connection churn is the constraint. Scaling up buys more max_connections and more cost; the proxy fixes the churn itself, and is the standard answer whenever Lambda talks to a relational database.
It's the wrong answer when
It is the wrong answer when the load is a slow query, a missing index, or read volume. None of those improve with pooling. It also does nothing for a workload with a handful of long-lived connections, because there is no churn to absorb.