AWS Certified Solutions Architect - Associate: Fault-Tolerant and Highly Available Architectures for Web Applications on AWS

Considerations for Fault-Tolerant and Highly Available Architectures on AWS

Prev Question Next Question

Question

Your company is planning on moving to the AWS Cloud.

One of the Web applications will be launched on a set of EC2 Instances.

You need to ensure that the architecture is fault-tolerant and highly available.

Which of the following would be considered during the design process.

Choose 2 answers from the options given below.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - B and C.

This is clearly mentioned in the AWS Documentation.

What Is Elastic Load Balancing?

Elastic Load Balancing distributes incoming application or network traffic across multiple targets, such as Amazon EC2 instances, containers, and IP addresses, in multiple Availability Zones.

Elastic Load Balancing scales your load balancer as traffic to your application changes over time and can automatically scale to the vast majority of workloads.

Load Balancer Benefits.

A load balancer distributes workloads across multiple compute resources, such as virtual servers.

Using a load balancer increases the availability and fault tolerance of your applications.

Option A is invalid because it will not increase the availability and fault tolerance of your applications.

Option D is invalid because you need to ensure that the Instances are spread across multiple availability zones.

For more information on load balancing and availability of EC2 Instances, please visit the URL-

https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html

To ensure fault-tolerant and highly available architecture for the Web application on EC2 instances, the following two design considerations should be taken into account:

  1. Use a load balancer in front of the EC2 instances: Load balancers distribute incoming traffic across multiple EC2 instances. By distributing the traffic, the load balancer ensures that no single instance receives too much traffic, and the overall workload is shared across all the instances. In case one of the EC2 instances fails, the load balancer will automatically redirect traffic to the other available instances. This ensures that the application remains available and responsive even if one or more instances fail. AWS provides a load balancing service called Elastic Load Balancer (ELB) that can be used for this purpose.

  2. Ensure that the EC2 instances are spread across multiple availability zones: An availability zone (AZ) is an isolated location within an AWS region, where resources can be deployed. Deploying EC2 instances across multiple AZs ensures that the application remains available even if an entire AZ goes down due to a natural disaster or other unforeseen events. In such cases, the load balancer will redirect traffic to instances in other AZs, ensuring high availability and fault tolerance. To achieve this, Auto Scaling Groups can be used to automatically launch instances in multiple AZs. Additionally, data storage for the application, such as databases, should also be deployed across multiple AZs to ensure data availability in case of an AZ failure.

The following options are incorrect: A. Have a Single Availability Zone for the databases: Deploying databases in a single availability zone can result in a single point of failure, and any outage in that AZ could lead to the loss of data and application downtime. Hence, it is not a recommended practice. D. Ensure that the EC2 Instances are spread across a single availability zone for better maintenance: Deploying all the EC2 instances in a single AZ may result in lower maintenance efforts but also results in a single point of failure. If the AZ fails, then the application becomes unavailable, resulting in downtime. Hence, it is not a recommended practice.