
Answer-first summary for fast verification
Answer: 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.
## Explanation **Correct Answer: C** **Why Option C is correct:** 1. **Amazon SQS for durable job storage**: The requirement states that job items must be durably stored. SQS provides a reliable, durable message queue that persists messages until they are processed and deleted. 2. **Loosely coupled architecture**: SQS enables decoupling between job producers and consumers, allowing the processor application to scale independently. 3. **Auto Scaling based on queue metrics**: The solution scales based on the number of items in the SQS queue, which directly aligns with the requirement to scale based on the number of jobs to be processed. 4. **Launch templates**: Launch templates are the modern replacement for launch configurations and provide more flexibility. 5. **Stateless processor**: The stateless nature of the application makes it ideal for horizontal scaling with Auto Scaling groups. **Why other options are incorrect:** - **Option A**: Uses SNS (pub/sub) which doesn't provide durable storage of messages. Messages are not persisted if no subscribers are available. Also scales based on CPU usage rather than job queue length. - **Option B**: Uses SQS correctly but scales based on network usage instead of queue length, which doesn't directly address the job processing requirement. - **Option D**: Uses SNS which doesn't provide durable storage, and scales based on messages published rather than messages needing processing. **Key AWS Services:** - **Amazon SQS**: Simple Queue Service for reliable message queuing - **Auto Scaling Groups**: For automatic scaling of EC2 instances - **Launch Templates**: Modern way to define EC2 instance configurations - **CloudWatch Metrics**: For monitoring SQS queue depth to trigger scaling This architecture provides a resilient, scalable solution for processing jobs in parallel with automatic scaling based on workload demand.
Author: LeetQuiz Editorial Team
Ultimate access to all questions.
No comments yet.
A solutions architect is designing the cloud architecture for a new application being deployed on AWS. The process should run in parallel while adding and removing application nodes as needed based on the number of jobs to be processed. The processor application is stateless. The solutions architect must ensure that the application is loosely coupled and the job items are durably stored.
Which design should the solutions architect use?
A
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.
B
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.
C
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.
D
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.