Part 4. Architecting on AWS
Werner Vogels, CTO of Amazon.com, is quoted as saying, “Everything fails all the time.” This is an important concept behind AWS. Instead of trying to reach the unreachable goal of being an unbreakable system, AWS is built for failure. Hard drives fail, so S3 stores data on multiple hard drives to prevent loss of data. Computing hardware fails, so virtual servers can be automatically restarted on another machine if necessary. Data centers fail, so there are multiple data centers per region that can be used in parallel or on demand.
In this part of the book, you’ll learn how to prevent an outage of your applications running on AWS by using the right tools and architecture. The following table lists the most important services and their approach to handling failure:
Description |
Examples |
|
---|---|---|
Fault tolerant | Services can recover from failure automatically without any downtime. | S3 (object storage), DynamoDB (NoSQL database), Route 53 (DNS) |
Highly available | Services can recover from some failures automatically with a brief downtime. | RDS (relational database), EBS (network attached storage) |
Manual failure handling | Services don’t recover from failure by default but offer tools to build a highly available infrastructure on top of them. | EC2 (virtual server) |