A media company is migrating its video processing pipeline to the AWS Cloud. The pipeline ingests raw video files, extracts metadata, transcodes the videos into multiple formats, and generates thumbnails. In the legacy on-premises system, all these tasks run sequentially on a single large server. If one task fails, the entire pipeline halts.
On AWS, the company wants to ensure that a failure in the thumbnail generation step does not interrupt video transcoding. Additionally, they want the compute capacity to automatically scale up during peak upload hours and scale down to zero when no videos are uploaded.
Which architectural approach on AWS directly addresses these requirements by applying the correct cloud design principles?
- ACombine all processing steps into a single Amazon Elastic Compute Cloud (Amazon EC2) instance to ensure tight coupling, and use Auto Scaling to achieve scalability.
- Decouple the processing steps using Amazon Simple Queue Service (Amazon SQS) to achieve loose coupling, and use AWS Lambda functions to achieve elasticity.Answer
- CDecouple the processing steps using Amazon Simple Queue Service (Amazon SQS) to achieve loose coupling, and pre-provision a large fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances to handle the maximum expected load.
- DRun the monolithic application on AWS Elastic Beanstalk to maintain a tightly coupled architecture, and rely on vertical scaling to upgrade instance sizes during peak times.
Answer
Decouple the processing steps using Amazon Simple Queue Service (Amazon SQS) to achieve loose coupling, and use AWS Lambda functions to achieve elasticity.
The correct choice proposes decoupling the steps using Amazon SQS queues and using AWS Lambda functions. This directly implements loose coupling, preventing a failure in one component from stopping the rest of the pipeline. It also implements elasticity by scaling compute resources automatically to match load and scaling down to zero when idle.
Step-by-Step Solution
Key Concept
Loose coupling and elasticity are key design principles of the AWS Cloud that enable fault isolation and dynamic resource scaling.