With hetzner - failure means your monitoring detected disk failure, sent you a pagerduty alert, which you then have to check the alert, figure out what has failed, and send in a support ticket to get the disk replaced. This will take a couple hours, after which you have to rebuild your RAID array, and hope no more disks fail. All the while operating with degraded performance.
(Don't get me wrong, hetzner is _great_, I've used them for years and highly recommend for numerous scenarios - but the idea that their failure and reliability is anything like "the cloud" is fanciful)
On AWS, something is constantly breaking. One of the 100s of services will always have performance issues, degraded availability or some other crap going on.
On Hetzner, the hard drive, CPU or RAM on one of the machines will die once every few years. Maybe.
(This changes as your service grows and scales out, but there's a stupid high amount of traffic a few machines can take.)
I've been responsible for millions of dollars of AWS spend over the last decade. I've had virtually zero AWS caused downtime in that period outside of the few major outages that affected the whole world (for example that major S3 outage) - but the "100s of services will always have performance issues or degraded availability" has literally never been true for me. I've had hundreds of instances be retired - but that is all automated and without downtime.
Over the last 18 months at my current company, we've had 100% uptime - there has not been a single AWS incident that has affected us in us-east-2. And since we're using ECS and fargate, we've also not had to worry about instance retirement.
On the other hand - I've also had numerous personal servers with hetzner over the years - and the hardware is _old_. I've had at least 3 hard drives go bad over the last ~8 years.
Again, I still strongly recommend hetzner for many cases - but I just think it's important to go in understanding the difference in responsibility for things like hardware level monitoring.