AWS Solutions Architect Design Resilient Architectures: 272 practice questions
12 of the 272 Design Resilient Architectures questions in the Certsqill AWS Solutions Architect bank, shown in full below. Each one carries an explanation for every option, not just the correct one — the wrong answers are where the marks go.
Preparing for AWS Solutions Architect? Take the free 5-min readiness check →
1. Amazon SNS: Which AWS service best supports this pattern?
- AWS Step FunctionsAWS Step Functions orchestrates multi-step workflows. It is not a messaging or notification service and does not fan out messages to independent subscribers.
- Amazon SQSAmazon SQS is a message queue where each message is consumed by one consumer. It does not natively fan out a single message to multiple independent consumers.
- Amazon SNS ✓Amazon SNS is a pub/sub service that fans out a single message to multiple subscribers simultaneously. Every subscriber receives every message published to the topic.
- Amazon Kinesis Data StreamsAmazon Kinesis is designed for high-throughput streaming data, not for simple notification fan-out to a fixed set of downstream services.
Amazon SNS implements the pub/sub pattern, delivering each published message to all subscribed endpoints simultaneously — ideal for fan-out notification scenarios.
2. Configure an Amazon SQS queue as the destination: Which design meets these requirements with the least operati
- Configure Amazon SNS to deliver the S3 event notifications directly to the processing service endpoint over HTTPSIncorrect. Amazon SNS delivers in real time and retries HTTP endpoints for a limited window (typically minutes). If the processing service is down longer than that window, messages are lost.
- Use Amazon Kinesis Data Streams to ingest the S3 upload events and have the processing service read themIncorrect. Amazon Kinesis Data Streams is built for high-throughput, ordered streaming analytics and adds unnecessary complexity compared to SQS for a simple retry-and-decoupling use case.
- Use Amazon EventBridge to capture the S3 events and invoke an AWS Lambda function that calls the serviceIncorrect. EventBridge with Lambda is bounded by the 15-minute Lambda timeout and has limited retry durability. For processing that may be unavailable for a while, SQS provides better durability and decoupling.
- Configure an Amazon SQS queue as the destination for the S3 event notifications and have the service poll it ✓Correct. Amazon SQS retains messages for up to 14 days and supports visibility timeouts and dead-letter queues, providing durable, automatic retry without any additional infrastructure to manage.
Amazon SQS provides durable message retention (up to 14 days), visibility timeout-based retry, and dead-letter queues — the standard pattern for decoupling producers and consumers with automatic retry.
3. AWS Lambda triggered by S3 event notifications: Which compute option is most appropriate?
- AWS Lambda triggered by S3 event notifications ✓AWS Lambda is serverless, event-driven, and supports execution durations up to 15 minutes. It triggers directly from S3 events and requires no server management.
- AWS Batch for processing image resize jobsAWS Batch is designed for large-scale batch computing jobs (HPC, data processing). It is over-engineered for simple sub-30-second image resize operations triggered by individual S3 uploads.
- Amazon ECS with Fargate running a container that polls S3ECS/Fargate is suited for long-running containerized workloads. For short, event-triggered tasks triggered by S3, Lambda is simpler and more cost-effective.
- Amazon EC2 instances in an Auto Scaling group polling S3EC2 instances require server management (patching, scaling configuration) and are more costly for short, infrequent tasks compared to Lambda's pay-per-invocation model.
AWS Lambda is purpose-built for short-lived, event-driven, serverless compute — triggered directly by S3 events with no server management required.
4. Amazon EventBridge with event rules that match: Which service provides content-based routing to multiple desti
- Amazon SQS in a fan-out pattern where a consumer application reads each order and re-routes it by statusAmazon SQS does not natively route messages based on content. Implementing content-based routing with SQS requires custom consumer logic to read and re-route messages.
- Amazon EventBridge with event rules that match on the order status field and route each to a different target ✓Amazon EventBridge supports content-based routing via event rules that match specific fields in the event payload and route to different targets (SQS, SNS, Lambda, etc.) based on those matches.
- Amazon SNS with message filtering policies on each subscription that match published message attribute key-value pairsAmazon SNS message filtering can route to different subscriptions based on attributes, but it requires publishing with explicit message attributes and is less flexible than EventBridge for complex content matching across multiple target types.
- AWS Step Functions with a Choice state that branches on the order status to reach each separate destinationAWS Step Functions can branch on order status but requires a workflow definition for each order and cannot natively fan out to multiple external targets (SQS, email) without additional Lambda steps.
Amazon EventBridge rules match event content (specific field values) and route to multiple different target types — the native AWS solution for content-based routing without custom consumer code.
5. Amazon EKS with AWS Fargate as the compute provider: Which solution meets these requirements?
- AWS Lambda with container image supportLambda container images are for serverless, short-lived functions. Lambda does not support Kubernetes orchestration and imposes strict timeout (15 min) and resource limits.
- Amazon ECS with AWS Fargate as the compute providerAmazon ECS uses AWS-proprietary task definitions and service concepts, not Kubernetes. This would require the team to retrain on ECS constructs, contradicting the requirement to minimize retraining.
- Amazon EKS with AWS Fargate as the compute provider ✓Amazon EKS is a managed Kubernetes service that preserves the team's existing Kubernetes skills (kubectl, Helm, manifests). Using Fargate as the compute provider eliminates EC2 instance management.
- Amazon ECS with EC2 launch type using Auto Scaling groupsECS with EC2 launch type requires managing EC2 instances. Additionally, ECS is not Kubernetes — the team would need to learn new ECS-specific tooling.
Amazon EKS is managed Kubernetes — it preserves the team's existing expertise. Fargate as the compute layer removes EC2 instance management, satisfying both requirements.
6. Publish events to an SNS topic subscribed to separate SQS: Which architecture best meets these requirements?
- Deliver events through Amazon Data Firehose and let both applications replay them independently.Firehose is designed for buffered delivery to supported destinations, not as an application-managed replay log for independent consumers.
- Send events to one standard SQS queue, with billing and analytics using competing consumers.Competing consumers divide messages, so each event is processed by only one application rather than both.
- Publish events to an SNS topic subscribed to separate SQS queues for billing and analytics. ✓SNS delivers each event to both subscribed queues, allowing independent consumers to retry and process their copies.
- Publish events directly to separate SNS topics, with each application polling its topic.SNS topics are push-based notification endpoints and are not polled like SQS queues; durable independent buffering is missing.
SNS fanout to separate SQS queues gives each application its own durable processing path and retry pace.
7. Place jobs in an Amazon SQS Standard queue and run ECS: Which design best meets these requirements?
- Publish jobs to one SQS queue and have separate processing services consume the queue so every service receives each job.Competing consumers divide messages; one shared queue does not broadcast every message to each service. Separate queues behind SNS fanout would be required for copies.
- Place jobs in an Amazon SQS Standard queue and run ECS services on Fargate as competing consumers, deleting messages after successful processing. ✓This decouples producers from workers, supports burst buffering and independent consumer scaling, and avoids EC2 host administration.
- Run the workers on an EC2 Auto Scaling group using target tracking based on total queue throughput.EC2 Auto Scaling can adjust capacity, but this retains host and container-management responsibilities the requirement seeks to eliminate.
- Use Amazon Data Firehose to buffer jobs and deliver them directly to the processing containers with minimal latency.Firehose is designed for buffered delivery to supported destinations, not for independently managed application consumers processing queued jobs.
SQS provides asynchronous buffering, while Fargate supplies managed container capacity for independently scalable workers.
8. Configure EC2 Auto Scaling target tracking: Which design best meets these requirements?
- Configure target tracking on total request count, with the desired value equal to peak daily traffic and the same capacity bounds.A total metric can rise as instances are added, so it does not reliably represent workload per instance for target tracking.
- Keep a fixed instance count at the expected daily average and store sessions externally for failover.External session state supports replaceable instances, but a fixed count does not automatically respond to changing request volume.
- Use ElastiCache as the web tier and scale its nodes from the total request count, leaving the EC2 group fixed.ElastiCache can reduce repeated data-access latency, but it is not a replacement for scaling the stateless compute tier.
- Configure EC2 Auto Scaling target tracking on a per-instance request or utilization metric, with defined minimum and maximum capacity. ✓Target tracking adjusts the group toward a desired per-instance workload, while minimum and maximum settings bound scaling.
Use EC2 Auto Scaling target tracking with a per-instance workload metric and explicit capacity bounds.
9. Use ElastiCache as a cache-aside layer: Which design best meets these requirements?
- Use an ElastiCache cluster as the sole catalog store and remove the database read path after population.An in-memory cache is not, by itself, a suitable durable authoritative record. Cache loss would jeopardize catalog availability or data.
- Use ElastiCache as a cache-aside layer, apply a 60-second TTL, and read the database on misses. ✓This provides low-latency reads while retaining the database as the durable source. TTL limits staleness, and miss handling allows recovery after cache loss.
- Cache catalog responses without expiration and rely on database updates to refresh them automatically.Caching does not automatically invalidate or refresh entries when the database changes. Without TTL or explicit invalidation, stale values can persist indefinitely.
- Use a database read replica for every catalog request and refresh replica data every 60 seconds.A read replica can distribute database reads, but it does not provide the requested in-memory low-latency cache layer or a cache-loss fallback pattern.
A cache-aside ElastiCache layer with a 60-second TTL balances latency, bounded staleness, and database durability.
10. Send events to an Amazon Kinesis Data Stream using: Which solution meets these requirements?
- Send events to Amazon Data Firehose and configure buffering plus transformations before delivery to the destination.Firehose provides managed delivery and optional transformation, but it is not an application-managed replay log for independent consumers.
- Send events to one Amazon SQS Standard queue and have both applications poll that queue with competing consumers.Competing consumers divide messages, so each application would not receive every event; SQS Standard also provides only best-effort ordering.
- Send events to an Amazon Kinesis Data Stream using the device identifier as the partition key; let both applications consume the stream independently. ✓Kinesis Data Streams supports multiple consumers, retention and replay. A device-based partition key preserves ordering within each device’s partition-key scope.
- Publish events to an Amazon SNS topic with one shared SQS subscription consumed by both applications.A shared subscription queue still distributes messages among competing consumers instead of providing each application its own complete stream.
Kinesis Data Streams provides independent consumers, retention and replay, while partition keys provide ordering within each device’s scope.
11. Allow the SNS topic to send messages to each subscribed: What should the architect configure?
- Allow the SNS topic to send messages to each subscribed SQS queue in the queues’ resource policies. ✓SNS requires permission to deliver messages to each subscribed queue. Adding the appropriate queue-policy permissions enables fanout delivery.
- Configure an SQS consumer to republish each received message to the other queue.Republishing after consumption adds unnecessary coupling and still does not fix the missing permission that prevents SNS delivery.
- Increase each queue’s visibility timeout so SNS can retain messages until consumers become available.Visibility timeout only temporarily hides messages after receipt; it does not authorize SNS to deliver messages or retain undelivered events.
- Replace the two queues with one shared queue so both consumers can receive every published event.Competing consumers on one queue divide messages rather than each receiving a copy, so this would not provide broadcast behavior.
The missing prerequisite is an SQS resource policy permitting the SNS topic to deliver messages to each queue.
12. Add an SQS queue resource policy allowing the SNS topic: Which change should the solutions architect make?
- Configure both applications to consume from the working queue so every consumer receives each published event.Consumers competing on one queue divide messages; they do not each receive a copy.
- Increase the affected queue's visibility timeout so SNS can deliver messages hidden during processing.Visibility timeout affects already-received messages and does not authorize SNS to deliver new messages.
- Add an SQS queue resource policy allowing the SNS topic to send messages to the affected queue. ✓The queue policy is the missing authorization required for SNS-to-SQS delivery.
- Replace the SNS topic with Kinesis Data Streams and have both applications read the same stream.A stream can support multiple consumers, but replacing the existing fanout design does not fix the missing queue-delivery permission.
Permit the SNS topic to send messages to the affected SQS queue through the queue's resource policy.
260 more Design Resilient Architectures questions
The remaining 260 questions in this domain are part of the full AWS Solutions Architect bank — 1061 questions, every option explained. Start with the free five-minute check and see your score per domain.
Test your AWS Solutions Architect readiness — freeOther AWS Solutions Architect domains
- Design Secure Architectures — 325 questions →
- Design High-Performing Architectures — 256 questions →
- Design Cost-Optimized Architectures — 208 questions →
- All 1061 AWS Solutions Architect questions →