Which design should the solutions architect use?
Create an Amazon SNS topic to send the jobs that need to be processed. Create an Amazon Machine Image (AMI) that consists of the processor application. Create a launch configuration that uses the AMI. Create an Auto Scaling group using the launch configuration. Set the scaling policy for the Auto Scaling group to add and remove nodes based on CPU usage.
Create an Amazon SQS queue to hold the jobs that need to be processed. Create an Amazon Machine Image (AMI) that consists of the processor application. Create a launch configuration that uses the AMI. Create an Auto Scaling group using the launch configuration. Set the scaling policy for the Auto Scaling group to add and remove nodes based on network usage.
Create an Amazon SQS queue to hold the jobs that need to be processed. Create an Amazon Machine Image (AMI) that consists of the processor application. Create a launch template that uses the AMI. Create an Auto Scaling group using the launch template. Set the scaling policy for the Auto Scaling group to add and remove nodes based on the number of items in the SQS queue.
Create an Amazon SNS topic to send the jobs that need to be processed. Create an Amazon Machine Image (AMI) that consists of the processor application. Create a launch template that uses the AMI. Create an Auto Scaling group using the launch template. Set the scaling policy for the Auto Scaling group to add and remove nodes based on the number of messages published to the SNS topic.
Explanations:
Using Amazon SNS is not suitable for durable storage of jobs; SNS is a pub/sub service that does not ensure message durability or allow for message queuing, which is necessary for managing job processing. Additionally, scaling based on CPU usage may not directly correlate with job load, making it less efficient.
While Amazon SQS can hold jobs for processing, scaling based on network usage does not effectively correlate with the number of jobs needing to be processed. Also, the question specifies a need for durability and loose coupling, which is not optimally addressed with this option.
This option correctly utilizes Amazon SQS for durable job storage and specifies scaling based on the number of items in the queue, which allows for responsive adjustments to application node capacity based on actual job demand, ensuring loose coupling and statelessness.
Amazon SNS does not provide durable storage for job items, making it unsuitable for the application’s needs. Scaling based on the number of messages published to an SNS topic does not effectively account for the number of jobs requiring processing, resulting in potential inefficiencies.