Weekly Journal 85 - AWS, DigitalOcean, Linode
Cloud Providers for Personal Projects
Lately, I have been thinking about changing cloud providers for my personal projects. I have been using AWS for years, but with their frequent missteps with open source and the risk of getting stuck with a huge bill, I would like to switch to something simpler with more predictable pricing. My problems with AWS are similar for Azure, and for me GCP is a complete non-starter.
My cloud needs are pretty modest. I need reliable block and object storage, DNS hosting, and some basic compute resources for when I want to run experiments. On the surface, both DigitalOcean and Linode both look like they could fit the bill, but they each have some limitations that I don’t think I can live with. Both services offer “free” DNS hosting, but neither one can act as a domain registrar. AWS Route 53 has the advantage of doing both of those things, though sometimes I worry about accessing my domains if my AWS account were to be suspended or compromised.
My big gripe with DigitalOcean is the complete lack of a security model. If you create a Team and allow multiple users to use your account, those users all get full permissions to do just about anything. There is no way to apply constraints or customized permissions the same way you can with AWS IAM. If you generate API keys for Spaces, their object storage service, those keys will grant full object access to all objects in all Spaces.
Outside of that, I like DigitalOcean’s predictable pricing. It’s fairly easy to get an estimate of what your monthly bill will be before you try using a service. There doesn’t seem to be any weird gotchas or unexpected charges like you get with AWS.
Linode is almost perfect. They have all the services I need, and they have a security model similar to AWS, but they only allow you use their DNS service as long as you have active compute resources running in your account. I don’t leave long-term compute resources running, so this doesn’t really work for me. Otherwise they have very attractive offering with similar pricing to DigitalOcean.
So that leaves me with AWS. While AWS is way more complicated, it is what we use at work so I have a fair amount of experience with it and I feel comfortable managing an account. On the plus side AWS has introduced some compute options that have similar pricing models to DigitalOcean and Linode. I’ll be looking into those the next time I need to spin up a compute resource to experiment with. I’ll continue to watch the other providers to see if any of them release improved versions of their services, but for the time being it looks like I’ll continue to use AWS.