Today : Mon, 15 Oct 18 .


Robert Sandilands


Projects

Papers

Blogs

Other

edit SideBar

Choosing a Cloud

Page: Blogs.ChoosingACloud - Last Modified : Fri, 12 Jan 18

Assumptions

I have been hosting this web-site at a Canadian VPS provider for nearly 10 years and I got a bit tired of them. SSL support was optional and extremely expensive. Nearly double the price of just hosting email and a web-site. So I decided to move, and since Public Cloud is the hot thing now I decided to look at a public Cloud provider.

I was looking for the following:

  • Ability to host a VM/Instance
  • Ability to have a public IP address
  • Ability to host a web-server on both HTTP and HTTPS
  • Ability to host a mail server that could send and receive email
  • Ability to host an IMAPS server to read the email
  • Cheap

Yes, price was important, especially while I was evaluating different providers. So I only looked at providers that provided the first year free. I may extend this if I see other providers that offer shorter periods but for now I am happy with my initial choice of providers to evaluate.

I initially looked at:

  • AWS
  • Azure
  • Google Cloud

Azure

I initially looked at Azure first. I wanted to use the B1S VM size but when I initially looked I was not allowed to provision that size of VM. I dropped Azure and started looking at AWS. At some stage I came back and I was allowed to create a B1S VM, but it failed. When I tried a few days later I was successful in creating a VM. Don't ask me why. I have no idea and did not really chase the issue.

As part of Azure's free tier you can create a B1S VM with 64 GB of storage. The free tier is only available for the first year. The B1S VM offers part of 1 CPU, 1 GB of RAM and 4 GB of local storage. I did a bit of math and the B1S would have been reasonable to use after the free tier expired. It would have been cheaper than the VPS I used to use. Once I had the VM running I started the web-server and mail-server on it. I had no problems with the web-server but the mail-server was a problem. Outgoing connections was not allowed. Which sort of makes sense. You can open a support issue to unblock the port, but for that you need to buy a support program that costs at least $29 a month. That was not quite in my budget and would have been nearly 10 times more expensive than running the VM itself.

I monitored cost in Azure and got very confused. Some parts of the portal showed that there was cost involved in what I was doing and other parts showed there was no usage data for cost. Out of an abundance of caution I terminated all my Azure resources and took it off my list.

So ease of use of Azure was hard because of the confusing UI, the weird errors and general inconsistency. The performance of the VM was good. Support was too expensive to try. Logging in Azure was easy enough with OMS but OMS can be confusing to configure. I also could not easily figure out how to handle Docker logs in OMS. I know it is possible, it was just not blindingly obvious.

Google Cloud

I also looked at Google Cloud. As part of their always free tier you can run a f1 instance with 30 GB of storage. The f1 instance is 0.2 of a CPU and 0.6 GB of RAM. It was easy enough to setup and run. The Google logging technology (Stackdriver) was easy to install and configure. But, it mixes the OS logs and the Docker logs in the same view which was a bit surprising and confusing. The Stackdriver agent is also not a good idea on the f1 instance: It consumed virtually all the RAM and a significant percentage of the CPU. It seems to be based on fluentd. I had to add swap space to the instance to make anything work. This completely destroyed I/O performance. It took multiple minutes to extract a 100 MB file. Once I removed Stackdriver and replaced it with the AWS CloudWatch Logs Agent performance improved significantly.

Email was interesting. All outgoing email is blocked and there does not seem to be a way to unblock it. Which makes Google Cloud unsuitable for my purposes. I am still using it as a backup web-server so at least half of the time when visiting this web-site you are using the Google Cloud instance. At some stage I may terminate it, but as it costs nothing at this time there is little motivation.

Ease of use of Google Cloud was good. The performance of the VM is a source of concern. I did not get to try support. The native logging driver was problematic and its merging of Docker logs with the instance logs is an interesting choice.

AWS

AWS is the market leader and it is sort of obvious why. Everything just worked, their support was effective and basic support is free. You can run a t2.micro instance with 30 GB of storage for free for the first year. The t2.micro is 1 shared CPU and 1 GB of RAM. The portal is usable, it is just strange that you can only see one region's worth of resources at a time. If you login and you have the wrong region selected you can't see your logs or your instances. The performance of the VM was acceptable and is much better than the one in Google Cloud. Maybe it is just my good/bad luck but that is my experience thus far. Running the web-server was easy and just worked. For outgoing email I had to open a support case to open up the needed ports and that was no hassle and just worked. So AWS is the only one that checked all my boxes.

The AWS logging technology: CloudWatch Logs was easy to configure and has good Docker support. It separates the instance logs from the Docker logs. It also allowed me to submit logs from Google Cloud. The agent you install on the instance is also lightweight compared to the Google Stackdriver agent.

If my math is right then once my free tier runs out AWS will cost me less for for 3 years than my previous VPS provider did in 1 year. If I prepay the instance for 3 years. But even pay-as-you-go is cheaper than my VPS provider with the resources selected. One concern I have with the 3 year prepay option is that Cloud Provider pricing is falling constantly and prepaying 3 years may be more expensive than doing it year by year. I will have to look at the math and decide which option I will take.

Ease of use of AWS was good. The performance of the VM was good. Support was efficient. Logging was very easy to use and configure.

Summary

So comparing AWS, Azure and Google Cloud is like comparing different types of oranges. Nothing is really the same while it is still sort of very familiar. For my purposes I will probably select AWS because it matched all my requirements. I suspect Azure could have been a good fit if the UI did not provide such an inconsistent experience and their interesting support policy. Google Cloud disqualified itself with their email policy but otherwise seemed very usable.

So this is for my personal requirements. None of what I say would probably apply to anybody else. It is also not an endorsement by me or anybody else of any Cloud provider. It just describes what worked for me.

Legalize


Powered by PmWiki
Skin by CarlosAB

looks borrowed from http://haran.freeshell.org/oswd/sinorca
More skins here