Move a serverless SaaS database to Aurora with RDS Proxy connection pooling
A company runs a software-as-a-service (SaaS) application on AWS. The application consists of AWS Lambda functions and an Amazon RDS for MySQL Multi-AZ database. During market events, the application has a much higher workload than normal. Users notice slow response times during the peak periods because of many database connections. The company needs to improve the scalable performance and availability of the database. Which solution meets these requirements?
Community Votes
100% of anonymous learners picked answer D. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
Aurora separates compute from storage and its replicas scale reads independently, while RDS Proxy pools and reuses connections so a burst of concurrent Lambda invocations no longer translates into a burst of database connections.
A SaaS application runs Lambda functions against an RDS for MySQL Multi-AZ database, and during market events the workload spikes sharply and users see slow responses caused by many database connections. Both scalable performance and database availability need to improve.
Adding a connection pool outside the Lambda handler. A warm Lambda container's global state is shared unpredictably across concurrent execution environments, so a handler-external pool does not reliably bound the number of database connections, whereas RDS Proxy pools them centrally on the database side.
Community Discussion (6 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
Migrating to Amazon Aurora gives a distributed, self-healing storage layer that is more available than RDS for MySQL, and adding an Aurora Replica provides an additional reader so read-heavy work during a market event can be served without competing with the writer. RDS Proxy then manages the connection problem the question is actually about: many concurrent Lambda invocations each trying to open a connection. The proxy accepts all client connections and reuses a small pool of database connections, so connection setup overhead is paid once rather than per invocation, and the burst is absorbed without the database becoming a bottleneck.Why the Other Options Are Wrong
A: A CloudWatch alarm reacting to utilization can only add capacity after the problem has started, and adding an RDS for MySQL read replica does not address the connection storm at all, so latency during the burst is unchanged until scaling completes. B: It moves to Aurora and adds a read replica, which helps read scalability, but a connection pool held in Lambda global state is unreliable because a single warm container can serve concurrent execution environments, so the connection count is still not bounded. C: Route 53 weighted records operate at the DNS layer and distribute requests across endpoints, which has no effect on how many database connections a set of Lambda functions opens.Community Comment Notes
The community voted 100 to 0 for D, and the most-liked comment linked both the AWS blog on using Amazon RDS Proxy with AWS Lambda and the Aurora documentation for RDS Proxy. One commenter also addressed the B variant directly, noting that while moving connection settings outside the handler may let a Lambda reuse a connection, RDS Proxy is the better mechanism.Official Reference
Related Analysis
Practice All SAP-C02 Questions
Access 85 questions with complete answers and detailed explanations.
View Full SAP-C02 Practice Test →