Time for an update on my adventure in cloud hosting my blog. It’s been less than a week, but I think I’ve found a clear winner. (For my purposes, at least.)
Cost
To run my blog, I need a VM to serve it, some disk storage, and a DNS to point my website at it. The total costs in Azure and GCP come out something like this:
| Azure | GCP | |
| VM | $9.50 (with 1GB storage) | $13.80 (with 30GB storage) |
| Storage | $0.00 (included in VM) | $0.00 (included in VM) |
| DNS (1 zone, 1M queries) | $0.90 | $0.60 |
| Total Monthly | $10.40 | $14.40 |
By those numbers, GCP is more expensive. However, both Azure and GCP offer a free tier. Unfortunately, Azure won’t let you use a custom domain for a free-tier application. And since “shawnweaver-blog.azurewebsites.net” just doesn’t roll off the tongue like “blog.shawnweaver.com”, I want to use a custom domain, which means Azure’s $10.40 cost is basically the minimum. GCP, on the other hand, doesn’t have this restriction, making the total cost of the VM and storage $0.00, leaving only the $0.60 for the DNS, which makes GCP the clear winner. (The paid-tier VM from Azure is obviously more powerful, but I don’t need that power, so it’s a moot point.)
In addition, GCP charges for use whereas Azure charges per application. This means that if I have my blog set up in an app service but leave it turned off all month, I still pay the whole $9.50. With GCP, I’d be charged nothing for the VM if it wasn’t running (I’d pay only for the storage). This just seems ridiculous and I’m not sure why Azure works that way.
GCP lets you set budgets and alerts as well, to help make sure you don’t blow your budget by accident. Azure appears to have some cost management features, but they’re currently limited to enterprise agreements (support for other plans is supposed to be coming soon).
On top of all this, GCP also has something called a “sustained use discount” – the longer something runs, the less you pay for it. This seems especially targeted at VMs that run constantly, though it applies to anything. As long as I’m using the free-tier resources, this won’t really matter, but if I ever want to play with some new technologies, it might come in handy.
Usability
Both Azure and GCP offer a lot of the same options, so I’m not going to compare them individually. Instead, I’m going to focus on some of the little things that I’m actually interested in.
Azure seems to have some more power in the UI; I don’t need to drop to a command line to do some common tasks. GCP requires a command line for anything beyond the basics. Both Azure and GCP have a cloud console where you can perform all sorts of actions, and they both have a nice customizable dashboard to monitor whatever you want.
Azure and GCP both have a pretty easily navigable interface, though Azure makes it very easy to just start adding something new; GCP takes an extra click or two. They both have a marketplace full of ready-made resources (like WordPress deployments).
The mobile apps for Azure and GCP are pretty similar, but GCP’s seems more robust. With Azure’s mobile app, you’re limited to checking the status of resources, starting and stopping resources, and using the cloud shell. In GCP’s app you can do all those things, but can also manage those resources much better – you can create disk snapshots and download files from storage, for instance (and I assume the other products have similar control through the app). I also find GCP’s app generally easier to navigate; in general, it just feels a bit more modern.
Summary
I prefer how GCP works and charges for use. It fits my budget and how I plan to use everything – short bursts of use and development instead of running constantly. A few things were easier to set up (like hosting static web pages with a custom URL), and I can expect any tinkering I do to cost a lot less than it would on Azure.
What about AWS?
I looked at their pricing calculator and cringed (it seriously looks like it’s from the 90s). And when I clicked their “Free Website on AWS” example and it showed my estimated monthly cost of $594.97, I was pretty much done (why their “free website” preset uses XL VMs, I don’t know). Feature-wise, it looks like AWS is more-or-less equivalent to Azure and GCP, and their pricing sounds more like GCP than Azure. I was just immediately turned away by their site and cost calculator.
Side note:
Why does everyone have to use their own terms for all this stuff? Azure has “App Services”, GCP has “Compute Engine”, and AWS has “EC2”. They’re all cloud VMs. It’s incredibly annoying trying to figure out what’s what when moving between these services.