Which solution will resolve these issues in the MOST operationally efficient way?
Replace the EC2 instances with T3 EC2 instances that run in an Auto Scaling group. Make the changes by using the AWS Management Console.
Modify the CloudFormation templates to run the EC2 instances in an Auto Scaling group. Increase the desired capacity and the maximum capacity of the Auto Scaling group manually when an increase is necessary.
Modify the CloudFormation templates. Replace the EC2 instances with R5 EC2 instances. Use Amazon CloudWatch built-in EC2 memory metrics to track the application performance for future capacity planning.
Modify the CloudFormation templates. Replace the EC2 instances with R5 EC2 instances. Deploy the Amazon CloudWatch agent on the EC2 instances to generate custom application latency metrics for future capacity planning.
Explanations:
T3 instances are burstable and may not provide the necessary consistent performance for a stateful application under high traffic. Using an Auto Scaling group could help with scaling, but replacing M5 with T3 is not ideal for performance.
While modifying the CloudFormation templates to use an Auto Scaling group could help, simply increasing the capacity manually does not provide an operationally efficient solution. It does not automate scaling based on demand.
Switching to R5 instances may improve memory performance but does not address the operational efficiency of scaling. Without automation, capacity management remains manual, which is not optimal.
This option addresses both performance and operational efficiency. R5 instances offer better memory performance, and deploying the CloudWatch agent allows for custom metrics, enabling automated scaling decisions based on actual application performance.