I currently have a couple of cloud servers on Rackspace
- For application NGINX+PHP+Memcached+APC 2GB instance
- For Mysql Database 1GB instance
Our site at the moment is not very heavy in terms of traffic, we have about 100000 pageviews per month, and the servers have to still reach their max capacity.
Also ran some load test using ab and a few pages with 100 concurrent users and I get a healthy transaction rate of 30 tans per sec (is this good).
Now we are in expansion mode and there is a possibility of a a traffic surge on the site in the next 2 months, so I need to plan for scale (keeping the budgets in mind).
Some of the options I have though about
1. Launch a larger instance (more memory) for Mysql server in case there is a traffic surge and the site cannot take the load (the fastest solution I believe).
2. Perform some read-write splitting along with a Master-Slave or Maser-Master Setup.
3. Added a rackspace load balancer on top of my application server.
4. Sharding (I Think may be an over kill for my website at the moment)
Just need some suggestions on which solution should I go with to help us scale gradually.