Amazon AWS EC2 vs Linode vs Digitalocean: Cloudserver showdown

I have experience with amazon’s AWS cloudservices for years now, but still have problems with EBS (=amazon network storage) performance.  It is not very fast and if you just want to run a simple LAMP server it requires a lot of work and experience to set it up the right way. But how fast is it? How does it compare to the offerings from Linode and the new kid on the block: digitalocean?  Both have their advantages: Linode has it’s standard 8 core architecture and RAID. digitalocean has fast SSD disks. But how do they stack up against amazon?

Compare same-priced offerings.

To compare apples with apples instead of oranges, I decided to test the following offerings:

- Amazon Small instance –  (with high-utilisation reserved instance) $24 per month.

- Linode 1Gb plan – Costs $20 per month

- Digitalocean $20 plan.

What do they offer for this price?

Amazon: 1.7 GiB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of local instance storage. But the local storage can not be used for permanent storage, as it is ephemeral (destroyed upon server termination). So you need additional EBS storage attached to your instance, which adds to the cost. Also this is with only 1Gb outgoing data transfer, additional data costs $0.12 per Gb. EBS storage is $0.10 per Gb per month, so add $2 per month for 20Gb of EBS.

Linode: 1Gb of memory, 24 GB RAID Storage, 8 cores with lowest priority, 2Tb data transfer included. additional data at $0.10 per Gb

Digitalocean: 2G memory, 2 cores, 40Gb SSD storage, 3Tb transfer included, additional data transfer $0.02 per Gb

Note that amazon can cost a lot more if your data transfer is higher. If you really need 2T outgoing traffic, amazon bills you a hefty $240 additional cost.

Benchmarking

For this test I used Amazon Linux (fedora style distro) for EC2 and Centos 6.4 for Linode and DigitalOcean. Apache 2.2.x, php 5.3.x, mysql and AB for the test.

I requested a php page that shows a calender of events, which it fetches from the database, does some layouting and shows the result. It is build upon Laravel 3.

I did multiple AB tests.

  1. 100 requests and a concurrency of 10. (ab -n 100 -c 10)
  2. 500 requests with a concurrency of 10 (ab -n 500 -c 10)
  3. 1000 requests with a concurrency of 20 (ab -n 1000 -c 20)
  4. 2000 requests from 2 different machines each with a concurrency of 40. (ab -n 2000 -c 40 on both machines at the same time)

The tests were run from an independent server hosted by another company.

These are the results:

test Req/sec Time/req transferrate load
linode -n 500 -c 10 66,47 150 2743
linode -n 100 -c 10 60,25 165 2529
linode -n 100 -c 10 53,73 186 2254
linode -n 500 -c 10 67,25 148 2778
linode -n 100 -c 10 64,12 156 2655
linode -n 1000 -c 20 78,52 254 3243 3,22
linode -n 2000 -c 40 42,23 947 1743 14,95
test Req/sec Time/req transferrate load
amazon -n 100 -c 10 4,51 2216 190
amazon -n 100 -c 10 4,39 2280 185
amazon -n 500 -c 10 4,59 2177 193 8,15
amazon -n 1000 -c 20 4,51 2435 190 17,06
amazon -n 2000 -c 40 2,24 17830 94 18,5
test Req/sec Time/req transferrate load
digitalocean -n 100 -c 10 26,4 378 1107
digitalocean -n 500 -c 10 34,09 293 1407
digitalocean -n 100 -c 10 28,24 354 1165
digitalocean -n 500 -c 10 33,94 294 1401 6,53
digitalocean -n 100 -c 10 29,26 341 1207
digitalocean -n 1000 -c 20 32,7 611 1345 12,45
digitalocean -n 2000 -c 40 18,2 2112 712 14,35

During the tests I run top on each server and wrote down the highest server loads for the bigger tests.

Conclusion

Well, amazon just sucks. At only 4.5 request per second it is about 15 times SLOWER than the linode box. Is this due to the slow EBS volumes or is this due to their 1 ECU compute unit?  Looking at the high load figures, the problem seems CPU-bound in amazons case.

Digital ocean is about half the speed of Linode, in spite of their fast SSD disks. But they are stilll 6 times faster than amazon.

But the winner without any doubt is Linode. Their 8 core server really rocks in this case.

I have to rethink my amazon strategy. Is amazon overpriced? do I need expensive high-CPU instances to compete with the linode performance? It seems linode has the best cards in this space currently, and the differences are too big to ignore.

 

 

 

16 Responses to “Amazon AWS EC2 vs Linode vs Digitalocean: Cloudserver showdown”

  1. MattW 2 July 2013 at 16:59 #

    Hi, nice breakdown. Can you link this AB tool you reference here? Searching for AB is rough because search results have all the A/B tools like optimizely dominating the results.

  2. Evan 3 July 2013 at 18:07 #

    Most of the difference can be attributed to the CPU isolation. AWS provisions a half core per small with strict isolation. Linode provisions the entire machine (8 cores, effectively 16 EC2 compute units) but gives the small instance the lowest priority. If the other tenants are not utilizing the box, then we should see the Linode machines performing 16 times better for a CPU bound workload, which is what you found.

    However, your Linode performance will not increase with larger instances, since you are already taking advantage of the entire machine and basically arbitraging your need for CPU but not RAM. If the other tenants show up and start using their provisioned CPU your performance will collapse to near-AWS levels.

  3. mikhailov 26 July 2013 at 07:28 #

    Nice tests but with lack of sense. It suits you in case of very stricted budget. I don’t believe that servers bill is more important than bill to setup/maintetance (your dev team summary salary).
    Everything has it’s own cost even cheap things. Don’t forget the main AWS advantage – reduce maintenance cost by using very clever underlying technical solution.

  4. Mike 13 September 2013 at 23:28 #

    Hey,

    I am interested in running this benchmark on my servers . Do you mind sharing with me how to setup the php page with the database so I am comparing the exact same setup.

    Thanks

  5. computer coupon deals 15 September 2013 at 01:30 #

    Hi there it’s me, I am also visiting this site daily, this web page is truly fastidious and the users are truly sharing nice thoughts.

  6. yen 9 October 2013 at 06:33 #

    The 8 cores doesn’t really appeal to me that much because most of my stuff is IO and RAM intensive. And if using technologies such as node.js, it’s more difficult to make use of all the CPU processing power. Depends on the use case, but both VPS providers look good.

  7. Darell 23 October 2013 at 08:58 #

    I love what you guys tend to be up too. This kind of clever work and exposure! Keep up the excellent works guys I’ve incorporated you guys to my blogroll.

  8. Rickey 24 October 2013 at 07:52 #

    It’s hard to come by well-informed people in this particular
    topic, however, you seem like you know what you’re talking about!
    Thanks

  9. hosting uk 2 December 2013 at 19:50 #

    Shoppers are often getting dumbfounded by the robustness
    of their program infrastructure and computer software. There
    are a number of affordable plans to opt for and so the only thing that you need to
    do is sign up for them today. One incredibly refreshing thins about AN
    Hosting, as well, is that they’re website is clean, simple, and very straightforward.

  10. nauseous 5 December 2013 at 05:18 #

    It’s obvious why Linode is better. If you check AWS on even medium is only 1 core on M1 and with Linode it’s an amazing 8 cores which is awesome!. AWS is cool but Linode is totally awesome.

  11. Joel Rivera 17 January 2014 at 03:20 #

    Thanks for the article. I’m currently looking for a new host. I heard GreenGeeks were also pretty good. Any opinions?

  12. Christopher Price 28 January 2014 at 13:09 #

    Came to the same conclusions before seeing this article – Linode is blissfully simple. I’m amazed at the value. Even if performance drops, that’s something Linode can load-balance and charge extra for should demand get intense.

    My main fear is all the awesome will go to their heads. I just suffered that fate at Pressable and watched rates quadruple… sigh.

    AWS has its benefits in the redundancy and geolocation game, but Linode shows startups can fight back and retake ground too.

  13. higkoo 2 March 2014 at 12:19 #

    Yes.

    I found performance of aws is very poor ,too !

    Thanks for share data.

Trackbacks/Pingbacks

  1. Cloud server review and comparison: Amazon AWS EC2 vs Linode vs DigitalOcean - 2 July 2013

    [...] with author consent. Originally published on Cosninix the blog of the author Ronald van [...]

  2. How to Set Up a LAMP server on Linode | Ray Wenderlich - 20 March 2014

    [...] most importantly, Linode is faster for basic [...]

  3. How to Set Up a LAMP server on Linode | All Of App - 21 March 2014

    [...] most importantly, Linode is faster for basic [...]

Leave a Reply