In the last article we talked about the basics of cloud computing and we examined some of the core concepts of AWS. Now that we understand this, we can go into more detail. We will explain what makes AWS truly global and how that helps us to build fault tolerant and scalable infrastructure.
By: Mijndert Stuij
What is the AWS Global Infrastructure?
The AWS Global Infrastructure consists of multiple geographical locations which are called Regions. AWS Regions are divided up in Availability Zones which consist of one or more psychically separated data centers. These Regions and Availability Zones provide a way to build highly available, fault tolerant, and scalable infrastructures.
All Availability Zones (AZs) are connected through low latency, high throughput, and highly redundant networking. AZs are physically separated by an unknown minimum distance to ensure availability of the network even in the event of catastrophic events like extreme weather. As of April 2020, AWS spans 70 Availability Zones within 22 Regions around the world.
Points of Presence
Another part of the AWS Global Infrastructure are Points of Presence (POP). The POPs are used for both AWS CloudFront to deliver content to end users at high speeds, and Lambda@Edge to run Lambda functions with the lowest possible latency. As of April 2020, there are 216 Points of Presence in 84 cities across 42 countries.
Designing for failure
Using the AWS Global Infrastructure, it’s easy to design fault tolerant infrastructure. We can achieve this by having multiple EC2 instances in different Availability Zones or even Regions. In the unlikely event of an Availability Zone or entire Region failing, your applications are not impacted. Other services like Relational Database Service (RDS) can achieve fault tolerance because they have Multi-AZ deployment models built-in. Of course, there is always extra cost involved when having your servers and data stored in multiple AZs.
Using Regions, you can also scale out your applications to make sure they are as close to your end-users as possible. If, for example, you have customers in both Europe and the United States you can easily replicate your infrastructure by launching it in a different region.
VPC networks in different regions can be tied together using VPC Peering. Instances in either VPC can communicate with each other as if they are in the same private network. You can create VPC peering connections between your own VPCs, with a VPC in another AWS account, or with a VPC in a different AWS region. It is neither a gateway nor a VPN connection and doesn’t need physical hardware, mitigating the need for maintenance.
The following example is a simplified depiction of a fault tolerant architecture leveraging the AWS Global Infrastructure. In this example 2 Regions with 2 Availability Zones each are used to load balance traffic to EC2 instances. Using VPC peering we can replicate the database to a different region.
We at inQdo always keep these core concepts in mind when we design architecture for our clients.