Which solution will meet these requirements with the LEAST operational overhead?
Migrate the container application to Amazon Elastic Container Service (Amazon ECS). Use Amazon Simple Queue Service (Amazon SQS) to retrieve the messages.
Migrate the container application to Amazon Elastic Kubernetes Service (Amazon EKS). Use Amazon MQ to retrieve the messages.
Use highly available Amazon EC2 instances to run the application. Use Amazon MQ to retrieve the messages.
Use AWS Lambda functions to run the application. Use Amazon Simple Queue Service (Amazon SQS) to retrieve the messages.
Explanations:
While Amazon ECS and Amazon SQS are both managed services that reduce operational overhead, migrating from AMQP to SQS could introduce complexity and require changes to the application code to accommodate the different messaging patterns.
Migrating the application to Amazon EKS allows for the use of managed Kubernetes, which closely aligns with the existing containerized application. Using Amazon MQ supports AMQP, which means less code change is required, leading to lower operational overhead while maintaining the existing messaging protocols.
Running the application on EC2 instances requires more operational overhead, as the company will need to manage the scaling and maintenance of the instances. Although Amazon MQ can be used, the operational burden of managing EC2 infrastructure outweighs the benefits.
AWS Lambda is suitable for event-driven architectures but may not be the best fit for a container application that requires persistent state or long-running processes. Furthermore, using SQS instead of AMQP would likely require significant application changes, increasing operational complexity.