Which solution will meet this requirement with the LEAST development effort?
Create an Amazon CloudFront distribution. Specify the EC2 instance as the distribution’s origin. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
Run the application on EC2 instances that are in an Auto Scaling group. Place the EC2 instances behind an Elastic Load Balancing (ELB) load balancer. Replace the database service with Amazon Aurora. Use Aurora Replicas for the read-intensive operations.
Deploy AWS Global Accelerator. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
Migrate the application to AWS Lambda functions. Create read replicas for the RDS for MySQL database. Use the read replicas for the read-intensive operations.
Explanations:
Using CloudFront would improve content delivery, but it does not address the application’s architecture or load handling. The Multi-AZ RDS deployment improves availability but does not specifically address the EC2 instance’s responsiveness under load.
Running the application on EC2 instances in an Auto Scaling group ensures that the application can scale horizontally to handle increased load, while the ELB distributes traffic among instances. Migrating to Amazon Aurora allows for better performance and the use of Aurora Replicas for read operations enhances reliability without major development effort.
AWS Global Accelerator optimizes routing but does not directly improve application reliability or scaling. A Multi-AZ deployment for RDS improves availability but does not resolve the EC2 instance’s unresponsiveness under high load.
Migrating to AWS Lambda functions would require significant changes to the application architecture. While read replicas for RDS help with read-intensive operations, this option introduces a higher development effort than the correct answer.