Building blocks for highly available systems
Thanks to the cloud, highly available systems are becoming the new standard. Creating an architecture offering high availability or even fault tolerance is affordable nowadays as you can use ready-to-use building blocks. On top of that, you can operate a highly available infrastructure in the cloud with almost no extra costs.
AWS offers managed services with built-in high availability or even fault tolerance:
- Load Balancer (ELB) is fault tolerant
- SQL database (RDS) is highly available on demand
- No-SQL database (DynamoDB) is fault tolerant
- Object Store (S3) is fault tolerant
The virtual server (EC2) itself is not high available or fault tolerant as the underlying virtualization or hardware might fail. But tools are helping you to build a high available infrastructure based on virtual servers.
Please support our work!
We have published 327 articles, 41 podcast episodes, and 15 videos. It's all free and means a lot of work in our spare time.
Thanks to Alex DeBrie, e9e4e5f0faef, Goran Opacic, jhoadley, Thorsten Hoeger, Todd Valentine, Vince Fulco, and all anonymous supporters for your help! We also want to thank all supporters who purchased a cloudonaut t-shirt. It gives us great pleasure to send our t-shirts all over the world.
With your help, we can continue to produce independent & high-quality content focused on AWS. Please support us!Support us
The following figure shows a typical architecture for web applications offering high availability. The building blocks are:
- Load Balancer (ELB) fault tolerant by default routing requests to healthy virtual servers.
- Running virtual servers in different data centers (Availability Zone) in the same region.
- Running an SQL database which replicates all data from the master database to a standby database in another data center (Multi-AZ deployment).
All parts of this architecture are highly available. There is no single-point-of-failure left.