Or find a location (rent$), get fiber($$) to that location($$), find hardware($$), install said hardware. Now you’re back to where you were with AWS.
For larger already established businesses on prem is probably a setup you should explore but on day 0 of a new business, cloud will probably have a large cost and flexibility advantage as long as you smartly set it up.
Total first year cost on this setup: $8,800
Total three year cost on this setup: $12,400
2x m5d.4xlarge EC2 instances (this isn't counting ingress/egress rates, or really anything else) First year cost: $15,621 .
Total three year cost for the EC2 instance: $46,863.36
For the cost of using EC2 you could hire an extra person to help grow your company.
Yes, you can get discounts in AWS for agreeing to a three year term. Yes AWS offers you flexibility to walk away at any time.
If you have a base line load (which most companies do) you should really look at colocating your owned equipment. You also get the bonus of being out of the watchful eye of Amazon's profitability team looking to see if they can copy what you're doing.
I think, at least for some business types, colocation will usually be more expensive because you have to overprovision or risk losing customers.
You _will_ be hiring an extra person to manage these machines. That's the beauty of The Cloud (tm). Need more compute? You got it. Provisioned too much? Get rid of it. If you're a startup, you don't have time nor money to be managing your own infra.
Not to mention the ability to deploy to _any_ region within minutes. Now you're talking $8,800 / region + someone to maintain other regions.
> ingress/egress rates
unless you're also using S3 or CloudFront, this doesn't really mean anything. Put a free CDN in-front of S3 or your instances if you're worried about load or cost of IO.
> You also get the bonus of being out of the watchful eye of Amazon's profitability team looking to see if they can copy what you're doing
Ok now you're reaching.
There are colocation providers all over the world. Psychz.net is a great example. My assumption is a single box per region. There is no redundancy in your ec2 systems.
You should google the Amazon profitability team if you don't believe me.
Tangentially related: https://www.datacenterdynamics.com/news/ovh-ceo-unlike-amazo...
https://sellercentral.amazon.com/forums/t/amazon-literally-s...
https://fortune.com/2016/04/20/amazon-copies-merchants/
https://www.theverge.com/tldr/2019/9/19/20874818/amazon-allb...
But what are you getting 2x m5d.4xlarge instances from the get go? Start with the smallest instance size your app will run on and then add them on one at a time? Need to run 10 servers in the day but only 2 at night? Then configure autoscaling to do that. What happens if you need to expand out into another part of the world? Okay, now you just copy your setup to another Region instead of trying to find another provider in another country.
What if your service becomes super popular (You got on the front page of HackerNews), with autoscaling, it just grows automatically. No scrambling to get more servers, it just scales.
Don't listen to the "Woe is me!" stories about using the Cloud and feel sorry for these companies. They designed poorly, wrote crappy quick code and paid a price for it.