I've got a site hosted on Amazon using a EC2 instance backed by an EBS volume. On the weekends, traffic spikes and I make the instance larger which helps quite a bit -- I'm no longer seeing CPU usage spiking to 100% and the server becoming non-responsive.
However, I do notice that disk reads are also very high (can't be helped, I don't think) and I'm wondering, at what point am I going to see some sort of failure because the disk can't keep up?
As you can see from the attached screenshot, it maxed out at 80MB/minute over the weekend. Does anyone have experience with AWS and know at what point I'll have to move to multiple-load balanced instances because EBS becomes the bottleneck?
The first thing to keep in mind that will have the most impact on your I/O performance is the instance type that you're using.
As for EBS volumes and the performance that you'll get, as the AWS FAQ suggests, you'll need to benchmark your application to see what to expect:
What this means is that the EBS rates you get many not necessarily be worse or better than local instance storage; it really depends on your data access behavior.
Further info is on the AWS EBS page:
Also keep in mind that the I/O performance not only includes the disk IO, but also the network traffic... so, the more network traffic your instance gets the less disk IO you'll get.
Depending on what you're serving, in-memory caching of objects may help considerably if that is possible for your type of application.
Also, here are some blog posts that benchmark the performance of EBS and local (ephemeral) volumes in various RAID configurations and tweaks for getting good IO performance:
EC2 Ephemeral Disks vs EBS Volumes in RAID
Amazon EC2 I/O Performance: Local Ephemeral Disks vs. RAID 0 Striped EBS Volumes
Getting Good IO from Amazon's EBS