This post originally only focused on cost and user experience when we reviewed DigitalOcean vs AWS vs Google Cloud. After a real world case study and experiment we have some performance data and it is actually surprising.
Before testing servers I recall stating in a conference call “We all know AWS is gonna win, but ya we can test it.” As a client’s IT team wanted to move our project team’s DigitalOcean web server on to one platform.
Teaser here … in a head to head test between Digital Ocean vs AWS one of these two out performed the other in:
- rate of requests handled
- number of requests processed
- time it took to process each request.
- The same winner of those also won 10 / 10 page speed tests and the results were not close.
The results of these tests convinced a previously skeptical client’s IT team into adopting the team’s choice in cloud providers.
Scroll down to the section “VPS Performance” to see more about that specific use case scenario, or click the blue button just below. Ultimate SEO has accounts on all but Azure and has powered its servers from AWS, Google Cloud and Digital Ocean at some point. We’ve consolidated to one provider and it’s the same one who performs best in these tests.
Want to see a spoiler (the answer)? Here is a summary sentence of our tests, or read on and learn why and how they win.
This tab is here to mask the winner of our DigitalOcean vs AWS VPS server testing.
The AWS server costs twice as much and delivers one tenth of the capacity and is the slowest page load in all 10 page speed tests.
The AWS server is unable to complete the full server load testing.
In every instance Digital Ocean out performed AWS.
Test Our Test
AWS EC2 t3.medium in Virginia Datacenter
2 vCPU and 4gb RAM
Digital Ocean $20 Droplet
2 vCPU and 4gb RAM . comes with 80GB SSD and includes 4 TB transfer
We installed the same client site on each machine. Nothing greatly significant with the site. I would recommend choosing an established site to gain real world comparisons. Two blank or close to blank sites really isn’t a great real world example.
In each instance no load balancing or additional servers for databases were used. This was just EC2 Instance vs Droplet.
We then tested each sites performance as recorded by loadimpact.com which does a free test of up to 25 users on a site.
Then we speed tests on each of these sites on GTMetrix.com. We would test each server, record that result and then repeat a total of ten times.
We take the time to comment first on pricing and user experience. These factors may be irrelevant or subjective to the topic.
If you’d like data driven only info about our performance measures click the button to skip ahead.
Comparing Digital Ocean Droplets and AWS EC2 VPS
How Is This SEO?
This may seem off topic but its on topic, technical SEO is imperative … you’re not going to rank number one on Google using Shopify or Wix. It just isn’t going to happen.
Those platforms are not serious enough to deliver the configurability one needs to out perform a competitor.
This Isn’t Your Typical Review
It’s also apparently difficult to get solid advice on SEO Hosting from “experts” Best Blog Hosting for SEO is junk … reciting features doesn’t make a hosting plan the best…one quote notes that WordPress is already installed with InMotionHosting.com … so what!
Our web servers are preconfigured to install WordPress in every new account as well…it only saves maybe 5 minutes per user so that savings is not for the user but for a web host, that time adds up very quickly. So that’s not a benefit for the client as much as it is for the host.
You likely aren’t a web host, so it’s not that big of a deal. I’d like to see benchmarking tests they may have run to decide who is the best. And we do … but thats coming in a few paragraphs.
I only mention these to point out typically articles covering which thing is better, focus on the irrelevant because the author lacks a clear grasp of technology and SEO. Well, this isn’t one of those articles.
Promising More Than Physically Possible
Unlimited bandwidth…sounds great but what are the limits? There are limits, the infrastructure that a site sits on has limitations. If someone uses a CAT5 cable instead of a CAT6 everything will be slower and you’ll find a speed limit there. It may be 5 gbps which is A LOT but … that IS a limit.
Bottlenecks can be designed into infrastructure by error and these can limit a site’s performance. Unlimited bandwidth means nothing because there are limits … physical limits exist and can’t be avoided. So “unlimited” is a term being misused a lot in hosting today.
WordPress preinstalled saves someone 5 minutes but nothing else. These aren’t important to the Hosting performance and way too many top articles on SEO hosting confuse WordPress’s selling points with the web host’s infrastructure. That’s what this is all about after all, infrastructure and how it directly impacts a site’s Google ranking.
Google says that over half of all searches are now mobile. Mobile is extra sensitive to speed and technical SEO matters. Thats why its so important to set yourself up with the best infrastructure to build on.
Cloud Computing: Background On Our Use Case
The industry standard in web hosting administration software is cPanel. No way around it with cPanel your support opinions are bountiful where as dreamhost.com has its own proprietary server software … its no better or worse in actuality, its just far less supported by third parties.
Ultimate SEO is hosted on a variety of cPanel servers that were easy to build and deploy, we made them from scratch and some with templates but all in all, there are 4 AWS servers, 2 Google Cloud Platform and 4 Digital Ocean. These currently are powering hundreds of sites including this site. Cost varies wildly…
Shared Hosting Solution?
It’s important to note that your web host is honestly likely run on one of these three services. Godaddy is … if you have their shared hosting your running on this environment. You’re sharing their share of the cloud environment.
Why not just skip ahead and be the master of your domain….sure it will cost more than $3 a month … but that $3 a month hosting plan is shit. You can have a decent VPS server for $5 a month with better performance.
We’re not going to mix apples with oranges though, this isn’t about shared hosting plans and a VPS. The VPS will win. A good review between AWS and a traditional hosting provider is AWS vs Blue Host
Amazon Web Services
I don’t even know what I am spending, where and how it is being spent. AWS charges you for every little thing and no matter what steps you might take it may seem like rising project costs are simply unavoidable.
Their platform to work within is NOT intuitive … its damn near hell, and it will require some play time.
You’ll need to recall that you have to leave the virtual server’s configuration area to select an IP address to then assign to the server you were just configuring.
Then go back to the server configuration and keep working…till a minute later you have to go to some other obscure place. (that will cost you money too…each ip address, not talking about bandwidth that’ll cost you too … I’m just saying the ip number).
Don’t even think about swapping hard drives and knowing what is attached to what unless you are prepared to write down long strings of numbers and letters.
AWS does provide greater flexibility than the others on options beyond just a virtual server…but unless you plan to send 100,000 emails a day you won’t benefit from their email service … as an example.
Cloudfront looks like a great CDN option, until you find Cloudflare.
Technical SEO wise I’d give AWS a D overall. Infrastructure and computing power is an obvious A+, but it’s how you interact with that, that weighs the grade down.
More so AWS limits your resources with Throttling and Burstable CPUs … these sound good but they mean they’re only giving you part of the resource not all of it.
Poor navigation and the nickle and dime pricing is absurd. Want to monitor your usage so you can understand your bill? Monitoring costs more…its ridiculous. CloudWatch can be expensive.
They do offer reserved instances and I loaded up on those but still my costs never decreased.
AWS is so hard to understand billing wise that IT Managed Service Providers will offer free excel templates to figure out your AWS monthly costs.
Think I’m being over the top? Check out this calculator form sheet by AWS to forecast your expenses.
It is never simple when you ask how much and are handed a spreadsheet to calculate the server costs.
Here’s something crazy…why my April bill was $167 but AWS forecasts it will be $1020 in May I have no idea. I’m not adding servers…so whatever they know, I must not.
Google Cloud Platform
Is easier to use and wrap your head around but it is considerably more expensive than either of the other options. For this simple reason…they receive an F. The additional costs come with less options and less features than AWS.
Billing is more transparent and you can understand why your bill is what it is at least. But Google also makes unilateral decisions for you like blocking smtp and ssh access.
Sure its more secure but it makes email and server maintenance a nightmare. You can add those to nonstandard ports in the firewall but then you have to keep up with an oddity.
Documents like this Connecting to Instances make it seem like not a big deal, but these will not allow you to move a file from your computer to the server like SFTP would.
They are expensive, offer less and needlessly shot you in the foot with their restrictions.
That’s why I stand by the F as an overall grade. Now infrastructure capabilities … A+ no doubt about it…but you’re paying a premium and placed into a box.
I received no compensation or thank you from anyone for writing this … Digital Ocean is my B+ graded cloud solution.
It’s the cheapest, and they don’t seem to charge you a fee for tools that are required for the main product to function, unlike AWS and their static ip addresses.
They have the least ability and options outside of a virtual server. If you want a database server that’s in the works unless you can use Postgres.
UPDATE Sept 2019: MySQL Databases are now fully supported and available. Additionally Microsoft.com has step by step instructions for installing MsSQL on Digital Ocean’s linux machines.
That’s limiting, but it is also not important if you’re just running a few web servers that will already have MySQL installed on them anyhow (if a LAMP server template is utilized).
Digital Ocean is the no frills, no surprises, cloud computing option. The reason I have so many servers is because I am migrating everything off AWS and Google Cloud to Digital Ocean…it’ll be cheaper. A lot cheaper…we’ll discuss performance in this article.
That’s right… $20 vs $121, $177 and $120 from AWS, GCP and Azure. I didn’t really consider Microsoft Azure just because I have reservations moving into their sphere of control where every thing you need to do is addressed by yet another Microsoft clunky product that usually has little imagination in it.
Test out a server in each environment and I think you’ll quickly take to the Digital Ocean option.
But in deciding the winner of this debate I figure a more scientific method could be used….so let’s divide the debate into areas that can be scored and assessed.
Amazon Web Services vs. Digital Ocean
Ease Of Use
As previously noted, the Digital Ocean’s dashboard is very streamlined compared to AWS. With AWS you have to configure your network, and several other parts such as the keys before you can make a server that’s accessible to the internet.
Digital Ocean, you can literally have a server running in less than a minute from a single screen. Who else can claim that?
Digital Ocean’s costs are inclusive of bandwidth, hard drive size, ip addresses and more. Everything you need to have a server is right there in one easy package. Their packages include:
|1 GB||1 vCPU||1 TB||25 GB||$5/mo|
|2 GB||1 vCPU||2 TB||50 GB||$10/mo|
|3 GB||1 vCPU||3 TB||60 GB||$15/mo|
|2 GB||2 vCPUs||3 TB||60 GB||$15/mo|
|1 GB||3 vCPUs||3 TB||60 GB||$15/mo|
|4 GB||2 vCPUs||4 TB||80 GB||$20/mo|
|8 GB||4 vCPUs||5 TB||160 GB||$40/mo|
|16 GB||6 vCPUs||6 TB||320 GB||$80/mo|
|32 GB||8 vCPUs||7 TB||640 GB||$160/mo|
|48 GB||12 vCPUs||8 TB||960 GB||$240/mo|
|64 GB||16 vCPUs||9 TB||1,280 GB||$320/mo|
|96 GB||20 vCPUs||10 TB||1,920 GB||$480/mo|
|128 GB||24 vCPUs||11 TB||2,560 GB||$640/mo|
|192 GB||32 vCPUs||12 TB||3,840 GB||$960/mo|
Amazon Web Services doesn’t allow an easy comparison. Everything is charged individually it would seem. They have a tool called Simple Monthly Calculator, it’s a spreadsheet basically … first off if you need a calculator it’s obviously not simple.
To compare something with the $5 option from Digital Ocean I used the calculator and a t2.micro which is 1cpu and 1g ram with a 25 GB SSD drive, with 2 ips and 1 TB of data transferred to the world, costs about $21.49 but that’s also after a -11.00 discount … without the discount it was 32.49. That’s for the $5 Digital Ocean option.
Google Cloud Platform’s version of VPS using Compute Engine isn’t as bad to figure out as AWS but it is still seeming complicated. I guess my beef with GCP and AWS is that if I spin up an instance I’m obviously going to have to have bandwidth so some baseline amount should be included … just because the instance cant function without it…so it should be part of the instance, I think.
So the N1 class is their general use server. On-demand pricing is:
$0.0356 / vCPU hour and $0.00095444 / GB hour
So our 2 vCPU with 4 gb RAM is about $0.07 for vCPU and $0.0038 for RAM per hour. Google shows 730 hours average in a month. Meaning $51.38 a month. That includes no hard drive or bandwidth ,.. but no use calculating it further as GCP is way in the lead as most expensive of the three.
Now you might say…well you get what you pay for … and I’d say … Not true in 10/10 tests.
So at $5 to $32
Digital Ocean Wins
But wait there’s more and this is the why you’ll switch to Digital Ocean.
Monitoring and alerts can be configured on both platforms .. both allow scaling up and adding additional storage as well as internal networking. Internal networking has shown to provide fast results for configurations like a web server and an independent second database AWS though has an expansive offering of options and wins out in this area.
Digital Ocean allows for credit cards as well as paypal. AWS allows credit cards and bank accounts. The difference then is Paypal vs Checking Accounts and since this is a cloud computing, tech product … Im going to prefer Paypal to a tool that has been around for hundreds of years. So we’re going to hand it to Digital Ocean.
Digital Ocean Wins
Each can transfer servers to other accounts. I’ve only been successful in doing this with Digital Ocean and not AWS. The AWS process is more tedious and you can give a server away that you aren’t an admin of anymore but still are responsible for billing somehow. That sucks!
Digital Ocean Wins
AWS only offers free billing support…although if you ask them a tech question they do tell you “as a courtesy” here is an article that might help…but tech support itself is out of your reach for free. Digital Ocean allows you to message them and I’d assume some tech level of support for their platform without charging.
Digital Ocean Wins
So all in all…
The winner is Digital Ocean over GCP and AWS.
but … now an added update to question these assertions…
VPS PERFORMANCE TESTING
Testing Digital Ocean to AWS head to head.
Two test servers with the same site exact site tested at the same time on the same tools. In these tests we’re trying to speed up a client’s slow page load speeds. We’re at 97% optimization of the site, we’ve unloaded some sliders but still 5 second homepage loads. We are determined to be at 3 seconds…and we think we have the answer in addressing the client’s hosting infrastructure.
But before we can make the switch, testing had to be done and we had to convince the IT team to look at more than just AWS. As technical SEO “experts” we have to get their buy in to ensure the projects success isn’t discounted because we get viewed as just marketing people.
Below is adapted from communication between Ultimate SEO and the client.
Two Part Question, then price considered.
How many users can the server handle?
- EC2 Unlimited – Expensive but it’s just a checkbox away in availability.
Same test on each by loadimpact.com. Simulates 25 users for 3 minutes. Detailed results included after this summary.
Server: Test2 On Digital Ocean
The average response time of the system being tested was 36ms, and 10497 requests were made at an average request rate of 59 requests/second.
Server: Test3 On AWS
The average response time of the system being tested was 481ms, and 4401 requests were made at an average request rate of 25 requests/second.
Findings From Server Load Testing
The AWS Server takes more than 10 times longer to server half the pages requested, at half the rate given to the Digital Ocean server. So it failed before reaching full capacity of the test.
How fast can a typical page be delivered?
For this test we’ll use GTMetrix.com with 1 user 7 tests per server and then an average with the lowest score and highest noted.
Ultimate SEO ran the GTMetrix.com tests at the same time, that way it was similar network traffic and each one in its own browser tab. * These tests are not reliant upon our local machine and are just between GTMetrix and the target.
In this test the AWS server adds an average 1.43 seconds over 10 tests. In no test was AWS faster than Digital Ocean. The fastest test for Digital Ocean was 2.7s with AWS at 4.4s. Digital Ocean’s fastest is below our goal, AWS is 1.4 seconds above or 45% more than our goal. GTMetrix gives both servers an A for optimization, meaning neither can be optimized more … its infrastructure and content now. Each site has the same content.
AWS could do better but they appear to “throttle” performance much tighter. Even using C class servers instead of T class resulted in lack luster performance.
If there is anything wrong with my methodology let me know and you’re free to repeat these tests.
How Does Performance Change When We Test A Web Server that has a separate dedicated Database server
Server + Database Server Configuration VPS
Now that we’ve tested and found Digital Ocean to be the cheapest and fastest VPS lets try some optimizations and see if they provide real world benefits. The easiest to test is the offloading of the database to its own separate server. Since this creates a dedicated database server I choose to build the database on a very small machine. A $5 1 CPU 1 GB Ram server was created from a LAMP server and it was given an internal ip address and placed within the same firewall as the site server which also had an internal ip address. Internal addresses did appear to save connectivity time and avoid firewall involvement.
This shows the blue line … response time as steady and unaffected by the growing requests and users on the site.
The average response time of the system being tested was 33ms, and 8716 requests were made at an average request rate of 49 requests/second.
This wasn’t remarkably better than the original server but that server did show a couple brief spikes where this has none. It would likely only be of real value when large amounts of traffic are experienced.
GTMetrix shows individual page loads are unaffected by the SQL off loading. So the benefit is again only pronounced when many requests are made.