"We moved to cloud so we don't have to worry about availability." That sentence has ended more outages badly than most hardware faults.
The cloud doesn't remove failure. It moves it somewhere you can't see and didn't design for. The provider hands you the building blocks for high availability. Whether you assembled them into something that survives a bad day is entirely on you.
A single instance in a single zone is still a single point of failure, the same as a server under a desk. It just has better marketing. Availability comes from spreading across zones, designing for a region to wobble, and accepting that "managed" means the provider manages their layer, not your architecture.
The uncomfortable part is the maths. The provider publishes an availability number for their service. Your application's availability is the product of every dependency stacked together, and that sum is rarely as kind as the headline figure. Three services at "three nines" each, chained, do not give you three nines.
People read the SLA as a promise about their uptime. It's a promise about one component, with service credits if it's missed. A credit is not your business staying up.
Resilience was never something you could buy by the hour. It's something you design, and then prove.