
Answer-first summary for fast verification
Answer: Use load-balanced Multi-AZ AWS Elastic Beanstalk environments for the front-end layer and the application layer. Move the database to an Amazon RDS Multi-AZ DB instance. Use Amazon S3 to store and serve users' images.
## Explanation **Correct Answer: D** **Why Option D is correct:** 1. **Least amount of change to the application**: Elastic Beanstalk provides a managed platform that can run existing applications with minimal changes. It handles deployment, capacity provisioning, load balancing, and automatic scaling. 2. **Scalable and highly available**: - Load-balanced Multi-AZ Elastic Beanstalk environments provide automatic scaling and high availability for both front-end and application layers - RDS Multi-AZ DB instance provides high availability for the database with synchronous replication to a standby instance in another Availability Zone - Amazon S3 is ideal for storing and serving static content like images, providing high durability and availability **Why other options are incorrect:** **Option A**: This requires significant application changes: - Moving front-end to S3 (static hosting) requires rewriting the front-end - Moving to Lambda (serverless) requires rewriting the application layer - Moving from MySQL to DynamoDB (NoSQL) requires database schema and query changes **Option B**: This uses RDS read replicas to serve users' images, which is inefficient and expensive. RDS is not designed for storing and serving large binary files like images. S3 is the appropriate service for this purpose. **Option C**: This moves the database to a memory optimized instance but doesn't provide high availability for the database. A single EC2 instance for database is a single point of failure. Also, using a database to store and serve images is inefficient compared to S3. **Key AWS Services Used:** - **AWS Elastic Beanstalk**: Managed platform for deploying and scaling web applications - **Amazon RDS Multi-AZ**: Provides high availability for relational databases - **Amazon S3**: Object storage service ideal for storing and serving static content like images - **Load Balancers**: Distribute traffic across multiple instances for high availability
Author: LeetQuiz Editorial Team
Ultimate access to all questions.
No comments yet.
A company has a three-tier application for image sharing. The application uses an Amazon EC2 instance for the front-end layer, another EC2 instance for the application layer, and a third EC2 instance for a MySQL database. A solutions architect must design a scalable and highly available solution that requires the least amount of change to the application.
Which solution meets these requirements?
A
Use Amazon S3 to host the front-end layer. Use AWS Lambda functions for the application layer. Move the database to an Amazon DynamoDB table. Use Amazon S3 to store and serve users' images.
B
Use load-balanced Multi-AZ AWS Elastic Beanstalk environments for the front-end layer and the application layer. Move the database to an Amazon RDS DB instance with multiple read replicas to serve users' images.
C
Use Amazon S3 to host the front-end layer. Use a fleet of EC2 instances in an Auto Scaling group for the application layer. Move the database to a memory optimized instance type to store and serve users' images.
D
Use load-balanced Multi-AZ AWS Elastic Beanstalk environments for the front-end layer and the application layer. Move the database to an Amazon RDS Multi-AZ DB instance. Use Amazon S3 to store and serve users' images.