There's a major element missing from these discussions, and I'm stunned I don't see it in the comments either. And that is, ...what happens when things go wrong? One of the major advantages of cloud, be it AWS, Azure, GCP, etc, is the ability to bridge across failure domains. Properly architected, a workload can be resilient in the face of data center outages and circuit breaks. To me, these savings from operating in…
I run a small IT service company - we provide a hosted service in the insurance industry.
We host on-premise, in our physical office (well, across 2 offices for DR). I personally have a history in infra management, so I generally enjoy it. You're right that sometimes things go wrong. Last year, we were down for about 3 hours. The year before that, there was a 6 hour outage. We've had failures in power, ISP, networking, server hardware, software, etc... but we've matured to a point that we can handle them quickly.
Most importantly, these outages are understood by the business and the users. They know going in that they get a credit for outages, and that it won't exceed 1 business day per year (usually much less).
Because we accept this 0.5% downtime (it's actually much lower in reality), we pay 1/10th what I've been quoted by cloud services - probably even less.