I am getting really tired of people bashing the cloud by saying things like “Amazon’s outage in third day: debate over cloud computing’s future begins”. People need to understand that the cloud is not some magical place you put your applications into and never have to worry ever again. There are always a bunch of servers in racks somewhere or some power lines going to the data center, and there is always a driver that can run into a utility pole.
You can’t just put all responsibility into Amazon’s hands to keep your application online. All they do is provide flexible computing resources on demand in different regions and availability zones and provide 99.95% SLA at the most for their services.
Its your responsibility to design applications and systems architectures for failure, building in redundancy mostly at the application layer.
Here are some things you can do to design for failure on Amazon:
- Use multiples availability zones
- Use multiple regions
- Use database replication across availability zones or regions (MySQL or NoSQL)
- Have multiple servers on all tiers and spread them across availability zones
- Perform onsite and offsite backups
- Have a DR plan and an ability to launch on a different cloud
These are just a few. The point is you need to design your applications and systems architectures for HA in the cloud and not assume just because you are running in the cloud you are protected.