The immediate costs are only part of the picture.
There have been times that the control plane blew up in one zone of one cloud provider.
I had a least-complexity system which lived in that zone so it kept functioning as if nothing happened.
Other people panicked or had their automation freak out for them, they tried to restore their multi-AZ systems, overloading the control plane for the whole region.
It's a stressful experience if you feel you can't do anything about it, and sooner or later you will feel it with cloud computing: periods of 8-12 hours where your environment is FUBAR and you are best having some faith they will stitch it back together and walk away from it for a while.
If my colo goes down. My customers are going to complain and think I am incompetent. If my cloud hosted infrastructure goes down and everyone else is down your customers are a lot more understanding.
“No one ever got fired for buying IBM”
It depends on what you want but managing complex software may be expensive and has some serious economies of scale, which makes a pressure to outsource, even expensively. You can't just brush it off with 'that's easy', it's not.