Question #571
A solutions architect needs to migrate an on-premises video rendering application to AWS. Users upload video files through a web interface, which are stored on a shared file system. The rendering process, which can take up to 2 hours per file, is triggered via a message queue. The workload fluctuates significantly, with high demand during business hours and low demand otherwise. What is the MOST cost-effective migration strategy?
Use Amazon SQS for the queue. Configure the web server to publish messages to SQS. Invoke an AWS Lambda function to process each message, render the video, and store the output in an Amazon S3 bucket.
Use Amazon MQ for the queue. Configure the web server to publish messages to the queue. Launch Amazon EC2 instances on demand to process messages, store rendered files in Amazon EFS, and terminate instances when idle.
Use Amazon SQS for the queue. Configure the web server to publish messages to SQS. Use an EC2 Auto Scaling group to process messages, scaling instances based on the SQS queue length. Store rendered files in an Amazon S3 bucket.
Use Amazon MQ for the queue. Configure the web server to publish messages to the queue. Invoke an AWS Lambda function to process each message, render the video, and store the output in Amazon EFS.
Explanation
Option C is correct because:
1. EC2 Auto Scaling: Allows scaling compute resources based on SQS queue length, ensuring sufficient instances during peak hours and minimizing costs during low demand.
2. SQS: Cost-effective managed queue service without needing to manage infrastructure.
3. S3: Cheaper storage compared to EFS for rendered files.
Other options fail because:
- A & D: Lambda has a 15-minute timeout, making it unsuitable for 2-hour rendering tasks.
- B: Amazon MQ is more expensive than SQS unless specific protocols (e.g., MQTT) are required. EFS is costlier than S3 for object storage.
- B & D: On-demand EC2 launches (B) may introduce delays, while Auto Scaling (C) optimizes resource usage.
Key Points:
- Use SQS + Auto Scaling for variable workloads.
- Avoid Lambda for long-running tasks (>15 mins).
- Prefer S3 over EFS for cost-effective object storage.
Answer
The correct answer is: C