Which is faster for read access on EC2; local drive or EBS?
Solution 1:
Just to add a little to the consensus that is EBS faster...
An important point to understand here is that instance storage speed is unpredictable - Amazon makes no guarantees about it.
This information comes from the book Cloud Application Architectures by George Reese (which seems pretty good from what I've skimmed it so far.) It includes a table titled Comparison of EC2 data storage options (p. 41); here's a snippet of that table (in the book there are several other characteristics compared):
S3 Instance EBS
Speed Low Unpredictable High
Reliability Medium High High
Durability Super high Super low High
So, instance storage might outperform EBS in read access sometimes, but if you want constant high speed, you indeed need to go with EBS. As Reese puts it in his book:
Another issue is the unpredictability of performance in the instance storage. You might actually think that it should be faster than the other options, and sometimes it is. Sometimes, however, it is unbelievably slow - slower than an NFS mount over a 10bT Ethernet connection. EBS, on the other hand, consistently gives you the performance of a SAN over a GB Ethernet connection.
Solution 2:
We ran up roughly $1000 in AWS charges in a systematic exploration of this and related questions, and posted an extensive analysis.
For random (small) reads, we found "local" (EC2 instance) storage and EBS to have similar performance, but local storage has a better latency tail.
For sequential (bulk) reads, EBS is faster on m1.small, but local is faster on m1.large. We didn't directly compare local vs. EBS on other instance types, but we did find that increasing instance size has much more effect on local-store performance than on EBS performance.
There's also a cost question. By shifting I/O from EBS to the local disk, you'll reduce your AWS fees.
Solution 3:
If you're after database performance in Amazon, you may find this article useful: http://www.mysqlperformanceblog.com/2009/08/06/ec2ebs-single-and-raid-volumes-io-bencmark/
The general vibe from my own research (have been reading about this for a few weeks) is that EBS is the faster option.
Solution 4:
Amazon has made vague claims that EBS will generally outperform the "local" scratch partition on an EC2 instance. I know that I've experienced higher throughput on an EBS volume in my own use, but I had not bothered to measure latency.
If you're curious about performance in a particular use, your best bet is probably to set up a test instance. I know that I would.