As someone said here, what you can do with a dedicated physical server can do it with a virtual one, which generally says that problems with the public cloud are prices and reliability.
If you are concerned about reliability and high availability for an application that sounds traditional or traditional, then public cloud is not necessarily the right choice.
Public clouds are excellent places for flexibility and burst capability, however, the reliability may be irregular unless you make full use of your multi-zone functions and your application is "web-scale", which is not what you write .
I would definitely consider the public cloud, but I would also think of a reliable provider of dedicated servers in a decent-level data center with redundant power and network.
If you feel comfortable managing your own hardware, then colo could also be an option.