Comment by mrweasel
While I love a good cloud bashing, it's really not black and white. If you're really small, it probably doesn't matter much if you're using Hetzner or AWS, but co-location might be a bit to expensive. If you run an absolutely massive company, cloud vs. self-hosted comes down to whether or not you can build tooling as good as AWS, GCP or Azure, with all the billing infrastructure and reporting.
The issues are mostly in the SME segment and where it really depends on what your business is. Do you need completely separate system for each customer? In that case, AWS is going to be easier and probably cheaper. Are you running a constant low 24/7? Then you should consider buying your own servers.
It's really hard to apply a blanket conclusion to all industries, in regards to cloud cost and whether or not it's worth it. My criticism in regards to opting for cloud is that people want all the benefits of the cloud, but not use any of the features, because that would lock them into e.g. AWS. If you're using AWS as a virtual machine platform only, there's always going to be cheaper (and maybe better) options.
If you have high volume traffic depending on time of month, ie finance around ultimo/primo, you might need to scale your performance to 5-10x your normal idle load.
If running on your own data center, or renting physical/virtual machines from ie Hetzner, you will pay for that capability overhead for 30.5 days per month, when in reality you only need it for 2-3 days.
With the cloud you can simply scale dynamically, and while you end up paying more for the capacity, you only pay when you use it, meaning you save money for most of the month.