CloudGuild · Blog · Cheat sheets · Lessons · Certifications
Designing a Highly Available Web Application: Exam Question Walkthrough
Explore a question on designing a highly available web application for the AWS Certified Solutions Architect - Associate exam. Learn the reasoning behind each option.
A common stumbling block for candidates is understanding the nuances between different AWS services when designing for high availability and scalability. The right combination of services can significantly impact application performance and resilience.
The question
A company needs to design a highly available web application that can scale automatically based on traffic patterns. They want to use AWS services that minimize downtime and provide quick recovery from failures. Which combination of services should they implement?
- A. Amazon EC2 with Auto Scaling, and Amazon RDS Multi-AZ
- B. AWS Lambda with Amazon API Gateway, and Amazon DynamoDB
- C. Amazon ECS with EC2 launch type, and Amazon EFS
- D. Amazon Lightsail with a Static IP and Elastic Load Balancing
Think before you scroll
Consider the requirements: high availability, automatic scaling, and quick recovery. Each option has different strengths and weaknesses. Focus on services designed specifically for these scenarios.
The answer
The correct options are A and B. Both combinations provide high availability and automatic scaling. Amazon EC2 with Auto Scaling and RDS Multi-AZ offers resilience through managed database failover and the ability to scale EC2 instances based on traffic. AWS Lambda, combined with API Gateway and DynamoDB, automatically scales based on demand and provides high availability with no server management.
Why the other options lose
C. Amazon ECS with EC2 launch type, and Amazon EFS: While ECS can manage containerized applications, it is not the best choice for automatic scaling without additional configurations. EFS provides shared storage but does not address high availability and quick recovery as effectively as the correct options.
D. Amazon Lightsail with a Static IP and Elastic Load Balancing: Lightsail is designed for simpler applications and does not offer the same level of scalability and high availability as the other options. Elastic Load Balancing is useful, but without the underlying infrastructure to support resilience, it falls short.
The concept behind it
Designing for high availability involves using services that can automatically recover from failures and scale based on demand. Understanding the characteristics of services like EC2, RDS, Lambda, and DynamoDB is crucial. They each provide features that help maintain application usability during traffic spikes or failures.
Exam trap to remember
Always prioritize services that inherently provide high availability and automatic scaling features when designing resilient architectures. Look for managed services that reduce operational overhead and increase reliability.