Which solution will meet these requirements?
Create a container for the job. Schedule the job to run as an AWS Fargate task on an Amazon Elastic Container Service (Amazon ECS) cluster by using Amazon EventBridge Scheduler.
Configure the job to run in an AWS Lambda function. Create a scheduled rule in Amazon EventBridge to invoke the Lambda function.
Configure an Auto Scaling group of Amazon EC2 Spot Instances that run Amazon Linux. Configure a crontab entry on the instances to run the analysis.
Configure an AWS DataSync task to run the job. Configure a cron expression to run the task on a schedule.
Explanations:
Running the job as an AWS Fargate task on an Amazon ECS cluster allows for stateful, long-running jobs that cannot be interrupted. Fargate handles the container management, and the EventBridge Scheduler can trigger the task at the specified time, ensuring the job runs every week for at least one hour without interruptions.
AWS Lambda is not suitable for this requirement as it has a maximum execution time of 15 minutes. The job requires at least 1 hour to complete, and since it is stateful and cannot tolerate interruptions, using Lambda would lead to job failures.
While an Auto Scaling group of EC2 Spot Instances can run jobs, using Spot Instances introduces the risk of interruptions, as they can be terminated by AWS when demand for capacity increases. This does not meet the requirement of a stateful job that cannot tolerate interruptions.
AWS DataSync is primarily designed for transferring data between on-premises storage and AWS storage services. It is not intended for running stateful jobs or analyses. Additionally, it does not guarantee that the job will run for the required duration without interruptions.