AWS Certified DevOps Engineer – ProfessionalSDLC AutomationMedium
A media company is using AWS Elemental MediaConvert to process video files uploaded to an S3 bucket. They want to automate the entire workflow: detect new video uploads, trigger MediaConvert jobs, and store the output in another S3 bucket, all integrated into a CI/CD-like flow for infrastructure and job definition updates. Which architecture pattern should the company implement?
- AUsing AWS Batch jobs to periodically scan S3 and trigger MediaConvert.
- BPolling the S3 bucket for new files using an EC2 instance.
- CManually triggering MediaConvert jobs through the AWS Management Console.
- DImplementing an event-driven architecture with S3 events, Lambda, and MediaConvert.
Show answer & explanationAnswer & explanation
Correct answer: D. Implementing an event-driven architecture with S3 events, Lambda, and MediaConvert.
An event-driven architecture with S3 event notifications, AWS Lambda, and AWS MediaConvert is the most efficient and scalable solution. S3 events can directly trigger a Lambda function upon new object creation, which then invokes MediaConvert, automating the workflow without polling or manual intervention.
Why the other options are wrong
- A. AWS Batch is for batch processing and would involve polling, which is less efficient than event-driven triggers for real-time reactions.
- B. Polling is inefficient, incurs unnecessary costs, and introduces latency.
- C. Manual triggering is not automated and does not fit into a CI/CD-like flow for infrastructure updates.
Event-Driven Architecture (S3 to Lambda)
An architecture pattern where components react to events, rather than polling for changes. In AWS, this often involves services like S3 event notifications, Lambda, and other services to create automated workflows.
- Decouples components, improving scalability and resilience.
- Reacts in real-time to changes, eliminating polling.
- Commonly uses S3 event notifications, SNS, SQS, EventBridge, and Lambda.
- Reduces operational overhead and costs by only running code when events occur.
Memory trick: Event-Driven: The moment it happens, Lambda reacts.