Let’s imagine you are a Netflix-sized company, and you are paying AWS $1 million per month on Cloud bills. Your app is composed of a bunch of Lambdas behind an API Gateway.
You think $1m per month is too much infrastructure costs.
After spending some engineering effort, you realize that if you re-architect your app into a monolithic container and launch it in a Kubernetes cluster in your on-premises infrastructure, you can run the same app for $100,000 per month — a 10x savings.
Now, you might ask yourself — why is AWS charging you 10 times more? Couldn’t they apply the same optimization that you did, and cascade the cost savings to you as a customer?
The answer is — YES. They could do that.
But they would have to do the same for EVERY SINGLE CUSTOMER of AWS.
Your application and its infrastructure is always unique, to some degree. There are an infinite number of configurations and fine-tuned optimizations that would be needed for every unique customer.
The thing that cloud providers, like AWS, do — is they optimize for common denominators that all customers are interested in — scalability, ease and speed of redeployment, high availability — and finally costs. Cost is one of the factors, but certainly not the most important one for all customers of AWS. Maybe it’s the most important factor for your organization (and that’s fine). But some organizations value more the ease of redeployment and ease of scalability. Every organization is unique and has slightly unique needs.
That’s why you can migrate to On-Premises, fine-tune and optimize better for the factors that are more important to you, whereas AWS will always try to find the middle ground and optimize for the weighted average of all AWS customers’ needs. Not for your organization’s individual needs.
Does your organization fall under the “weighted average customer requirements” segment, or you are more on one side of the amplitude — putting more weight on saving costs?
Top comments (3)
That's nothing once I migrated a customer from azure cloud to a homegrown kubernetes cluster running on strato. They went from paying 1.2mln a year on azure to 12k a year, 1k per month fixed costs, every month. No costs for core usages, ram cycles, bandwidth use or anything. I even migrated their azure functions to openfaas.
Not to mention one would never run On-Premise Kubernetes without people managing it. Cloud got you covered ;)
great article man