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.