August 14, 2020

AWS is too expensive for the majority of web projects

AWS is too expensive for the majority of web projects

There are loads of solutions for deploying small scale web apps — Netlify, Vercel, Heroku, even Github Pages. But when it comes to serious projects you would want to be in full control of infrastructure and environment. In this case your first option is AWS cloud hosting. But are there alternatives to their globally dominant services? Let’s find out. TL;DR; — yes, there are and they are cheaper!

Why is AWS so ubiquitous?

Almost all of our customers ask us a question — “I’m assuming you are going to host the web app on AWS, aren’t you?”. Questions vary in their shape and a context, but in essence they are all the same. Everyone is convinced that AWS is the only option for cloud hosting and cloud infrastructure. Why is it so?

The reason may seem not really obvious. In 2013 Amazon signed $600 million contract with Central Intelligence Agency. This immediately made AWS the most secure cloud services provider in the world. Which in turn boosted its popularity. It is very simple — “If CIA trusts AWS why shouldn’t I do?”. Beside the absolute security, another reason to use AWS is obviously the huge eco system of AWS services. When I say “huge” I really mean it. They provide services for solving virtually any computational problem.

But don’t forget that all the AWS services are meant to be secure. They all are using single comprehensive security model called IAM. Which can be not that easy to maintain. And here comes the cost of the strict security.

Maintaining AWS cloud is hard

This is the main reason why developers of the web apps and websites should avoid using AWS. A comprehensive cloud infrastructure can’t be simple. I will not be far from truth saying that if there was AWS user’s manual, its volume would pretty much be comparable to rocket’s user’s manual. There are myriads of services! And most of them can be connected with each other.

The wildest pat of the zoo is permissions system which is called IAM. It is really hard! And you can’t avoid it. Whenever you add a service into the cloud you need to set up permissions using IAM rules. Being too strict means that services in the cloud will not be able to connect to each other. Being less strict than required means that your cloud will be vulnerable to malicious users. IAM is important part of a cloud and requires serious attention.

A typical AWS setup
A typical AWS setup

All that said doesn’t mean that AWS is something that one should completely avoid. If you are confident that you know exactly why you need AWS with all its complexity and maintenance burden, then you should go for it. It’s that simple. Some really exotic services like Amazon Sumerian (AR) or Amazon Braket (quantum computing experiments) can not be found among other cloud hosting providers who are narrowly specializing in web apps and websites. It’s the real power of AWS — they provide a comprehensive infrastructure for solving virtually any computational task.

Cheaper and modern alternatives

So, what are the options when you need to deploy a web app and retain a control over the cloud? There are companies that provide services which are just enough for running a typical web app. With cloud hosting providers like Digital Ocean one can deploy a Kubernetes cluster, a managed DB and a file storage with CDN in a matter of a few clicks. Then tie the services together using simple firewall and load balancer. Load balancer is also provided as a service, again — available in a few clicks.

With lower number of services available than on AWS, Digital Ocean doesn’t need a complex permissions system like IAM. Although, similar to Amazon they provide API for all parts of their infrastructure, it is definitely less complex API. Digital Ocean’s API has less steep learning curve (if it has any at all). Their dashboard UI looks very appealing, clean and modern. I can’t imagine it can make someone feel lost, which is common for AWS users.

AWS's UI looks like an old-school GUI
AWS's UI looks like an old-school GUI
While Digital Ocean's dashboard appears to look modern and clean
While Digital Ocean's dashboard appears to look modern and clean

Finally, the costs. Difference between AWS and from Digital Ocean can be significant. Here is an example. For one of our customers we could reduce cloud bills from almost $350/month to just $150/month. While resources capacity was slightly reduced, the functionality of the cloud was accurately preserved.

Artem Rudenko
Artem Rudenko
Software engineer, founder of ottofeller.com

Let's build a thing together!