Handle multiple simultaneous requests Mysql

sorry for this noob question. I do have an application which expects about 5000 users accessing it simultaneously, my current database is running on RDS and for each request, a query is called, it takes about 30 milliseconds to be executed.

The main caveat is when we open multiple connections the CPU database spikes to 100% and the app starts to getting timeout error.

What solution would be possible to handle so many requests?

Architecture:

  • 3 EC2 db.r5.16xlarge(db.t3.large) running behind a load balancer
  • 1 RDS (db.t3.2xlarge) MySql 5.7

enter image description here