An insurer is rehosting a batch-processing application that already ships as a Docker image and runs as long-lived background workers reading jobs from a queue. Management wants the workers in AWS without buying, patching, or right-sizing any container host fleet, while keeping per-task CPU and memory isolation and paying only for the resources each running task consumes. The workload is steady but unpredictable in volume, and the platform team has no appetite for managing EC2 capacity. Which compute platform MOST cost-effectively and efficiently meets these requirements?
- ARun the containers on an Amazon ECS cluster backed by an EC2 capacity provider, sizing an Auto Scaling group of container instances and patching the host operating system so the cluster can place the worker tasks.
- BConvert the worker logic into AWS Lambda functions triggered by the queue, repackaging the container so each job runs as a short-lived invocation within the Lambda execution timeout instead of a long-lived process.
- CDeploy the containers to a self-managed Kubernetes cluster on EC2 so the platform team controls scheduling and networking in detail, scaling worker nodes manually as the queue depth rises and falls over time.
- DRun the existing container image as Amazon ECS tasks on AWS Fargate, letting Fargate provision isolated task capacity on demand so the team manages no host fleet and pays only for the vCPU and memory each task uses. Correct
Why A is wrong: ECS on EC2 places the tasks correctly, but it leaves the team owning host capacity planning, patching, and right-sizing, which is exactly the undifferentiated work management asked to avoid in this rehost.
Why B is wrong: Lambda is serverless, but its bounded execution duration and event-driven model do not suit long-lived background workers and would force re-architecting the batch processes, exceeding the scope of a container rehost.
Why C is wrong: Self-managed Kubernetes on EC2 maximises control but adds substantial cluster and node operations, contradicting the explicit requirement to avoid managing host capacity and patching for this workload.
Why D is correct: Fargate runs the unchanged container image as ECS tasks with per-task CPU and memory isolation, provisions capacity serverlessly, and bills only for resources each task consumes, removing all host management for these queue workers.