There is an entire industry and PR machinery out there that is literally brainwashing developers to not touch servers and not know anything about deployment and infrastructure in the name of “focus on your customers and let us take care of the rest”.
Just worry about your application code and forget about other things, they say.
Other things meaning servers, deployment, hosting, SSL certificates, and what not.
What is amazing about this narrative is that people actually fall for it. Me included.
Look at the image below, that’s what it costs us right now to host our application on AWS. What is amazing here is that the bill just keeps increasing, no matter what you do to control costs.
I cannot believe I fell for this crap!
As someone that is responsible for running a business and actually making money and not just deploy an app in seconds, this is going to cost in the long run not just in terms of money but in terms of time, when you want to migrate because of costs. When we moved from Heroku to AWS, cost was a factor we were considering. We got $10,000 in credits which was hard to ignore but little did we know how the bills would mount after our credits expire. The cost of compute is super high on AWS which means your application performance will suffer all the time. Increase the server capacity and you have to sell you kidney to pay the bills. At this point, it was impossible for me to ignore the bills and thats when we decided to move.
We used the following on AWS, which needed to be considered before we moved from AWS.
- AWS managed kubernetes infrastructure (EKS)
- AWS RDS (Managed database)
- SSL certificates
- Load balancer
- VPC
- EC2 instances
We decided to move to Hetzner, with a proven track record of selling cloud services since 1996 and at affordable costs.
So we spined up a few dedicated servers on Hetzner and configured these ourselves
- Kubernetes
- Database
It wasn’t that hard. Took us a 2 weeks to set things up between two people. We are engineers, and this is THE JOB. I find it hard to believe when we come up with excuses such as “We’d have to manage it ourselves”. For non-engineers, I understand the argument, but as engineers thats just not acceptable. Figure it out.
I get it, for a huge company may be the opportunity cost of doing some of these things could be huge. May be that time can be used to do something more meaningful for their customers (assuming the other thing is in fact meaningful, 99% of the times its questionable).
But for a small business the math just doesn’t work.
If you want to build and deploy your own app, you’d be much better of starting on HETZNER with a $4 VPS, you will thank me when you want your app to be alive after 1 year and when you won’t run out of AWS credits and when you won’t have to start paying $50 every month.
After knowing all of this, if you still want to go with AWS, then it’s a choice and I deeply believe choices are always good.
Just know that you have many alternatives to AWS.