Which solution meets these requirements?
Use Amazon ECS containers for the web application and Spot instances for the Scaling group that processes the SQS queue. Replace the custom software with Amazon Rekognition to categorize the videos.
Store the uploaded videos in Amazon EFS and mount the file system to the EC2 instances for the web application. Process the SQS queue with an AWS Lambda function that calls the Amazon Rekognition API to categorize the videos.
Host the web application in Amazon S3. Store the uploaded videos in Amazon S3. Use S3 event notification to publish events to the SQS queue. Process the SQS queue with an AWS Lambda function that call the Amazon Rekognition API to categorize the videos.
Use AWS Elastic Beanstalk to launch EC2 instances in an Auto Scaling group for the application and launch a worker environment to process the SQS queue. Replace the custom software with Amazon Rekognition to categorize the videos.
Explanations:
While using Amazon ECS and Spot instances reduces operational overhead, it does not address the storage of videos effectively, as EBS is not suitable for direct use with ECS containers. Also, this option does not fully leverage the simplicity of serverless architecture that AWS offers, such as using S3 and Lambda for event-driven processing.
Storing uploaded videos in Amazon EFS adds unnecessary complexity and cost, as EFS is not needed when using S3 for storage. Additionally, while using Lambda for processing is a good approach, this option still relies on EC2 instances, which contradicts the goal of reducing operational overhead.
Hosting the web application in Amazon S3 allows for a fully managed and serverless approach, significantly reducing operational overhead. Storing uploaded videos in S3 and using S3 event notifications to trigger the SQS queue enables seamless event-driven processing. Processing the SQS queue with a Lambda function that calls the Amazon Rekognition API further eliminates dependencies on third-party software.
While AWS Elastic Beanstalk simplifies deployment, it still requires managing EC2 instances, which goes against the requirement to reduce operational overhead. Additionally, this option does not use S3 for video storage and lacks the benefits of a serverless architecture that could be achieved by using S3 and Lambda together.