Which strategies should the Solutions Architect use to meet these requirements?
Create an AWS SWF worker that will update user metadata updating web application to start a new workflow for every job.
Create an AWS Lambda function that will update user metadata. Create an Amazon SOS queue and configure it as an event source for the Lambda function. Update the web application to send jobs to the queue.
Create an AWS Lambda function that will update user metadata. Create AWS Step Functions that will trigger the Lambda function. Update the web application to initiate Step Functions for every job.
Create an Amazon SQS queue. Create an AMI with a worker to check the queue and update user metadata. Configure an Amazon EC2 Auto Scaling group with the new AMI. Update the web application to send jobs to the queue.
Explanations:
AWS SWF (Simple Workflow Service) is not optimized for rapid scaling of high-frequency tasks like updating user metadata. It can be complex to manage and may introduce latency, making it unsuitable for scenarios requiring quick scaling from hundreds to tens of thousands of jobs.
This option effectively leverages AWS Lambda’s automatic scaling and event-driven architecture. By using Amazon SQS as a queue to decouple the web application from the Lambda function, the system can efficiently handle a large volume of asynchronous tasks while keeping costs low since you only pay for the compute time used by Lambda.
While AWS Step Functions can orchestrate complex workflows, they introduce additional overhead and latency compared to using SQS with Lambda for simple jobs like updating user metadata. Step Functions may not scale as rapidly as required for the specified workload.
Although this option uses SQS to queue jobs and EC2 Auto Scaling for handling loads, it is less cost-efficient compared to using Lambda, which operates on a pay-per-use model. Managing EC2 instances also adds operational overhead, and the scaling of EC2 may not respond quickly enough to burst workloads compared to the serverless model of Lambda.