AWS SAA-C03 Cheat Sheet: Architecture Decisions and Exam Traps

AWS SAA-C03 cheat sheet for secure, resilient, high-performing, and cost-optimized architecture decisions, service mappings, trade-offs, traps, and final review.

On this page

Keep this cheat sheet open while drilling questions. SAA-C03 is about trade-offs: availability, performance, cost, operations, and security.

Use the study plan to sequence the guide, then use this page for compressed recall once the chapter lessons are familiar.

If you want a quick architecture cue map, use the constraint flow and pattern sections below before mixed scenario drills.


Quick facts (SAA-C03)

I verified these current AWS exam facts on May 24, 2026.

Item Value
Exam AWS Certified Solutions Architect - Associate
Exam code SAA-C03
Questions 65 total
Scoring 50 scored + 15 unscored (unscored items are not identified)
Question types Multiple choice and multiple response
Time 130 minutes
Passing score 720, scaled 100-1000
Cost 150 USD
Intended candidate At least 1 year of hands-on experience designing AWS cloud solutions

Domain weights and review priority

Domain Weight What to compress for final review
Design Secure Architectures 30% IAM, resource policies, KMS, private access, network controls, logging, compliance boundaries
Design Resilient Architectures 26% Multi-AZ, failover, backup/restore, decoupling, health checks, RTO/RPO fit
Design High-Performing Architectures 24% scaling, caching, storage/database fit, edge services, load balancing, service quotas
Design Cost-Optimized Architectures 20% managed service fit, right sizing, storage classes, endpoints vs NAT, purchase options, data transfer

SAA-C03 is a design-tradeoff exam. The best answer is rarely the most powerful service; it is the lowest-complexity architecture that satisfies the named security, resilience, performance, cost, and operational constraints.

Architecture proof stack

SAA-C03 questions usually compare architectures that are all technically possible. The winning answer is the one that proves the named constraint with the least unnecessary complexity. Before choosing, walk the scenario through this stack:

  1. Constraint: identify whether the deciding word is secure, highly available, fault tolerant, low latency, scalable, least operational effort, lowest cost, or private.
  2. Failure domain: decide whether the design must survive instance, AZ, Region, dependency, deployment, or access-control failure.
  3. Access path: prove who or what talks to the service, over which network path, with which identity/resource/KMS controls.
  4. Data behavior: match storage, database, cache, replication, backup, lifecycle, consistency, and recovery choices to the access pattern.
  5. Operational effort: prefer managed or serverless services when they satisfy the requirement; keep self-managed designs only when the stem requires control.
  6. Cost driver: optimize the largest waste source first: idle compute, NAT/data transfer, wrong storage tier, overprovisioned database, or inefficient scans.
  7. Evidence: keep answers that can be verified with health checks, logs, metrics, failover behavior, backup/restore proof, or cost visibility.

If two answers both work, choose the one that satisfies the constraint with fewer moving parts, narrower permissions, simpler operations, and clearer failure behavior.

Official task compression

Design Secure Architectures covers secure access, secure workloads, and data protection controls. Separate identity, resource, network, and KMS key-policy controls before choosing a service.

Design Resilient Architectures covers loose coupling, scalability, high availability, fault tolerance, and disaster recovery. Remove single points of failure, decouple components, and match RTO/RPO to the least complex recovery pattern.

Design High-Performing Architectures covers scalable storage, elastic compute, databases, networking, ingestion, and latency/throughput choices. Pick purpose-built services from access pattern, data shape, latency, throughput, and scaling metric.

Design Cost-Optimized Architectures covers storage, compute, database, and network cost design. Optimize the largest cost driver first: idle capacity, wrong storage tier, NAT/data transfer, overprovisioned databases, inefficient scans, or logging volume.

SAA-C03 boundary cues

AWS frames SAA-C03 as an associate solutions-architecture exam. Use that boundary to reject distracting answers:

  • If the answer solves the problem with a large custom platform when a managed service fits, it is usually too operationally heavy.
  • If the answer says highest availability but only adds backups or snapshots, it probably misses live failover or Multi-AZ/Multi-Region behavior.
  • If the answer says private access but routes through public internet/NAT when a VPC endpoint or PrivateLink pattern fits, it is usually weaker.
  • If the answer says lowest cost but ignores NAT processing, data transfer, storage class, overprovisioning, or query-scan cost, it is incomplete.
  • If the answer says secure but only changes IAM and ignores resource policies, KMS key policies, network path, or logging, it is too narrow.

How SAA-C03 questions work (fast strategy)

  • Read the last sentence first: it usually contains the deciding constraint (lowest cost, least ops, highest availability, most secure).
  • If multiple answers “work”, the best answer is typically the one with managed services + least operational overhead.
  • If the question mentions private subnets, assume no direct internet access unless NAT/endpoints are included.
  • If you see AccessDenied, separate concerns: identity policy vs resource policy vs KMS key policy.
  • AWS notes that the exam may use short service names with a Help-button reference list. Map short names back to the architecture role before choosing.

Question-type traps

Question type Exam-day habit
Multiple choice Find the deciding constraint before comparing services. Security, availability, performance, cost, and operational effort often point to different answers.
Multiple response Include every required design control. If the stem asks for private, highly available access, one selected option may solve routing while another solves redundancy or access policy.

Unanswered questions are incorrect and there is no penalty for guessing. With 65 questions in 130 minutes, your average budget is exactly 2 minutes per question; mark long architecture stems once you have narrowed the choice.

Constraint-first elimination flow

    flowchart TD
	  Q["Read the last sentence first"] --> C["Find the deciding constraint"]
	  C --> A["Availability / resilience?"]
	  C --> P["Performance / scale?"]
	  C --> S["Security / private access?"]
	  C --> K["Cost / least ops?"]
	  A --> E["Eliminate answers that miss that constraint"]
	  P --> E
	  S --> E
	  K --> E
	  E --> W["Choose the lowest-complexity answer that still works"]

Rule: if the answer is more elaborate but does not better satisfy the named constraint, reject it.

What to notice:

  • many SAA-C03 mistakes happen before service selection because the real constraint was missed
  • the best answer is often the managed service or simpler architecture that still satisfies that constraint

Scenario eliminations

Stem clue Eliminate first Keep in play
private subnet needs S3 or DynamoDB NAT gateway by default gateway VPC endpoint with route table association
private access to another account’s service VPC peering for broad connectivity PrivateLink with endpoint service and interface endpoint
relational database needs HA in one Region read replica as HA answer RDS or Aurora Multi-AZ deployment
relational read pressure bigger primary instance only read replicas, caching, query/index tuning where appropriate
unpredictable decoupled workload synchronous direct calls everywhere SQS, SNS, EventBridge, Lambda, or Step Functions based on pattern
static website plus global delivery EC2 web servers first S3 static hosting with CloudFront where requirements fit
latency-sensitive global users single regional ALB only CloudFront for HTTP content or Global Accelerator for static-IP TCP/UDP acceleration
strict least operational effort self-managed cluster managed service that satisfies the constraint
cross-account encrypted access fails IAM policy only resource policy plus KMS key policy/grants and principal trust
cost issue with private S3 access more NAT gateways first gateway endpoint, storage class fit, data-transfer path review

Architecture evidence map

Requirement evidence in the stem Architecture answer should include Weak answer to reject
“private”, “no internet path”, “AWS service access” VPC endpoints, private subnets, route tables, endpoint/resource policy NAT or public endpoint when private service access is available
“highly available in one Region” Multi-AZ app and data tiers, health checks, managed failover Single-AZ instance, snapshot-only recovery, or read replica as HA
“regional outage”, “strict RTO/RPO” Multi-Region DR pattern, replication, DNS/traffic failover, runbooks Backup-only design when recovery target is minutes
“spiky asynchronous work” Queue/event bus, workers, auto scaling, idempotent processing Direct synchronous calls between every component
“global users”, “HTTP content” CloudFront, origin design, caching, optional origin failover One regional ALB without edge acceleration
“static IPs”, “TCP/UDP”, “fast regional failover” Global Accelerator CloudFront when the protocol is not HTTP(S) content delivery
“least operational overhead” Managed service, serverless, or purpose-built AWS service Self-managed EC2 cluster unless control is explicitly required
“lowest cost” Correct endpoint/storage/compute/database pattern, then purchase options Reserved/Savings/Spot answer before fixing the architecture waste

SAA-C03 answer sequence

Use this when the stem is a design trade-off problem rather than a pure service lookup.

    flowchart TD
	  S["Scenario"] --> C["Find the deciding constraint"]
	  C --> A["Availability, performance, security, or cost?"]
	  A --> P["Pick the smallest managed architecture that works"]
	  P --> O["Check operational effort and failure domains"]
	  O --> E["Reject answers that miss the named constraint"]

Final 20-minute recall (exam day)

Cue -> best answer (pattern map)

If the question says… Usually best answer
Private subnet needs S3/DynamoDB access Gateway VPC endpoint
Many VPCs with transitive routing Transit Gateway
Cross-account private service exposure PrivateLink
Managed relational HA database RDS/Aurora Multi-AZ
Read scaling for relational DB Read replicas
Highly available shared Linux file storage EFS
Cache hot reads / reduce DB load ElastiCache
Global static + dynamic acceleration CloudFront (HTTP) or Global Accelerator (TCP/UDP/static IP)
Event decoupling and buffering SQS/SNS/EventBridge based on pattern
Strict RTO/RPO across Regions Warm standby or active-active pattern

Constraint collision chooser

If the stem combines… Prefer this reasoning
lowest cost + private S3 access Gateway endpoint beats NAT because it satisfies privacy and removes NAT processing cost.
least ops + relational HA Managed RDS/Aurora Multi-AZ beats self-managed database replication.
global performance + HTTP cacheable content CloudFront beats duplicating full stacks in many Regions unless write locality or active-active is required.
global performance + non-HTTP static IP requirement Global Accelerator beats DNS-only routing because it provides anycast static IPs and fast failover.
read scaling + relational workload Read replicas or Aurora replicas help reads; Multi-AZ alone is not the read-scaling answer.
write-heavy key-value workload + massive scale DynamoDB with a good partition key beats forcing relational scale-out.
compliance + encryption Encryption choice is incomplete without IAM, KMS key policy, rotation/certificate needs, and audit evidence.
resilience + cost pressure Pick the cheapest DR pattern that meets RTO/RPO; do not jump to active-active by default.

Must-memorize SAA defaults

Topic Fast recall
Security groups vs NACLs SG stateful, NACL stateless
NAT design One NAT gateway per AZ for HA and to avoid cross-AZ dependency
S3 durability vs availability Very high durability; availability depends on class and design
Multi-AZ vs Multi-Region Multi-AZ for AZ failure; Multi-Region for regional resilience
IAM evaluation Explicit deny overrides any allow

Last-minute traps

  • Choosing NAT when endpoint is the private/cheaper answer for S3/DynamoDB.
  • Confusing Multi-AZ (HA) with read replicas (read scale/DR).
  • Picking custom/self-managed stacks when managed service meets the requirement.
  • Ignoring data transfer and cross-AZ costs in architecture choices.

1) VPC and networking — patterns that win

Subnets, routing, and egress (defaults you get tested on)

  • Public subnet: route table has 0.0.0.0/0 → IGW.
  • Private subnet: no IGW route; outbound internet needs NAT Gateway (typically one per AZ for HA).
  • Avoid cross-AZ hairpinning (SPOF + cross-AZ charges): private subnets in AZ‑A should use NAT in AZ‑A.

Gateway vs Interface endpoints (huge cost + security lever)

Endpoint Services What it does Cost note
Gateway endpoint S3, DynamoDB Adds route-table entries; stays on AWS network No hourly charge
Interface endpoint (PrivateLink) Most AWS services ENI in subnets; private service access Hourly + data processing

Exam cue: “Private subnets must access S3/DynamoDB” → Gateway endpoint (not NAT).


Security layers: SG vs NACL (keep it simple)

Control Level Stateful? Typical best practice
Security group ENI/resource Yes Primary control; reference SG‑to‑SG
NACL Subnet No Keep simple unless compliance requires

Multi-VPC connectivity (choose the right primitive)

Need Best-fit Why
Few VPCs, simple links VPC peering Low latency; simple
Many VPCs (sprawl), transitive routing Transit Gateway Hub-and-spoke; scalable
Expose a service privately without routing everything PrivateLink Strong isolation; no CIDR coordination

Hybrid connectivity (associate-level)

Option Best for Notes
Site-to-Site VPN Quick setup, encrypted tunnel Uses internet; can be used as DX backup
Direct Connect (DX) Predictable bandwidth/latency Often paired with VPN for HA

Exam cue: If the scenario says “quickly establish connectivity,” VPN is common. If it says “consistent performance,” Direct Connect is common.


Edge + global routing (Route 53 vs CloudFront vs Global Accelerator)

Service Best for Key idea
Route 53 DNS routing and failover DNS‑based; health checks; TTL matters
CloudFront CDN caching + origin failover for HTTP(S) Faster global content delivery
Global Accelerator Static anycast IPs + fast failover Great for TCP/UDP and fast regional failover

Networking decision ladder

First question If yes If no
Is the target S3 or DynamoDB from private subnets? Gateway endpoint Continue
Is the target another AWS service privately? Interface endpoint/PrivateLink Continue
Is this many-to-many VPC routing? Transit Gateway Continue
Is this one service exposed across accounts/VPCs? PrivateLink endpoint service Continue
Is this predictable hybrid bandwidth? Direct Connect, often with VPN backup VPN may be enough for quick encrypted connectivity
Is the bottleneck global user latency? CloudFront or Global Accelerator based on protocol Keep regional design simple

Reference diagram: common “best answer” VPC layout

    flowchart LR
	  U[Users] --> ALB["ALB (Public Subnets)"]
	  ALB --> App1["App (Private AZ1)"]
	  ALB --> App2["App (Private AZ2)"]
	  App1 & App2 --> RDS["RDS/Aurora (Multi-AZ)"]
	  App1 & App2 --> S3["S3 via Gateway Endpoint"]
	  App1 & App2 --> DDB["DynamoDB via Gateway Endpoint"]
	  App1 --> NAT1["NAT GW (AZ1)"]
	  App2 --> NAT2["NAT GW (AZ2)"]

2) Security and identity — IAM, KMS, logging

IAM: policy types and “what breaks access”

Policy/control Answers “who?” Answers “what can they do?” Common exam gotcha
Trust policy Who can assume a role No Too-broad principals
Identity policy No Principal permissions Missing conditions/least privilege
Resource policy Who can access the resource Resource permissions Forgetting to add cross-account principal
SCP (Organizations) Org guardrail Restricts Explicit deny blocks everything
KMS key policy Key admin/use Key permissions IAM allow isn’t enough if key policy blocks

High-yield rule: Explicit Deny wins. If you see Organizations in a scenario, consider SCP effects.

AccessDenied triage

    flowchart TD
	  D["AccessDenied"] --> I["Identity policy"]
	  I --> R["Resource policy"]
	  R --> K["KMS key policy or grants"]
	  K --> O["SCP or explicit deny"]

Fast rule:

  • if the resource is S3, SQS, SNS, or KMS, do not stop at the identity policy
  • if encryption is involved, the KMS layer may be the actual blocker
  • if AWS Organizations is in the scenario, an SCP may override what looks like a valid IAM allow

KMS + encryption (common patterns)

Need Best-fit Notes
Simple default encryption SSE-S3 S3-managed keys
Audit/control requirements SSE-KMS Watch key policy principals
Strict key custody CloudHSM / client-side More complexity

Common failure mode: service can’t decrypt because the KMS key policy doesn’t allow the calling principal/service.


Security design chooser

Scenario asks for Usually include Do not stop at
Cross-account access Role trust policy, identity policy, optional resource policy Adding permissions only in the trusting account
Encrypted cross-account data Resource policy plus KMS key policy/grants S3 bucket policy alone
Private application tier Private subnets, SG references, ALB in public subnets if internet-facing NACL complexity as the primary control
Secrets in app configuration Secrets Manager or SSM Parameter Store, IAM access, rotation where needed Environment variables with no secret-management story
Public web threat mitigation CloudFront/ALB plus WAF and Shield posture Security group rules only
Sensitive S3 data Block Public Access, bucket policy conditions, encryption, access logging/Macie where relevant Making the bucket public and relying on object naming

S3 security: “best answer” checklist

  • Turn on S3 Block Public Access (account + bucket).
  • Prefer private buckets + controlled access (roles, bucket policies, access points).
  • Require TLS (aws:SecureTransport) and require encryption where needed.

Require TLS for all S3 requests (copy-ready):

 1{
 2  "Version": "2012-10-17",
 3  "Statement": [
 4    {
 5      "Sid": "DenyInsecureTransport",
 6      "Effect": "Deny",
 7      "Principal": "*",
 8      "Action": "s3:*",
 9      "Resource": [
10        "arn:aws:s3:::my-bucket",
11        "arn:aws:s3:::my-bucket/*"
12      ],
13      "Condition": { "Bool": { "aws:SecureTransport": "false" } }
14    }
15  ]
16}

Require access via a specific VPC endpoint (copy-ready):

 1{
 2  "Version":"2012-10-17",
 3  "Statement":[{
 4    "Sid":"DenyNotFromVPCE",
 5    "Effect":"Deny",
 6    "Principal":"*",
 7    "Action":"s3:*",
 8    "Resource":[
 9      "arn:aws:s3:::my-bucket",
10      "arn:aws:s3:::my-bucket/*"
11    ],
12    "Condition":{"StringNotEquals":{"aws:sourceVpce":"vpce-1234567890abcdef0"}}
13  }]
14}

CloudFront note: for private S3 origins, use Origin Access Control (OAC) (don’t make the bucket public).


Security services (recognize the role)

Service What it’s “for” on SAA
WAF L7 protections (IP blocks, rate limiting, OWASP-style rules)
Shield DDoS protection (Standard by default)
GuardDuty Threat detection using logs (findings)
Security Hub Aggregate/standardize findings and posture
Inspector Vulnerability findings for compute/container images
Macie Find sensitive data in S3

3) Compute and scaling — ELB/ASG patterns

Load balancer choice (frequent)

Need Pick Notes
HTTP/HTTPS, L7 routing ALB Path/host routing, WAF integration
TCP/UDP, very high throughput NLB Static IPs per AZ, low latency
Inline appliances GWLB Insert firewalls/IDS appliances

Auto Scaling “best answers”

  • ASG across multiple AZs.
  • Health checks: use ELB health checks to replace unhealthy instances.
  • Prefer stateless app tiers; store session state externally (ElastiCache/DynamoDB) when needed.

Compute chooser (EC2 vs containers vs serverless)

Option Best for Why it wins
EC2 Full OS control and flexibility Broadest compatibility
ECS/Fargate Containers with low ops No server management with Fargate
EKS Kubernetes standardization Ecosystem + portability (more ops)
Lambda Event-driven + bursty workloads Minimal ops; scales fast

Exam cue: If the scenario says “least operational overhead,” managed options (Fargate/Lambda/managed data stores) usually beat self-managed EC2.


4) Storage — object vs block vs file, and S3 class selection

Storage type picker (very common)

Requirement Best-fit Why
Durable object storage S3 Highly durable, cheap, scalable
Boot / per-instance block volume EBS Low-latency block storage for EC2
Shared POSIX file system EFS Multi-AZ shared file storage
Windows file shares / high-perf file FSx Managed Windows/Lustre/etc

EBS volume types (quick selection)

Type Best for Notes
gp3 General purpose Default choice; tune IOPS/throughput
io2 High IOPS + critical workloads Higher cost; consistent performance
st1 Throughput-heavy HDD Good for large sequential workloads
sc1 Lowest-cost HDD Cold throughput workloads
Instance store Temporary scratch Fast but ephemeral (data lost on stop/terminate)

Exam cue: EBS is AZ-scoped. For multi-AZ shared storage, EFS/FSx is the usual answer.


S3 storage classes (fast selection)

Requirement Service/Class Notes
Hot object storage S3 Standard Default
Unknown access patterns S3 Intelligent‑Tiering Monitoring fee
Infrequent access, multi-AZ durability S3 Standard‑IA Retrieval fee
Infrequent access, single AZ S3 One Zone‑IA Cheaper; less resilient
Archive S3 Glacier / Deep Archive Retrieval time trade-offs

Exam cue: “Long-term retention / compliance” → Glacier + lifecycle + (sometimes) Object Lock.


S3: durability + resilience patterns

  • Versioning + lifecycle rules (protect against deletes and ransomware scenarios).
  • CRR/SRR for replication needs (cross-region or same-region).
  • Object Lock (WORM) for immutability requirements.

Backups (fast picks)

  • EBS snapshots are incremental; copy snapshots cross-region for DR.
  • AWS Backup helps centralize backup policies across common services.
  • For databases, prefer managed backup features (RDS automated backups/snapshots).

5) Databases and caching — RDS/Aurora vs DynamoDB

RDS: Multi-AZ vs read replicas (classic SAA)

Feature Multi-AZ Read replica
Primary purpose HA/failover Read scaling
Writes One primary Still one primary
Failover Automatic Manual promotion (generally)

Rule: Multi-AZ is about availability; read replicas are about scale.


Aurora (why it’s often a “best answer”)

  • Higher throughput than standard RDS engines (common exam framing).
  • Multiple read replicas for read scaling (and faster reads in the same region).
  • Aurora Global Database for low-latency global reads and faster cross-region DR.

When to choose what (fast)

Need Best-fit
Relational + joins + transactions RDS/Aurora
Massive key-value scale DynamoDB
Sub-millisecond cache ElastiCache
DynamoDB read cache DAX

ElastiCache: Redis vs Memcached (SAA-level)

Service Best for Notes
Redis Rich features + durability options Replication, multi-AZ patterns, data structures
Memcached Simple cache Very simple, no persistence

DynamoDB: what wins questions

  • Prefer Query over Scan.
  • Choose partition keys to avoid hot partitions.
  • Use GSIs for new access patterns.
  • Use On‑Demand for spiky traffic; Provisioned + Auto Scaling for steady predictable workloads.

6) Resilience and DR — RTO/RPO patterns

HA patterns (default architecture)

  • Multi-AZ for app tiers (ALB + ASG across AZs).
  • Databases: Multi-AZ where required (RDS/Aurora).
  • Use queues/caching to absorb spikes and failures.

Resilience evidence checklist

If the architecture needs… Confirm these details
Multi-AZ availability App tier, load balancer, NAT, and database all avoid a single-AZ dependency.
Safe failover Health checks, DNS/traffic routing, replicated data, and tested runbooks exist.
Loose coupling SQS/SNS/EventBridge/Step Functions separates producers from consumers.
Backpressure handling Queue depth, retry, DLQ, visibility timeout, and idempotency are addressed.
Legacy app reliability Load balancer, Auto Scaling, managed database, and minimal app-change patterns are considered.
Data durability Backup, replication, versioning, Object Lock, or database snapshots match the failure mode.

DR strategies (know the table)

Strategy Typical RTO Typical RPO Cost Notes
Backup/Restore High Hours Low Cheapest; slowest recovery
Pilot Light Medium Minutes–hours Med Minimal core in DR
Warm Standby Low Minutes Med+ Scaled-down prod running
Multi-site active-active Very low Seconds High Complex; highest cost

Multi-Region data options (high yield)

Data layer Multi-Region option
S3 CRR
DynamoDB Global tables
Aurora Aurora Global Database

DR routing: Route 53 policy selection

Routing policy Best for
Failover Active-passive DR
Weighted Canary / migrations
Latency Lowest latency routing per user
Geolocation Compliance/content by country

Exam cue: If you need faster failover with static anycast IPs, consider Global Accelerator. If you need caching + origin failover for HTTP(S), consider CloudFront.


Active-passive vs active-active (quick framing)

Pattern Pros Cons
Active-passive Cheaper; simpler operations Higher RTO; failover/failback steps
Active-active Lowest downtime; global performance Most complex; highest cost

DR sketch (active-passive)

    flowchart LR
	  Users --> R53[Route 53]
	  R53 -->|Primary| A[Region A]
	  R53 -->|Failover| B[Region B]
	  A --> AppA[App + DB]
	  B --> AppB[Warm standby]

7) Observability and operations — what each tool answers

Service Think “this answers…”
CloudWatch “How is it performing?” (metrics/logs/alarms)
CloudTrail “Who did what?” (API audit trail)
Config “What changed?” (config history + compliance)
X-Ray “Where is latency?” (distributed traces)

Exam cue: if the requirement is auditing and investigations, CloudTrail is usually the anchor.

High-yield alarms to know

  • ALB: HTTPCode_Target_5XX_Count, TargetResponseTime
  • ASG/EC2: CPU (and memory via agent), status checks
  • SQS: queue depth/age (backpressure signals)
  • DynamoDB: throttles, consumed capacity (hot partitions/underprovisioned)

8) Cost optimization — fast wins (and common traps)

Compute purchase options (memorize the “when”)

Pattern Option Notes
Steady baseline Savings Plans Flexible discount for compute
Predictable, fixed needs Reserved Instances Strong discount for known shape
Fault-tolerant Spot Biggest savings; design for interruption

Cost visibility tools (what to reach for)

Tool Best for
Cost Explorer Trend analysis and spend breakdown
Budgets Alerts on spend/usage thresholds
Cost Anomaly Detection Unexpected spend spikes
Compute Optimizer Rightsizing recommendations
Trusted Advisor Best-practice checks (cost/security/perf)
Cost and Usage Report (CUR) Most detailed cost dataset export

Cost trap ladder

If monthly spend is the explicit constraint, check these in order:

  1. Is the architecture paying for the wrong connectivity path?
  2. Is it paying for premium compute or storage that the workload does not need?
  3. Is it paying for idle baseline capacity that should use commitments or elastic scaling?
  4. Is it paying for repeat reads or transfer that caching, endpoints, or lifecycle policies would remove?

Cost levers by area (fast table)

Area Lever Example
Compute Right-size + Graviton Smaller instance families, Graviton where supported
Compute Spot for fault-tolerant Batch/worker tier with Spot + scaling
Storage S3 lifecycle tiering Move logs to IA/Glacier
Storage gp3 tuning Tune IOPS/throughput instead of overprovisioning
Network Endpoints over NAT S3/DynamoDB via Gateway endpoints
Edge Cache at CloudFront Reduce origin load and egress

Cost “gotchas”

  • Single NAT for all private subnets: SPOF + cross-AZ charges.
  • Heavy NAT usage to reach S3/DynamoDB: often replace with Gateway endpoints.
  • Cross-AZ data transfer and inter-region replication costs add up fast.
  • Logging retention and high-volume logs can become a surprise bill.

9) Common pitfalls (exam bait)

  • Assuming PrivateLink exists for S3/DynamoDB (use Gateway endpoints).
  • ALB/ASG only in one AZ (not HA).
  • Confusing RDS Multi-AZ (HA) with read replicas (scale).
  • KMS key policy missing explicit principals (service can’t use key).
  • Overly strict NACLs breaking stateful flows (SG-first is usually best).
  • Choosing Scan over Query on DynamoDB.

10) Mini runbooks (copy/paste patterns)

Cross-account role assumption (trust policy):

1{
2  "Version":"2012-10-17",
3  "Statement":[{
4    "Effect":"Allow",
5    "Principal":{"AWS":"arn:aws:iam::222233334444:role/TeamRole"},
6    "Action":"sts:AssumeRole"
7  }]
8}

Route 53 failover (pseudo steps):

11) Create primary A/AAAA alias to ALB in Region A with Health Check.
22) Create secondary A/AAAA alias to ALB in Region B with Health Check.
33) Set routing policy to Failover: Primary / Secondary.
44) Verify health checks and simulate failover.

Final tip

If multiple answers work, pick the one that best matches the explicit constraint (for example: lowest cost or least operational effort) while still meeting availability and security requirements.

Quiz

Loading quiz…
Revised on Monday, June 15, 2026