Fully managed service for creating, publishing, and managing REST, HTTP, and WebSocket APIs.
Fully managed message queuing service for decoupling components.
Create an Auto Scaling group behind an ALB that scales based on CPU utilization.
30 minutes
Step 1: Create a launch template
LT_ID=$(aws ec2 create-launch-template \
--launch-template-name saa-web-template \
--launch-template-data '{
"ImageId": "ami-0c02fb55956c7d316",
"InstanceType": "t2.micro",
"UserData": "'$(echo '#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello from $(hostname)</h1>" > /var/www/html/index.html' | base64 -w 0)'"
}' \
--query 'LaunchTemplate.LaunchTemplateId' --output text)
Step 2: Create a target group
TG_ARN=$(aws elbv2 create-target-group \
--name saa-web-targets \
--protocol HTTP --port 80 \
--vpc-id <your-vpc-id> \
--target-type instance \
--query 'TargetGroups[0].TargetGroupArn' --output text)
Step 3: Create an ALB
ALB_ARN=$(aws elbv2 create-load-balancer \
--name saa-web-alb \
--subnets <subnet-1> <subnet-2> \
--security-groups <sg-id> \
--query 'LoadBalancers[0].LoadBalancerArn' --output text)
aws elbv2 create-listener \
--load-balancer-arn $ALB_ARN \
--protocol HTTP --port 80 \
--default-actions Type=forward,TargetGroupArn=$TG_ARN
Step 4: Create an Auto Scaling group
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name saa-web-asg \
--launch-template LaunchTemplateId=$LT_ID,Version='$Latest' \
--min-size 2 --max-size 4 --desired-capacity 2 \
--target-group-arns $TG_ARN \
--availability-zones us-east-1a us-east-1b
Step 5: Create a scaling policy
aws autoscaling put-scaling-policy \
--auto-scaling-group-name saa-web-asg \
--policy-name cpu-target-tracking \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
},
"TargetValue": 50.0
}'
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name saa-web-asg --force-delete
aws elbv2 delete-load-balancer --load-balancer-arn $ALB_ARN
aws elbv2 delete-target-group --target-group-arn $TG_ARN
aws ec2 delete-launch-template --launch-template-id $LT_ID
| # | Question | Answer |
|---|---|---|
| 1 | What is the difference between SQS Standard and FIFO? | Standard: at-least-once, best-effort ordering, unlimited throughput. FIFO: exactly-once, strict ordering, 300 msg/s. |
| 2 | What is the max SQS message size? | 256 KB. Use Extended Client Library with S3 for larger payloads. |
| 3 | What is a Dead Letter Queue? | A queue that captures messages that fail processing after a configured number of attempts. |
| 4 | What is the difference between ALB and NLB? | ALB: Layer 7, HTTP/HTTPS, path/host routing. NLB: Layer 4, TCP/UDP, ultra-low latency, static IP. |
| 5 | What is the max Lambda execution time? | 15 minutes |
| 6 | What is the difference between ECS EC2 and ECS Fargate launch types? | EC2: you manage the instances. Fargate: serverless, AWS manages infrastructure. |
| 7 | How many read replicas can Aurora have? | Up to 15 |
| 8 | What is the SNS + SQS fan-out pattern? | SNS publishes one message to multiple SQS queues for parallel processing by different consumers. |
| 9 | What does API Gateway caching do? | Caches API responses to reduce backend calls and improve latency. |
| 10 | What is the difference between horizontal and vertical scaling? | Horizontal: add/remove instances. Vertical: increase/decrease instance size. |
A company has a web application that experiences unpredictable traffic spikes. They need the application to scale automatically and distribute traffic across multiple instances. Which combination of services should the solutions architect recommend?
Correct: B
EC2 Auto Scaling automatically adjusts the number of instances based on demand, and ALB distributes HTTP/HTTPS traffic across instances with advanced routing. This is the standard pattern for scalable web applications. Lambda is better for event-driven workloads. NLB is for TCP/UDP traffic, not HTTP routing.
Domain: 2 — Design Resilient Architectures Task: 2.1
A solutions architect needs to decouple a web tier from a processing tier. The processing tier takes 5-10 minutes per request and must process each request exactly once. Which service should be used?
Correct: C
SQS FIFO Queue provides exactly-once processing, which is required. Standard Queue provides at-least-once delivery (possible duplicates). SNS is pub/sub (no queuing). EventBridge is for event routing, not guaranteed exactly-once processing.
Domain: 2 — Design Resilient Architectures Task: 2.1
A company wants to distribute a single notification to multiple downstream systems for parallel processing. Which architecture pattern should be used?
Correct: B
The SNS + SQS fan-out pattern publishes a single message to an SNS topic, which delivers it to multiple SQS queues. Each queue processes the message independently. This is the standard fan-out pattern. Option A would have consumers competing for messages, not receiving all of them.
Domain: 2 — Design Resilient Architectures Task: 2.1
A company is migrating a monolithic application to microservices on AWS. They need a container orchestration service that does not require managing EC2 instances. Which solution should the architect recommend?
Correct: C
ECS with Fargate launch type is serverless — AWS manages the underlying infrastructure. You only define your containers and resource requirements. EC2 launch types require you to manage the instances. Running Docker directly on EC2 provides no orchestration.
Domain: 2 — Design Resilient Architectures Task: 2.1
A company has a read-heavy application using Amazon RDS MySQL. The primary database is experiencing high read latency. What should the solutions architect recommend to improve read performance?
Correct: B
Read replicas offload read traffic from the primary database, reducing read latency. Multi-AZ is for high availability (failover), not read performance. Increasing instance size (vertical scaling) has limits and is more expensive. RDS Proxy improves connection management but does not offload reads.
Domain: 2 — Design Resilient Architectures Task: 2.1