Use Auto-scaling. Spin-up new instances when a threshold is passed and back down again when traffic drops.

Horizontally Scale the Database Tier. MySQL in a master-master active passive cluster configuration. As load grows roll in read-only slaves. As an alternative use Amazon's RDS. Scale up to a larger EC2 instance is the load on a single master is a problem.

Use Striped EBS Volumes. For better EBS performance use Linux's software raid technology. EBS already has redundancy built in so you can stripe across a number of EBS volumes. 4 are recommended.

This is just a brief summary. Please read the original articles for the full details.

Reader Comments (2)

I don't think that using striped EBS volumes will give you great performance anymore.

I know that a year or more ago you could stripe EBS clusters in software raids to get linear performance gains, but it looks like this is no longer the case (as of 5-6 weeks ago when I tested).

I'm guessing that amazon is already doing this behind the scenes. When you reserve an EBS volume it is storing the data across a wide array of underlying physical devices already so using multiple EBS volumes doesn't seem to give an actual performance gain.

If anyone has tested this recently I'd be curious to see the results (with benchmarks)