Question #1388
A company operates an application on Amazon EC2 Linux instances that execute nightly batch jobs lasting up to two hours. These jobs are developed in multiple programming languages without a common framework. The company wants to improve scalability and ensure these jobs run efficiently without increasing management complexity. Which solution meets these requirements with the LEAST operational overhead?
Use AWS Batch to manage the jobs and schedule them via Amazon EventBridge (Amazon CloudWatch Events).
Containerize each job and deploy using AWS Fargate with scheduled tasks.
Migrate the jobs to AWS Lambda functions triggered by Amazon EventBridge schedules.
Configure an Auto Scaling group to adjust the number of EC2 instances based on CloudWatch alarms.
Explanation
Answer A is correct because:
- AWS Batch dynamically provisions resources (EC2/Spot Instances) based on job requirements, ensuring scalability without manual intervention.
- Amazon EventBridge schedules nightly jobs reliably, aligning with the batch window.
- AWS Batch is language-agnostic, requiring only jobs to be executable (via containers/scripts), fitting the multi-language environment.
Other options:
- B (Fargate): Requires containerization, adding development effort, and Fargate may cost more for long-running tasks.
- C (Lambda): Lambda's 15-minute runtime limit makes it unsuitable for 2-hour jobs.
- D (Auto Scaling): Manual scaling policies and instance management increase operational complexity.
Key Points: AWS Batch + EventBridge minimizes management effort, handles long-running jobs, and supports diverse languages.
Answer
The correct answer is: A