Your application isn't going to magically become HA/DR. You still have to make it that way, from your application design/coding up through the deployment.
I mean, if you're not storing your session IDs in a data store that's reachable by all the nodes behind your load balancer then no amount of infrastructure is going to save you.
That’s a realistic scenario no matter whether you’re bare metal, building out your own cloud, or using someone else’s. No amount of AWS/GCP/Azure/et al marketing changes that.
Yes, you have to learn things to goto the cloud, and I won't say it is all roses, it ain't. But... AWS is less likely to fsck it up.
If you have the constant load to burn the flops 24x7x365... go for it. If you have the ops team to do it... go for it.
If you don't... take a bit of time and learn the cloud which is much easier than getting on-prem right.
Especially for smaller firms, this isn't even a close call IMHO.
It’s still a win for a lot of use cases and I still do it quite often, but the meme that it’s this “click and you’ve just hired the best ops team in the world to work for you” and so the 50-500% markup is actually a bargain is horseshit. A Bizon box in your living room fucks AWS up on flops/$ on most instance types and pays for itself in 30 days.
It is one of the best ops teams on Earth: but they’re working for you like the Google search team is working for the user.