Amazon Web Services offers customers unique global infrastructure to build reliable, available, and redundant architecture. Comprising Regions and Availability Zones, AWS customers have the flexibility to choose the Region and Availability Zones to plan business continuity and build infrastructure that best meet with their business objectives such as proximity to end users, compliance, or data residency constraints, cost, etc.
It is important for customers to understand how AWS infrastructure operates and the best practices in deploying your application to build highly available, reliable and fault tolerant applications. Below we elaborate the concepts of AWS global infrastructure and best practices to maximize deployment.
An AWS region is a “geographic area” such as the US East region, US West region, EU region, Singapore region, Tokyo and India region. Each region is made up of one or more availability zones. AWS offers 16 geographic regions with 43 availability zones.
Each region is made up of Availability Zones or AZs. An AZ is a cluster of datacenters with independent power, cooling and physical security within the region. Availability Zones are engineered to be isolated from failure in other availability zones within the region and are connected via a low latency network.
For an application to be highly available and highly resilient in a Region, the best practice is to run the application simultaneously and independently across multiple Availability Zones. By launching instances in separate AZs, you can protect your applications from most failures that would affect a single zone.
This means that if the application requires three servers to run normally, it should run in three servers in multiple Availability Zones. In case of a failure in any one AZ, if the application is architected properly, it will continue to run unaffected.
Customers can also choose to use any of the Regions around the world to distribute their application geographically. For example if an AWS customer wishes to serve its customers in Europe, the customer should a region or datacenter in Europe including London, Frankfurt or Ireland to deliver a good customer experience.
AWS infrastructure comprises a third component: edge locations which helps in content delivery. You can reduce the latency of your global applications to end users by using the Amazon CloudFront content delivery network.
Edge locations distribute the content to the end user based on the principle of latency-based routing. If the user is in Sydney and the data is stored in Sau Paulo, CloudFront will recognize the location of the request and move the data from where it is originally stored to an edge location where the user is. This means the second request from Sydney will access the data much faster as the system does not have to go back to Sau Paulo to fetch the data but will access it from the edge storage in Sydney. This dramatically enhances user experience as it serves customers from the closest nearest edge location reducing the latency.
For more understanding you can check http://aws.amazon.com/architecture/ that provides guidance on building fault tolerant applications in the cloud. Among the resources are training webinars, best practice guides, and white papers.