You are designing for a customer, not a sysadmin. Always ask: cost, resilience, performance, security - pick the right tradeoff for the scenario.
Operational excellence ยท Security ยท Reliability ยท Performance efficiency ยท Cost optimization ยท Sustainability
Scan for: "highly available", "cost-effective", "least privilege", "serverless", "decoupled", "durable", "global". Each keyword eliminates wrong answers.
Two answers are almost always obviously wrong. Cross them out, then debate the remaining two on the scenario's key constraint.
AWS wants you to use managed services. If you can replace EC2 + custom code with Lambda + SQS + RDS - do it.
Tight coupling = fragile. SQS, SNS, EventBridge, and Step Functions exist to break direct dependencies between services.
Every security question defaults to: use IAM roles (not users), tightest possible policy, and never store credentials in code.
Spot = fault-tolerant batch. Reserved = steady-state. Savings Plans = flexible. On-demand = short/unpredictable. Keep traffic in-region.
Key pick: transactional/relational โ RDS/Aurora ยท Key-value/massive scale โ DynamoDB ยท Caching โ ElastiCache (Redis) ยท Analytics โ Redshift ยท Migrate MongoDB โ DocumentDB