What changes will the Engineering team need to implement to make the solution the MOST resilient and highly available while meeting the expected increase in demand?
Use AWS OpsWorks to automatically configure each new EC2 instance as it is launched. Configure the EC2 instances by using an Auto Scaling group behind an Application Load Balancer across multiple Availability Zones. Implement Amazon DynamoDB Auto Scaling. Use Amazon Route 53 to point the application DNS record to the Application Load Balancer.
Deploy a fleet of EC2 instances, doubling the current capacity, and place them behind an Application Load Balancer. Increase the Amazon DynamoDB read and write capacity units. Add an alias record that contains the Application Load Balancer endpoint to the existing Amazon Route 53 DNS record that points to the application.
Configure Amazon CloudFront and have its origin point to Amazon S3 to host the web application. Implement Amazon DynamoDB Auto Scaling. Use Amazon Route 53 to point the application DNS record to the CloudFront DNS name.
Use AWS Elastic Beanstalk with a custom AMI including all web components. Deploy the platform by using an Auto Scaling group behind an Application Load Balancer across multiple Availability Zones. Implement Amazon DynamoDB Auto Scaling. Use Amazon Route 53 to point the application DNS record to the Elastic Beanstalk load balancer.
Explanations:
While using AWS OpsWorks can help automate the configuration of EC2 instances, it may not significantly reduce the configuration time compared to using other options. The solution does implement Auto Scaling and an Application Load Balancer for high availability, but it lacks the immediate deployment capabilities offered by Elastic Beanstalk or pre-configured AMIs.
Doubling the capacity of EC2 instances and placing them behind an Application Load Balancer provides some resilience and availability. However, simply adding more instances without addressing the configuration time and not implementing Auto Scaling for EC2 or the DynamoDB may not effectively handle sudden traffic spikes.
Using Amazon CloudFront to cache content from S3 can reduce load on the application and improve latency, but it does not address the backend EC2 instance configuration time. It also does not offer a scalable solution for dynamic content generated by the application, as it relies solely on static content from S3 and does not directly handle EC2 scaling or configuration.
AWS Elastic Beanstalk allows for quick deployment of applications using a pre-configured custom AMI, significantly reducing the configuration time for new instances. The use of an Auto Scaling group behind an Application Load Balancer ensures high availability across multiple Availability Zones, while implementing DynamoDB Auto Scaling addresses database capacity automatically, making it the most resilient and highly available option.