SAA-C03 Question 135
Select 3You are designing a multi-tier web application on AWS consisting of a front-end tier, an application tier, and a database tier. The front-end tier is hosted on Amazon EC2 instances behind an Application Load Balancer (ALB). The application tier is also hosted on EC2 instances, and the database tier is managed using Amazon RDS. Which of the following design decisions will improve the scalability and fault tolerance of the application?
- A
Configure Auto Scaling groups for both the front-end and application-tier EC2 instances.
- B
Use Multi-AZ deployment for the Amazon RDS database.
- C
Deploy the application-tier EC2 instances in a single Availability Zone to reduce latency.
- D
Use Elastic Load Balancing to distribute traffic across the application-tier EC2 instances.
- E
Store session state in the application-tier EC2 instance memory to improve performance.
Show answer and explanation
Correct answers: A, B, D
Explanation
In a multi-tier architecture, scalability and fault tolerance are key design considerations. Auto Scaling and Elastic Load Balancing ensure that the system can handle varying traffic loads and remain available even in the event of instance failures. Multi-AZ deployment for Amazon RDS is a best practice to maintain database availability in the event of infrastructure failure. Storing session state in EC2 instance memory and deploying in a single Availability Zone are counterproductive to fault tolerance and scalability.
- A. Correct.
Configuring Auto Scaling groups ensures that the EC2 instances can scale horizontally in response to traffic spikes, improving scalability and availability.
- B. Correct.
Using Multi-AZ deployment for Amazon RDS provides automatic failover to a standby instance in another Availability Zone, improving fault tolerance.
- C. Incorrect.
Deploying application-tier EC2 instances in a single Availability Zone does not provide fault tolerance because all instances would be impacted if the Availability Zone fails.
- D. Correct.
Using Elastic Load Balancing to distribute traffic helps ensure that the load is evenly distributed across instances, improving scalability and fault tolerance.
- E. Incorrect.
Storing session state in the memory of application-tier EC2 instances makes the architecture less fault-tolerant because a failure in an instance would result in session loss.