How to choose right AWS EC2 instance for serving MySQL

Your database is not that big but depends on how you use it. Rather than throwing more power at an under-performing database try to optimise the performance with your current setup.

  1. Enable MySQL Slow Query Log and figure out what queries take too long. Is there a pattern?

  2. Are your table indexes correct? Are they actually used in your queries? Use EXPLAIN to find out.

  3. Have you got a lot of similar reads? caching the results in something like Memcache or Redis will help? Or add a Read-replica node for reads and offload that burden from the master.

  4. Configure caches, buffers, various limits, etc. The defaults are usually quite conservative.

In fact go through the MySQL Optimisation guide step by step and you'll soon find out that you can squeeze a lot more performance from your current instance.

Hope that helps :)