Which solution will meet these requirements with the LEAST operational overhead?
Create an AMI of the web server VM. Create an Amazon EC2 Auto Scaling group that uses the AMI and an Application Load Balancer. Set up Amazon MQ to replace the on-premises messaging queue. Configure Amazon Elastic Kubernetes Service (Amazon EKS) to host the order-processing backend.
Create a custom AWS Lambda runtime to mimic the web server environment. Create an Amazon API Gateway API to replace the front-end web servers. Set up Amazon MQ to replace the on-premises messaging queue. Configure Amazon Elastic Kubernetes Service (Amazon EKS) to host the order-processing backend.
Create an AMI of the web server VM. Create an Amazon EC2 Auto Scaling group that uses the AMI and an Application Load Balancer. Set up Amazon MQ to replace the on-premises messaging queue. Install Kubernetes on a fleet of different EC2 instances to host the order-processing backend.
Create an AMI of the web server VM. Create an Amazon EC2 Auto Scaling group that uses the AMI and an Application Load Balancer. Set up an Amazon Simple Queue Service (Amazon SQS) queue to replace the on-premises messaging queue. Configure Amazon Elastic Kubernetes Service (Amazon EKS) to host the order-processing backend.
Explanations:
This option involves creating an AMI for the web server VM and using an Auto Scaling group with an Application Load Balancer, which is suitable for scaling and managing the web front end with minimal changes. Amazon MQ is a managed service that can replace RabbitMQ with minimal operational overhead. Configuring Amazon EKS allows the existing Kubernetes configuration to be maintained, providing a seamless transition to the cloud.
This option suggests creating a custom AWS Lambda runtime, which would require significant changes to the existing application architecture. It also proposes using Amazon API Gateway to replace the web servers, which would likely introduce complexity and operational overhead. While Amazon MQ is appropriate, the use of Lambda is not aligned with the requirement of making minimal changes to the application.
Although this option suggests creating an AMI and using an Auto Scaling group with an Application Load Balancer, it incorrectly proposes installing Kubernetes on EC2 instances instead of utilizing EKS. Managing Kubernetes manually increases operational overhead compared to using EKS, which is a managed service. This contradicts the requirement for the least operational overhead.
This option correctly creates an AMI and uses an Auto Scaling group with an Application Load Balancer. However, it suggests replacing RabbitMQ with Amazon SQS, which is a different messaging paradigm (FIFO vs. pub/sub), potentially requiring changes in the backend architecture. This could lead to more operational overhead than necessary. Using Amazon MQ instead would be more suitable for maintaining existing messaging patterns.