Which solution meets these requirements?
Use Amazon S3 to host the front-end layer and AWS Lambda functions for the application layer. Move the database to an Amazon DynamoDB table and use Amazon S3 to store and serve users’ images.
Use load-balanced Multi-AZ AWS Elastic Beanstalk environments for the front-end and the application layer. Move the database to an Amazon RDS instance with multiple read replicas to serve users’ images.
Use Amazon S3 to host the front-end layer and a fleet of Amazon 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.
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.
Explanations:
This option requires significant changes to the application. Moving to Amazon S3 for the front-end and DynamoDB for the database would require a redesign of the application, especially since the current application uses MySQL. Additionally, using AWS Lambda functions would involve refactoring the application logic.
While Elastic Beanstalk environments and Multi-AZ configurations are good for scalability and high availability, moving the database to an Amazon RDS instance with read replicas may be unnecessary for this case. The requirement specifies the least amount of change, and this option would involve modifications to the existing architecture that may not be essential.
Moving to Amazon EC2 instances in an Auto Scaling group for the application layer is a good scalability solution, but it does not address high availability as effectively as other options (e.g., Multi-AZ or load-balanced Elastic Beanstalk environments). Using a memory-optimized instance type for the database does not improve availability or scalability significantly compared to Amazon RDS Multi-AZ.
This option meets the requirements of scalability and high availability with minimal changes. Load-balanced Multi-AZ Elastic Beanstalk environments provide fault tolerance for the front-end and application layers. Moving the database to an Amazon RDS Multi-AZ DB instance ensures high availability without requiring significant changes to the application logic. Storing images in S3 is already in line with scalable and cost-effective storage.