AWS High Availability Architecture & Fault Tolerance Architecture Certification

AWS High Availability and Fault Tolerance Architecture
Amazon Web Services offers services and infrastructure to help you build reliable, fault-tolerant and highly available cloud systems.
Fault-tolerance is the ability to allow a system to continue to function even if certain components fail.
The majority of the higher-level services such as S3, SimpleDB and SQS were designed with fault tolerance in mind and high availability.
Services that provide basic infrastructure such as EBS and EC2 have specific features such as availability zones, elastic Ip addresses and snapshots that a fault-tolerant system must take advantage and use correctly.
NOTE: This topic is only for Professional Exams
Regions and Availability Zones
Amazon Web Services are available within geographic regions and multiple availability zones (AZs), which allow for easy access to redundant deployment locations.
AZs are geographically distinct locations that have been designed to be protected from failures in other AZs.
Regions and AZs can help with fault tolerance by distributing the applications geographically and help to build multi-site solutions.
AZs offer low latency, inexpensive network connectivity to other Availability zones in the same Region
An application can be protected against failure at a single datacenter by placing EC2 instances within multiple AZs
It is important to have multiple application stacks running in different AZs, either in the same area or in different regions. This way, if one zone fails, another zone can continue to run. Amazon Machine Image – AMIs
Amazon Web Services’ web service EC2 provides computing resources.
Amazon Machine Image (AMI), provides a Template to help you define service instances.
Template is a type of software configuration that contains an OS, application server and applications. It is used to create an instance type.
AMI can contain all software, applications, and code bundled together or it can be configured with a bootstrap script to automatically install the software on startup.
A single AMI can be used for creating server resources of different types and to start creating new instances, or replacing failed instances.
Auto Scaling allows you to automatically scale EC2 capacity based on predetermined rules.
Auto Scaling allows you to add more instances in response a growing load. When those instances are not needed anymore, they will automatically be terminated.
Auto Scaling allows you to terminate server instances at will and know that replacement instances are automatically launched.
Auto Scaling can be used across multiple AZs in an AWS RegionElastic load Balancing – ELB
Elastic load balancing is a great way to increase availability and distribute incoming traffic across multiple EC2 instances.
ELB creates a DNS hostname and all requests to it are delegated into a pool of E2 instances.
ELB supports health checks of hosts, traffic distribution to EC2 instances across multiple availability zone, and dynamic addition/removal of EC2 hosts in the load-balancing rotation
Elastic Load Balancing detects unhealthy EC2 instances in its pool and automatically reroutes traffic towards healthy instances until the unhealthy instances are restored seamlessly using Auto Scaling.
Auto Scaling and Elastic Load Balance are a great combination – ELB only gives one DNS name for addressing, but Auto Scaling ensures that there are always enough EC2 instances available to receive requests.
ELB can be used for balancing across instances in multiple regions. Elastic IPs – EIPs
Elastic IP addresses can be used to map programmatically between instances within the same region.
EIPs that are associated with the AWS account