I'm looking to implement RDS Proxy and I need to gather some solid data to compare performance with and without it. Right now, we have a pretty large Aurora database spec and I think we can scale down since we don't need such high specs (currently 8x.large). What's the best way to simulate a lot of connections during this testing?
3 Answers
Why do you need a proxy in the first place? It could help to clarify your objectives!
RDS Proxy is relatively inexpensive compared to the size of your cluster. Why not just set it up in a staging environment, let it run, and then evaluate the outcomes after a month? It might save you time in the long run!
To test RDS Proxy effectively, start by collecting performance metrics from your current setup over a month. Then, implement the RDS Proxy in your production environment and gather the same data for another month. This way, you'll have a clear comparison to assess any improvements. Just make sure you've tested in lower environments first, though those won't replicate the exact performance you might see in production. In our case, we found that RDS Proxy looked great in staging, but when we switched to production, we actually experienced a slowdown of about 50ms per call due to how our MySQL connections were set up. Using DNS aliases for your endpoints can make toggling between direct connection and RDS Proxy pretty seamless, so consider that as you make changes.
That's a fair point! I plan to implement it in staging first to check for application integration, but I doubt we'll get very accurate data there. We're testing this in the region with the least traffic for our setup.

That’s the plan! We’ll test with RDS Proxy and then downsize our cluster, but we want to complete a proof of concept first before moving forward.