Which solution meets these requirements?
Use Amazon Elastic Container Service (Amazon ECS) with Amazon EC2 worker nodes for compute and MongoDB on EC2 for data storage.
Use Amazon Elastic Container Service (Amazon ECS) with AWS Fargate for compute and Amazon DynamoDB for data storage.
Use Amazon Elastic Kubernetes Service (Amazon EKS) with Amazon EC2 worker nodes for compute and Amazon DynamoDB for data storage.
Use Amazon Elastic Kubernetes Service (Amazon EKS) with AWS Fargate for compute and Amazon DocumentDB (with MongoDB compatibility) for data storage.
Explanations:
While Amazon ECS with EC2 worker nodes can run containerized applications, it requires code or deployment changes due to the different orchestration system compared to Kubernetes. Additionally, using MongoDB on EC2 would not minimize operational overhead as it requires manual management and scaling.
Amazon ECS with AWS Fargate can run containers without managing servers, but it necessitates code changes because the application is currently designed for Kubernetes. Furthermore, switching to DynamoDB involves changing the data model, which is not permissible in this case.
Amazon EKS can run Kubernetes workloads; however, using Amazon DynamoDB for data storage requires significant changes to the application to accommodate the different database design. The company needs to keep the same application structure without code changes.
Amazon EKS allows the application to run in a Kubernetes environment without code changes, and using AWS Fargate reduces operational overhead by managing the underlying infrastructure. Amazon DocumentDB is compatible with MongoDB, allowing for a smoother migration of the data storage layer without requiring application modifications.