Which solution will meet these requirements?
Create a container image for the cron jobs. Use Amazon EventBridge Scheduler to create a recurring schedule. Run the cron job tasks as AWS Lambda functions.
Create a container image for the cron jobs. Use AWS Batch on Amazon Elastic Container Service (Amazon ECS) with a scheduling policy to run the cron jobs.
Create a container image for the cron jobs. Use Amazon EventBridge Scheduler to create a recurring schedule. Run the cron job tasks on AWS Fargate.
Create a container image for the cron jobs. Create a workflow in AWS Step Functions that uses a Wait state to run the cron jobs at a specified time. Use the RunTask action to run the cron job tasks on AWS Fargate.
Explanations:
AWS Lambda has a maximum execution time of 15 minutes, which does not support cron jobs that may require up to 20 minutes to complete. Additionally, the solution lacks a way to manage complex scheduling and job dependencies effectively.
AWS Batch is designed for batch processing jobs and is not inherently focused on recurring schedules like cron jobs. While it can handle job queuing and execution, it may require additional configuration and is less straightforward for event-driven scheduling compared to EventBridge Scheduler.
This option utilizes Amazon EventBridge Scheduler for managing recurring schedules, which is well-suited for cron-like jobs. Running the cron job tasks on AWS Fargate allows for easy scaling and management of containers without the need for managing infrastructure. It supports the required scheduling and can run jobs that exceed the 15-minute execution limit of Lambda.
Although AWS Step Functions can manage complex workflows, using a Wait state introduces unnecessary complexity for simple scheduling needs. This solution is over-engineered for the task of simply running cron jobs and may not handle the scheduling of numerous jobs efficiently. Moreover, it still requires invoking tasks on Fargate, which could be managed more straightforwardly with EventBridge Scheduler.