Cloud server showdown: Amazon AWS EC2 vs Linode vs DigitalOcean

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 own 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 ($20 per month)
  • DigitalOcean ($20 plan)

What do they offer for this price?

Amazon: 1.7 GB 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 20 GB of EBS.

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

Digitalocean: 2GB memory, 2 cores, 40 GB SSD storage, 3 TB 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 2 TB 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.

DigitalOcean 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.

 

Published with author consent. Originally published on Cosninix the blog of the author Ronald van Woensel.

62 Comments

  1. Doug July 2, 2013 at 17:46 #

    Have you taken a look at VMware’s recent offering into this space? I looks pretty interesting to me and may be worth a shot.

  2. Craig July 2, 2013 at 18:04 #

    Your findings sort of confirm our own. We’re a hosting company as well but we recently wrote about how much AWS costs in comparison for bigger deployments.
    http://www.codero.com/blog/dont-believe-the-hype-dedicated-hosting-is-3x-cheaper-than-amazon-web-services-aws/

    • snookie August 3, 2013 at 05:40 #

      Guess you didn’t pay much attention to the EBS bandwidth verbiage that is on the Amazon instance sizing pages. Anything less than a x4large is going to have seriously bad EBS performance. The only way to get less than embarrassing disk performance is to choose the “optimized” flavor. That and run your workload entirely from the ephemeral disk(s). But there is an SSD option too and AFAIK that’s in-chassis SSDs as the ephemeral storage layer. Trying to run SSD as the EBS store is pointless unless you’re using a 10Gb link. The ‘cluster’ flavors have this.

      The major problem with ‘cloud’ is that it’s eye-wateringly over-subscribed and nobody (making these kinds of blog posts) wants to pony up the money to get fast performance. I mean, getting your own colo-rack and stuffing it full of the best hardware you can afford is easily 30-50% cheaper than having the likes of Amazon, Terremark, or Rackspace do it for you. I have better and faster gear in my bedroom than Amazon has and it’s decidedly 2nd hand. But the massive win is that I’m not sharing the interconnects (GigE) with a few million other people.

  3. Fawaz July 2, 2013 at 18:19 #

    Have you tried Google’s Compute Engine or Microsoft’s Azure (they over linux now)?

  4. mikemike July 2, 2013 at 18:45 #

    What about Rackspace? Their cloud offering is comparable to the others (Cloud Files vs EBS, etc.). I’m getting 60 reqs/sec on a database-driven (3 queries) Django generated page with a 1GB app server (Nginx uWSGI) and a 1GB database server (Postgres, no connection pooling).

  5. Marco July 2, 2013 at 19:02 #

    Mind sharing the location, or ping latency, to each of the server’s you benchmarked? That’ll make a difference in how these numbers were derived.

    • Matth July 2, 2013 at 19:27 #

      Marco is correct. “The tests were run from an independent server hosted by another company.”

      Latency plays a _huge_ factor when using the apache bench program. To get more accurate results, either run it from the machine itself or from another machine on the same local network.

      • PJ July 3, 2013 at 10:33 #

        Yes, let’s see the traceroutes. But maybe it wasn’t an accident the Linode has better connectivity?

    • Gilles July 2, 2013 at 19:28 #

      I’m also interested in that data. It would give us some insight.

  6. Engineer July 2, 2013 at 19:54 #

    I think these tests are pretty illuminating. The reason for running the tests from another server makes sense, as you want to check capabilities serving data onto the actual internet…. but the locations of the server relative to the hosts is a factor too.

    I’m also interested in knowing more details about the work the servers were doing. For instance, is Digital Oceans lower performance compared to Linode due to them oversubscribing their upstream network connection? Due to lower CPUs? Due to a relatively lower io requiremetn for this test compared to, say, serving static pages where the SSDs would have a bigger impact?

    Of course with any benchmark people are going to suggest a lot of scenarios and you can’t test everything, but this is great stuff for a rough comparison.

  7. Raides July 2, 2013 at 19:57 #

    The possible reason people who are smart choose Amazon over Linode is because the speed is in the design. Also probably for the major fact that Linode security and user database have been compromised twice with two major leaks in such a short life span.

    • Glenn Plas September 10, 2013 at 15:08 #

      That is the reason I would take Linode. Also, as a Linode customer, you just can’t beat the speed of their support. it’s within minutes you get answers.

      Amazon, like any other company gets a security issue sooner or later. It’s the way this is being dealt with that is important . Try to google for amazon security issues and get some coffee ready to read them

      The linode offer has also expanded, you get 48Gb instead of 24Gb. I’ve gotten 2 free upgrades in the last year from linode. ALL customer got the chance to double their machine (I had a 8Gb, that became a 16Gb for free). Also you get a disk space pool you can assign to any machine you want. that pool was also met with a free upgrade. Now who does that these days in the cloud ?

  8. Riskable July 2, 2013 at 19:57 #

    I’d love to see a comparison with Rackspace as well. I’ve been using them for some time now and I’ve found their instances to be vastly superior to Amazon’s.

    I also use Codero but their lack of API means I can’t scale my use of their services. They’ve been promising an API since 2011 but it still hasn’t surfaced. Their services are only good for one-offs at this point.

    • Craig July 2, 2013 at 21:58 #

      Riskable, Mind talking to me one on one? We got something big in the works and I’d like to see what you think of it :)

      • Lina July 3, 2013 at 04:44 #

        Craig are you the author of this article? I’d love to see a comparison of Rackspace.

        • Craig Campbell July 3, 2013 at 17:52 #

          No Lina, I am not I just commented earlier that where I work (Codero Hosting)we did a similar price comparison with dedicated equipment vs AWS.

          I actually used to work at Rackspace on their cloud product and I think if you’re using $$$ as a comparison it would be very similar to AWS sadly. The performance should be better at Rack than at AWS as well obviously the support.

  9. LOL July 2, 2013 at 19:58 #

    Yes, let’s ignore Azure, what a joke on a biased article

    • no spam July 2, 2013 at 21:54 #

      what an idiotic response. typical ms fanboy. he tested 3 services. there are more. he wasn’t “ignoring” azure. the world does *not* turn around microsoft (surprise!).

  10. Azure July 2, 2013 at 20:07 #

    http://www.youtube.com/watch?v=yYdWnjbAx1E

    1:52:30

  11. Colin Mollenhour July 2, 2013 at 20:25 #

    DigitalOcean is by far the least reliable of the three. My droplet becomes unavailable 2-3 times per day on average for about 3 minutes at a time according to Pingdom. Linode has been nearly rock-solid and I haven’t bothered with EC2 for the reasons you already mentioned. Thanks for the comparison! AWS definitely has it’s place but for the low-end VPS it is hard to beat Linode.

  12. Karsten July 2, 2013 at 20:30 #

    # Benchmark Problems
    * Is the MySQL server databases are on the same box?
    * Running the apachebench tests remotely makes this benchmark of no value
    * You need to capture disk and cpu stats (iostat -xd, vmstat) for result validation
    * Stock Apache configs might not work well for benchmarking single core versus multi-core
    * 64bit Centos? 64 bit packages?

    # Price Comparison Problems
    * Amazon’s usefulness is the value of the standard and high cpu extra large instances coupled with its enterprise level services
    * Amazon has an internal network where you don’t have bandwidth limits.
    * Digital Ocean’s network is all public, so all traffic counts toward your transfer total

  13. Tongfa July 2, 2013 at 20:59 #

    On Amazon, I thought one has a choice whether the root device (local storage) is ephemeral or not, depending on the OS image chosen. And of course it is destroyed upon server termination, that is telling Amazon you are giving the resource back to them. Ephemeral means the changes to the local device aren’t persisted between boots, and this would be useful for spawning many servers off the same image, for example.

  14. Max July 2, 2013 at 21:48 #

    You chose the worst possible AWS offering at the highest possible price point. Spot instances run far, far cheaper, and AWS have been giving a lot of love to their most heavily utilised sizes, and have released the m3 series of instances, which are generous in terms of CPU, particularly if you have the engineering skill to autoscale and autoheal, and use AWS’s services efficiently – you suddenly end up with a *lot* of bang for your buck.

  15. Leonid July 2, 2013 at 21:53 #

    Hey there,

    we have a big linode cluster, like 80 virtual machines. And what is bad about it is that they have unexpected CPU performance. For example we have like 50 application servers with same software installed and with even load distributed by nginx frontend, and all of them show different performance. The reason for that is not guarantied CPU resource in linode, if you have a greedy CPU neighbor on same host, you can really suffer from it. I dunno what would a guy with a single instance do in this case, because one day you can simply find your node working really slow. The only real way out of it is migration to another host. But with single node it can cause downtime.

    We had to develop a complex monitoring system based on Zabbix that generates upstream for nginx with different weights based on nodes performance.

    That’s just a huge kick off, in the rest Linode is great :)

    Leonid

    • PJ July 3, 2013 at 09:36 #

      I don’t have a big cluster but this is what I’ve observed too, pretty much. That said, I use Linodes all day, every day. I haven’t tried Digital Ocean yet, mostly because my Linodes keep me busy! Amazon is a dead end, from what I can tell. Linode support is the best I’ve encountered since 1999 when I first started paying for hosting. They have a huge, friendly support team awake all night (24/7) responding to tickets, how many hosts can say that? Also the community is helpful, all your forum posts are broadcast to the Linode IRC channel where the hardcore nerds hang out.

      Thanks Ronald van Woensel for the benchmark test! I have wanted to do my own benchmarks but there’s never enough time ;-)

      • Leonid July 3, 2013 at 14:50 #

        Hey, PJ.

        i wonder how do you deal with this floating CPU performance?

        Thanks,
        Leonid

        • PJ July 3, 2013 at 21:27 #

          @Leonid At the moment, I don’t have any sites that need a cluster. So it’s not an issue for me yet. (Send me some traffic! Haha.) The biggest database I deal with fits on one 4G Linode and has room to expand. If I see the database getting hammered I’ll tinker with the code to see if I can find something else to cache, optimize, delete, tweak. Mostly I just check Linode’s dashboard graphs, PHP microtime() and Hyperspin.

  16. marty July 2, 2013 at 23:05 #

    Don’t forget to test atlantic.net

    • PJ July 3, 2013 at 09:39 #

      +1
      I was an atlantic.net DSL customer many years ago, great company ;-) If I’m not mistaken, they were one of the first ISPs in Florida to offer Internet access. Nice to see them in the VPS space.

  17. Nathan July 2, 2013 at 23:05 #

    Security is not a concern ?

    Linode is a giant MESS given they have been hacked twice. Covered it up both times, no security audits, no getting rid of the buggy Coldfusion management app, no idea if credit cards were compromised.

    Linode is a joke. Sad pathetic joke.

  18. Marcond July 2, 2013 at 23:45 #

    I’ve used many services, from many companies. I can tell from experience that Linode is not a joke, it is actually the standard everyone try to beat. The only real flaw Linode have is their delay to adress a service oriented solution, with a proper API. Today, they still stick within the VM paradigm. Which by the way is not that bad a all. It is that simple.

    • Raides July 3, 2013 at 00:22 #

      And the fact that Linode was hack twice in a short time via application exploits doesn’t make them at all the standard. They marketed well, and the gave good deals. However they bit off more than they could chew and got owned for it.

      To the Rackspace comment, I think liquidweb should be mentioned because they are a standard and way more reliable than Rackspace.

  19. Blake July 3, 2013 at 01:27 #

    What region were you running these VMs out of?

  20. Kris July 3, 2013 at 05:58 #

    Forgot HostVirtual (aka vr)

  21. KRD Entertainment July 3, 2013 at 06:46 #

    I’ve been surfing online more than 3 hours as of late, but I by no means discovered any attention-grabbing article like yours. It is pretty value sufficient for me. Personally, if all site owners and bloggers made excellent content as you probably did, the web will probably be a lot more useful than ever before.

  22. rane July 3, 2013 at 08:28 #

    Thanks a ton for the comparison.
    I use Amazon for all web projects which have major consumer base in India, because they are the only ones who have servers in APAC region. All other projects are hosted on Linode.
    The latency for APAC Amazon servers from India is pretty awesome and the same configuration on Linode performs poorly only because of latency issues.

  23. Mark Lewis July 4, 2013 at 14:20 #

    Well, it depends if we’re considering on a level of sound-byte publicity, or at a scientific level.. . From the publicist’s perspective, yes,
    this is damaging. If you spread the idea that
    abused tend to become abusers (that is, that there
    is a ‘cycle’ to be broken in the first place),
    people can easily turn that around to cast suspicion over anyone who was abused as a child and has children of their own.
    To the person who has broken such a cycle (as a personal aside,
    my own father being a dramatic example of one, being horrifically abused
    as a child and being an exemplary and completely
    non-abusive parent in his adulthood), this is of course deeply insulting and
    troubling, as it piles suspicion and stigma on people who have already suffered
    more than others.. . But from the scientist’s perspective, this is a problem with how the public digests the information and not the information itself. It’s
    demonstrably true that people tend to mimic their parents’ behaviors in many ways, abuse unfortunately being chief among them if it’s a factor.
    If people can’t understand that there are dramatic exceptions to the rule and that generalizations are harmful, that’s their problem – there’s nothing in the data that inherently requires us to cast abused people under suspicion and stigma. From that perspective, you shouldn’t
    twist or hide the facts simply because they might get misused or
    misrepresented.

  24. more hints solar attic ventilation July 7, 2013 at 06:59 #

    Generally I do not learn article on blogs, but I would like to say that this write-up very forced me to try and do it!
    Your writing style has been surprised me. Thank you, very nice
    article.

  25. roger July 9, 2013 at 15:53 #

    now compare it against load balancing against 4 $5 DO’s simultaneous muhaha.

  26. digitalocean review July 10, 2013 at 07:45 #

    Nice comparison, can you show us some info-graphics.

  27. Reza July 14, 2013 at 19:39 #

    Hello,
    Thanks for the article it was a good read and comparison. I wanted to know if I could get a copy of the code you used to bench these platforms. I have a platform of my own and I’d like to use the same exact code to profile my platform against these three heavy weights.
    Thank you

  28. Greg R September 8, 2013 at 13:57 #

    I just stumbled across this article. I guess I am lucky to have an even faster machine. I’ve been with rosehosting.com for the past few years and my numbers are better than linode’s. I mean the numbers in the article are nothing to be ashamed of but the ones I get on my machine are at least 40% better than that. Of course I am talking about rosehosting’s SSD VPS offering, the regular ones will probably not be as fast. I can’t tell for sure as I don’t have one of those.

    My point is that these comparisons really don’t mean much as there are many other gems out there that are not as widely advertised but may be better than the well known names.

    • RoseHosting September 14, 2013 at 20:50 #

      Thanks for your nice comment about our SSD VPS hosting plans. We are glad that we are able to meet your expectations.

      Our SSD servers are blazing fast and an excellent choice for eCommerce stores, busy websites and blogs.

  29. Colin September 11, 2013 at 19:03 #

    No surprises here, Linode’s $20/mo offering is simply amazing. However, above their 4GB plan it makes sense to just go dedicated (from cost standpoint). DO is nice for non-mission-critical ONLY. Was using a droplet as a reverse proxy and in less than a month the disk suddenly became mounted read-only and upon rebooting it was corrupt and their support team made no effort to recover. Had read-only issue multiple times with VPS.net too but no disk corruption. Both have pretty poor networks (monitored with Pingdom). Only use I have found for droplets is dirt-cheap MySQL async slaves.

  30. dr September 18, 2013 at 22:24 #

    Hey!

    Take a look at iwStack. Prometeus launched it’s own cloud and it really cheap. Prometeus is an Italian provider which has been here since 1997. I’ve been using iwStack for a while now, and seems pretty cool.

    I’d like you to compare it to these.

    http://iwstack.com/

  31. Chope September 25, 2013 at 12:38 #

    I have used Amazon and I can confirm they are very fast. I’ve not used Digital Ocean and Linode but anything that is 6times faster than Amazon is a best let alone 15 times. Thanks for the review, maybe I should sign up for the $5 Digital Ocean for testing sake.

  32. Captain Obvious November 21, 2013 at 23:31 #

    I think any developer or admin worth their pay-grade should know this without the need for benchmarks. It’s common sense – virtualization is not about performance over physical hardware, it’s about flexibility! I am amazed that people don’t realize that having an operating system installed directly on your hardware is faster than having sometimes multiple layers of virtualization (hardware abstraction software).

  33. Matthew Fedak November 26, 2013 at 12:00 #

    Thanks I have been looking at Amazon EC2 for years now but Linode service is great and its good to know I have not been missing out on anything.

  34. rogerdpack January 16, 2014 at 17:42 #

    At the $5 price point DO wins however, for us cheap skates :)

  35. joe April 12, 2014 at 18:16 #

    I’ve been using Amazon EC2 a couple years and after reading this article, i was all gung-ho, signed up for Linode and found that (apparently?) the amount of storage is not flexible. I don’t need a fast or powerful server & not very much data transfer, but the contents I need to serve are over 200GB. With Amazon I can add a flexible amount of storage as I need it, but with Linode I’m looking at min $160/mo just to host my contents… am i missing something, is there a better way?

  36. newtricksandtipsad June 5, 2014 at 01:11 #

    As a medium level internet marketer, I always love the service providing by digitalocean.They are really great provides quality service at affordable price

  37. DigitalOcean Coupon June 5, 2014 at 01:14 #

    As a newbie you may struggle at digitalocean as they are not providing managed VPS hosting,though you can make by using the knowledge articles avaiable

  38. Dan July 17, 2014 at 10:42 #

    DigitalOcean is a great service. Heres a link for a discount off your first VPS. http://goo.gl/4U1DX0

  39. Kristian July 21, 2014 at 07:51 #

    A lot happens in this space within a year. It would be interesting to compare the results if you run the exact same test again.

Trackbacks/Pingbacks

  1. Linode vs Digital Ocean — matthewphiong blog - July 3, 2013

    [...] is a nice post written by Remco Bron comparing EC2 vs Linode vs Digital Ocean. For $20/month, Linode clearly [...]

  2. Hosting Performance / Hosting Convenience | fortrabbit – Blog - July 10, 2013

    [...] audience with lots of threads about PHP and hosting. Some days ago there was a discussion about an article by Ronald van Woensel. He compared the performance of three hosting services: Digital Ocean, [...]

  3. Comparativo entre provedores de servidores cloud computing | Alexandre Rocco - July 10, 2013

    [...] Pra que, tiver interessado em mais detalhes. vejam: Cloud server showdown: Amazon AWS EC2 vs Linode vs DigitalOcean [...]

  4. Hoe WP Engine mijn blog redde; probeer het gratis uit met kortingscode - July 19, 2013

    [...] schreef mijn compagnon Ronald van Woensel voor het eerst een gastblog op mijn website over een performance test tussen Amazon, Linode en DigitalOcean. Ik zette het bericht op hacker news van Y Combinator en het bleek daar nogal populair te zijn. [...]

  5. My Journey To Managing My Own WordPress Server - bradt.ca - January 31, 2014

    […] a bit of research, I found that Linode was a better option than Amazon EC2 and setup a new server on Linode. I really made an effort to learn more about Varnish and setup […]

Leave a Reply