DigitalOcean vs Google Cloud vs AWS: Which is best for hosting WordPress?
We often get asked which server provider we recommend customers use for hosting WordPress in conjunction with SpinupWP. While this is by no means an exhaustive list of server providers (because there are hundreds), I’m going to cover three of the most popular: DigitalOcean, Amazon Web Services (AWS) and Google Cloud. Although comparing DigitalOcean to the likes of AWS and Google Cloud is like comparing apples to oranges (because they target very different audiences), we can at least compare each provider’s virtual servers.
For that reason we’ll be looking at which provider is best for hosting WordPress on a single server and not taking into consideration other services such as load balancers or managed databases. As we’ll be using SpinupWP to provision the servers, we know that all three will be configured to the exact same specifications. Therefore, when it comes to comparing the three providers, we can concentrate on ease of use, performance and price.
I’m also going to be using Amazon Lightsail in this article. Amazon Lightsail extracts away a lot of the complexities around AWS and makes it simple to spin up virtual servers, while still using the same underlying AWS infrastructure. While DigitalOcean and Amazon Lightsail have a comparable server spec, Google Cloud doesn’t, so I’ve selected the closest spec VM instance, which at the time of writing is a g1-small. I’ve also added a similar size SSD boot disk, which gives us the following servers:
|DigitalOcean||Amazon Lightsail||Google Cloud|
|Memory||2 GB||2 GB||1.7 GB|
|CPU||1 vCPU||1 vCPU||1 vCPU|
|Storage||50 GB SSD||60 GB SSD||50 GB SSD|
Let’s start with how easy each service is to get up and running on SpinupWP.
Ease of Use
DigitalOcean’s target audience has always been developers:
Designed for developers. Build more and spend less time managing your infrastructure with our easy-to-use control panel and API.
They’ve taken the relatively complex process of deploying servers to the cloud and simplified the entire process. Their UI is beautifully designed and cloud servers can be deployed within minutes. Pricing has always been transparent and you know what cost you’ll be paying each month upfront.
In many ways, DigitalOcean is much like Stripe for online payments, who are renowned for their user experience, docs, and API.
For those reasons it was a no-brainer that DigitalOcean would be the first server provider built directly into SpinupWP. This makes spinning up DigitalOcean servers via SpinupWP a breeze. Once you’ve added your DigitalOcean API credentials, you simply select the server size and region, and SpinupWP handles the rest without you having to leave the SpinupWP control panel.
AWS and Amazon Lightsail
AWS provides a complete spectrum of cloud services (over 165 at the time of writing) which are all managed via their AWS console. Unlike DigitalOcean, AWS isn’t designed with simplicity in mind and the AWS console can be an overwhelming experience. Pricing is also more obscure as services are billed by the hour or usage (depending on the service). The fact that AWS has both a certification program and a pricing calculator should give you an idea of the complexities involved.
In the AWS ecosystem, virtual servers are known as Elastic Compute Cloud (EC2) instances and require quite a bit of additional configuration to get up and running.
Enter Amazon Lightsail, which can be considered a friendly UI wrapper around some of their more commonly used services. Amazon Lightsail makes it super simple to deploy cloud servers, similar to DigitalOcean.
Pricing is also simplified, allowing you to see the monthly cost for each server.
Although adding an AWS EC2 or Amazon Lightsail instance to SpinupWP isn’t quite as streamlined as DigitalOcean, it’s possible via a custom provider. Simply enter your instance IP address, username and select an authentication method. Need more help? Check out our Amazon Lightsail doc.
Google Cloud is similar to AWS in the fact that they offer a full range of cloud products. Although Google Cloud isn’t as straightforward as either DigitalOcean or Amazon Lightsail, it is more user friendly than deploying AWS EC2 instances. However, where Google Cloud falls short is pricing. Not only is the pricing on Google Cloud much higher than the other services, but it’s also less transparent. You’ll need to rely on the price estimate when deploying a VM instance.
Similar to Amazon Lightsail, Google Cloud VM instances can be added to SpinupWP via a custom provider. Need more help? Check out our Google Cloud doc.
Now that we have 3 servers tuned for WordPress and all running the same server stack:
- Ubuntu 18.04
- Nginx 1.15
- PHP 7.3
- MySQL 5.7
It’s time to perform some benchmarks! I’m going to create a single site on each server which will be a clean install of WordPress running over HTTPS:
- WordPress 5.2.2
- Twenty Nineteen 1.4
DNS for all three sites are hosted on Cloudflare with proxying disabled. The default PHP OPcache settings are in use and a persistent object cache is configured. Each test will be performed randomly 5 times over the duration of 2 days and the average result of all 5 tests used for comparison. I’m using Loader to perform the benchmarks, which sends requests from N. Virginia. As our three testing servers are located in London, it should create unbiased results.
This test simulates a burst of traffic hitting the site’s homepage when full page caching is enabled. We’ll send 50,000 clients to each site over a 30 second period and measure the average response time (lower is better). The cache has been pre-warmed (meaning all requests will hit the cached version).
All three servers perform admirably! A sub 100ms response time when handling an average of 1,666 requests per second is pretty remarkable. However, Google Cloud is almost 9% quicker than DigitalOcean. Amazon Lightsail isn’t too far behind at roughly 7% lower response times than DigitalOcean.
Interestingly, DigitalOcean’s CPU usage is quite a bit higher than both Amazon Lightsail and Google Cloud when the benchmarks are being performed. I can only presume that’s down to the hardware that each server is running on.
This test simulates a more sustained load with page caching disabled, which will put much more strain on the server because Nginx, PHP and MySQL will all be fighting for server resources. We’ll send 10,000 clients to each site over a 5-minute period and measure the average response time (again, lower is better).
The response times have almost doubled across the board, which is to be expected as every request is having to query the database and render the page in PHP before it’s sent to the client. However, there’s quite a gap opened up between DigitalOcean and the other two server providers. Amazon Lightsail is serving requests 40% quicker than DigitalOcean, closely followed by Google Cloud which is 30% quicker than DigitalOcean. Similar to above, CPU is much higher on DigitalOcean at 70%, compared to around 46% on Amazon Lightsail and Google Cloud.
I’ve always been a huge advocate of DigitalOcean (and I still am). I love the approach they’ve taken over the years to simplify deploying cloud servers for developers like myself. Not only that, but I’ve always found their pricing both fair and easy to understand. I really hope they continue to refine the cloud experience for us non-DevOps folks. If you’re looking for the easiest server provider to use with SpinupWP, then look no further than DigitalOcean. Like AWS and Google Cloud, they’re expanding into other cloud services and have recently launched managed databases. I’m excited to see how they continue to simplify the cloud experience.
Up until the launch of Amazon Lightsail I’ve always shied away from using AWS for anything other than S3 and Cloudfront. The sheer volume of AWS services alone makes it difficult to know what service to use for a specific use case. Coupled with the complicated UI and pricing, AWS has never been my goto solution for cloud servers. However, Amazon Lightsail is a game changer. Although the UI and UX aren’t quite on par with DigitalOcean, it’s considerably better than deploying EC2 instances via the AWS console. The performance you’re getting for the price is also a huge win. If you plan on hosting WordPress sites where page caching isn’t possible, Amazon Lightsail is a good choice.
While Google Cloud performed well in the performance benchmarks, it’s almost 3x the price of both DigitalOcean and Amazon Lightsail. It’s also the more complicated of the three services to get up and running. For those reasons, Google Cloud should be reserved for those times when you need to combine their compute instances with one or more of their other services (such as Cloud SQL).
Although I’ve been using DigitalOcean for a few years now, maybe it’s time to take Amazon Lightsail for a spin when I next need a cloud server. What cloud provider do you use for hosting WordPress? Let us know in the comments below.