A company requires a resilient architecture that handles asynchronous processing of video transcoding jobs. Their solution should be able to process jobs when the workload spikes without provisioning excess compute capacity. The video transcoding application receives job requests that vary in size and complexity and may take a long time to process. Which of the following solutions is the BEST approach to meet these requirements?
Store video jobs directly in Amazon S3 and run a cron job on an EC2 instance for periodic processing.
Deploy a single Amazon EC2 instance with an attached Amazon Elastic Block Store (EBS) for job queues and processing.
Implement an Amazon SQS queue to buffer job requests and an Auto Scaling group of EC2 instances to process the jobs.
Use AWS Lambda with an Amazon S3 trigger for direct processing as jobs are uploaded to the bucket.