Pass the AWS Solutions Architect Associate Exam. Architecture Decisions, Not Memorization.Réussir l'examen AWS Solutions Architect Associate. Des décisions d'architecture, pas de la mémorisation.
65 questions. 130 minutes. 720 to pass. Every domain, service, and trade-off for the AWS SAA-C03 — in one interactive guide.65 questions. 130 minutes. 720 pour réussir. Chaque domaine, service et compromis pour le SAA-C03 — dans un guide interactif.
The SAA-C03 is a step up from the Cloud Practitioner. Where CCP asks "what is this service?", the SAA asks "which service fits here, and why?" Every question is a scenario. You're being tested on architecture decisions — trade-offs between cost, performance, resilience, and security. There is always a best answer. Orange boxes are exam tips. Red boxes are common traps. Green boxes are free-tier or cost notes.
Le SAA-C03 est une progression par rapport au Cloud Practitioner. Là où le CCP demande « c'est quoi ce service ? », le SAA demande « quel service convient ici, et pourquoi ? » Chaque question est un scénario. On teste vos décisions d'architecture — compromis entre coût, performance, résilience et sécurité. Il y a toujours une meilleure réponse. Les boîtes orange sont des conseils d'examen. Les rouges sont des pièges courants. Les vertes concernent les coûts.
65Questions
130Minutes
720Passing Score /1000
$300Exam Fee USD
Exam Domains — Click to Jump
30%🔒 Secure Architectures~20 questions
26%🔁 Resilient Architectures~17 questions
24%⚡ High-Performing Architectures~16 questions
20%💰 Cost-Optimized Architectures~13 questions
🎯 D1 (30%) + D2 (26%) = 56% of the exam. Master secure and resilient design first — you're essentially more than halfway there before touching performance or cost.
How the Exam Works
Exam Format
Multiple-choice (1 correct) and multiple-response (they tell you exactly how many to pick)
No penalty for wrong answers — always guess if unsure
Scenario-based questions — a short paragraph sets up a business problem, you pick the best architecture
Available online (proctored) or in-person
Score report is immediate. 720/1000 to pass (scaled score)
Valid for 3 years. After passing: 50% discount voucher for your next AWS cert
Secure secrets → Secrets Manager, not hardcoded env vars
🚨 The exam frequently offers answers that are technically correct but don't match the requirement. "Use RDS Multi-AZ" is correct for high availability — but wrong if the question asks for read performance (that's Read Replicas).
Prerequisite Knowledge
Passed CCP or have 1+ year of hands-on AWS experience (recommended, not required)
Understand the shared responsibility model, basic networking (CIDR, subnets, DNS)
Know the difference between stateful vs stateless, synchronous vs asynchronous
📌 The SAA-C03 version (current) places heavier emphasis on serverless, containers (ECS/EKS/Fargate), and well-architected framework pillars than older versions.
30%
Domain 1: Design Secure Architectures
~20 questions · IAM, VPC, encryption, compliance, data protection
Permission boundary — caps the maximum permissions a role/user can have
MFA — enforce via IAM policy condition aws:MultiFactorAuthPresent
Policy Evaluation Logic
Default = implicit Deny (nothing is allowed until explicitly permitted)
Explicit Allow on identity policy → access granted
Explicit Deny anywhere → always overrides any Allow
SCPs in Organizations act as guardrails — they restrict what even an admin can do
Resource-based policies (S3 bucket policies) + identity policies both evaluated
For cross-account: need Allow in both the role's trust policy AND identity policy
🎯 When a question asks how an EC2 instance accesses S3 securely — the answer is always an IAM Role attached to the instance. Never access keys stored on the instance.
Cross-Account Access
Role Assumption Pattern
Account A (trusting) creates a role with a trust policy allowing Account B to assume it
Account B users/services call sts:AssumeRole to get temporary credentials
Use external ID in trust policy when third parties (vendors) assume your role — prevents confused deputy
Cognito — Web Identity & Federation
User Pools
User directory — handles sign-up, sign-in, password reset
Federate with social IDPs (Google, Facebook, Apple) and enterprise SAML/OIDC
Returns JSON Web Tokens (JWT): ID token, access token, refresh token
Use for: application authentication, securing API Gateway endpoints
Identity Pools (Federated Identities)
Provides temporary AWS credentials via STS to grant users direct access to AWS resources
Users can be authenticated (via User Pool, social, SAML) or unauthenticated (guest)
Use for: allowing app users to directly upload to S3, write to DynamoDB, invoke Lambda
Flow: User Pool JWT → Identity Pool → STS → temporary credentials → AWS resource
🎯 "App needs to let users upload files directly to S3" → Cognito Identity Pool (gives temporary AWS credentials). "Secure a REST API with user login" → Cognito User Pool as an API Gateway authorizer.
VPC Security
Security Groups vs NACLs
Feature
Security Groups
Network ACLs
Level
Instance (ENI)
Subnet
State
Stateful — return traffic automatic
Stateless — must allow both directions
Rules
Allow only (no explicit deny)
Allow AND Deny rules
Evaluation
All rules evaluated together
Rules evaluated in order (lowest number first)
Scope
Applies to specific instances
Applies to all instances in subnet
🎯 To block a specific IP address, use a NACL Deny rule. Security groups can't deny — you can only remove the Allow.
VPC Connectivity
Internet Gateway — allows public subnets to reach internet
NAT Gateway — allows private subnets outbound internet (no inbound). Managed, HA within AZ. Place in public subnet.
VPC Peering — direct connection between VPCs (same or cross-account/region). Not transitive.
SSE-KMS — KMS manages keys. You get audit trail in CloudTrail. Control via KMS policy.
SSE-C — you provide the key with each request. AWS does not store the key.
Client-side — you encrypt before upload. AWS never sees plaintext.
🎯 "Audit key usage" → SSE-KMS. "AWS never sees key" → SSE-C. "Customer holds all encryption material" → Client-side.
Secrets & Parameter Management
Feature
Secrets Manager
SSM Parameter Store
Cost
$0.40/secret/month
Free (Standard). $0.05/advanced/month
Auto rotation
✅ Built-in (Lambda-based), native for RDS
❌ Manual or custom Lambda
Use case
Database passwords, API keys needing rotation
Config values, non-sensitive params
Cross-account
✅
✅ (with resource policy)
🎯 Question says "automatically rotate database credentials" → Secrets Manager. It has native integration with RDS, Redshift, DocumentDB.
SSM Session Manager — Secure EC2 Access
Provides interactive browser-based or CLI shell access to EC2 instances without opening port 22 (SSH)
No bastion hosts, no SSH key pairs to manage — access controlled entirely via IAM policies
Works with instances in private subnets (requires SSM agent + VPC endpoint or internet access via NAT)
EC2 instance needs AmazonSSMManagedInstanceCore IAM role policy attached
All session activity logged to CloudTrail and optionally to S3 / CloudWatch Logs for audit
Also enables: Run Command (remote script execution), Patch Manager, Parameter Store access
🎯 "Most secure way to access EC2 in a private subnet without exposing SSH" → SSM Session Manager. Eliminates bastion hosts, no security group inbound rules needed.
Network Protection Services
AWS Shield
Standard — free, automatic. Protects against common L3/L4 DDoS attacks
Pilot Light — minimal core systems running. Scale up on disaster.
Warm Standby — scaled-down version running. Scale up quickly.
Active-Active (Multi-site) — full production in 2+ regions. RTO ≈ 0.
🎯 "Cost-effective DR with RPO of hours" → Backup & Restore or Pilot Light. "Near-zero RTO/RPO" → Active-Active multi-region.
📌 AWS Elastic Disaster Recovery (AWS DRS) — automates lift-and-shift DR for physical, virtual, or cloud servers. Uses continuous block-level replication into a low-cost staging area. On failover, launches recovery instances in minutes. RPO of sub-seconds (continuous replication). RTO in minutes. Replaces CloudEndure in SAA-C03 questions about automated server-level DR.
Multi-AZ vs Multi-Region
Multi-AZ
Multi-Region
Replication
Synchronous (RDS Multi-AZ, etc.)
Asynchronous (Cross-region replication)
Latency
Low (same metro area)
Higher (geographic distance)
Use case
High availability — survive AZ failure
Disaster recovery, low global latency
Data loss risk
None (synchronous)
Possible (async lag)
Elastic Load Balancing
ALB L7
HTTP/HTTPS/gRPC
Path-based routing (/api/* → service A)
Host-based routing (api.example.com)
Target groups: EC2, ECS, Lambda, IPs
Sticky sessions, WebSocket, redirect rules
NLB L4
TCP/UDP/TLS
Millions of requests/second, ultra-low latency
Static IP per AZ (or Elastic IP) — required for IP whitelisting
Preserves source IP
Use for: gaming, IoT, real-time
GWLB L3
Inline traffic inspection
Routes traffic through 3rd-party network appliances (firewalls, IDS)
Transparent to source and destination
GENEVE protocol on port 6081
🚨 Need a static IP for your load balancer? → NLB (not ALB). ALB only has a DNS name, not a fixed IP.
Auto Scaling
Scaling Policies
Target Tracking — maintain a metric at a target (e.g., CPU at 60%). Simplest. Recommended.
Step Scaling — add/remove capacity in steps based on alarm thresholds
Simple Scaling — single CloudWatch alarm triggers single action. Has cooldown period.
Scheduled — scale at known times (e.g., add capacity every Monday 8am)
Predictive — ML forecasts future load, pre-scales
Key Concepts
Launch Template — defines AMI, instance type, SG, user data for new instances
Cooldown period — prevents launching/terminating instances too rapidly after a scaling event
Lifecycle hooks — pause instance launch/terminate for custom actions (e.g., drain connections, run scripts)
Warm pool — pre-initialized instances ready to launch quickly
Termination policy: default terminates instance from AZ with most instances, oldest launch template first
Route 53 Routing Policies
Policy
Use Case
Notes
Simple
Single resource
No health checks. Returns random if multiple values.
Weighted
A/B testing, gradual migration
Weight 0 = no traffic. All 0 = equal distribution.
Latency
Route to lowest-latency region
Based on AWS latency data, not geography
Failover
Active-passive DR
Requires health check on primary
Geolocation
Serve content by user's country/continent
Not latency-based. Needs a Default record.
Geoproximity
Shift traffic between regions by bias
Traffic Flow only. Bias expands/shrinks region.
Multi-Value
Client-side load balancing
Up to 8 healthy records returned. Not a substitute for ELB.
🎯 "Route users to nearest region" → Latency policy. "Route French users to EU servers" → Geolocation. "Gradually shift 10% traffic to new version" → Weighted.
Database Resilience
RDS Multi-AZ vs Read Replicas
Multi-AZ
Read Replicas
Purpose
High availability / failover
Read scale / performance
Replication
Synchronous (standby)
Asynchronous
Standby readable?
❌ Not until failover
✅ Yes (read traffic)
Cross-region?
❌ Same region only
✅ Yes (CRR)
Auto failover?
✅ ~60-120 seconds
❌ Manual promotion
Aurora
6 copies of data across 3 AZs — survives losing 2 copies for writes, 3 for reads
Up to 15 read replicas (RDS max: 5)
Aurora Global Database — 1 primary region, up to 5 read-only secondary regions. Replication <1 second. Promote secondary for DR.
Aurora Serverless v2 — scales compute instantly in fine-grained increments. Great for unpredictable workloads.
SNS FIFO — strictly ordered, deduplication, SQS FIFO subscribers only
EventBridge — event bus. Rules filter and route events to targets. Supports SaaS sources (Zendesk, Datadog). More powerful than SNS for complex routing.
Fan-out pattern: SNS → multiple SQS queues → separate Lambda functions. Each queue processes independently.
🎯 "Decouple application tiers so slow consumer doesn't affect producer" → SQS between them. "Notify multiple services of one event" → SNS fan-out to SQS queues.
S3 Resilience
11 nines (99.999999999%) durability — 3 AZ replication by default
Versioning — keeps all object versions. Enables recovery from accidental deletes.
MFA Delete — requires MFA to permanently delete versions (enable via CLI only)
Cross-Region Replication (CRR) — async replication to another region. Requires versioning on both buckets. For compliance, lower latency access, DR.
Same-Region Replication (SRR) — replication within same region. For log aggregation, live replication between prod and test.
Replication does NOT replicate existing objects — only new objects after replication is configured
🚨 CRR + KMS encryption trap: If source objects are encrypted with a customer-managed KMS key, replication will fail unless you grant the replication IAM role permission to kms:Decrypt on the source key AND kms:Encrypt on the destination region's KMS key. AWS Multi-Region Keys (MRK) share key material across regions and simplify this.
Storage Gateway — Hybrid Architecture
Type
Protocol
Data Location
Use Case
S3 File Gateway
NFS / SMB
S3 (local cache for hot data)
On-prem apps need file share backed by S3. Migrate file-based workloads to cloud storage.
Volume Gateway — Cached
iSCSI block
Primary in S3, frequently accessed cached locally
Extend on-prem storage to S3. Access from any application using block storage.
Volume Gateway — Stored
iSCSI block
Primary on-prem, async backup to S3 as EBS snapshots
Keep full dataset on-prem with cloud backup. Low latency for all access.
🎯 "On-prem app needs to store files in S3 without code changes" → S3 File Gateway. "Replace tape library for compliance archives" → Tape Gateway. "Keep all data locally but back up to AWS" → Volume Gateway Stored mode.
🧠 Domain 2 Practice Quiz
20 randomized scenario-based questions. Submit to reveal your score and explanations.
🎯 "Multiple EC2 instances need shared file system on Linux" → EFS. "Windows file share with AD integration" → FSx for Windows. "Highest performance HPC shared storage" → FSx for Lustre.
Signed URLs — single file access control. Signed Cookies — multiple files.
Lambda@Edge — run code at edge (viewer request/response, origin request/response)
🎯 "Reduce read load on RDS" → ElastiCache (Redis or Memcached) in front of DB. "Reduce latency for global users accessing static content" → CloudFront. "Real-time leaderboard" → ElastiCache Redis sorted sets.
DynamoDB Performance
DAX (DynamoDB Accelerator) — in-memory cache for DynamoDB. Microsecond reads. API-compatible — no app changes needed. Ideal for read-heavy, repeated queries.
Partition key design — choose high-cardinality partition key to distribute data evenly. Poor key → hot partition → throttling.
On-Demand: good for unpredictable spikes. Provisioned + Auto Scaling: predictable, cheaper.
Global Secondary Index (GSI) — query on non-primary key attributes. Different partition + sort key. Has its own capacity.
Local Secondary Index (LSI) — same partition key, different sort key. Must be created at table creation time.
🚨 DAX caches reads, not writes. If your app is write-heavy, DAX won't help. Also: DAX is for DynamoDB only — not for RDS (use ElastiCache instead).
Traffic travels AWS backbone — not public internet — from edge to origin
Works with ALB, NLB, EC2, Elastic IPs
Health checks + instant failover (sub-30s)
Best for: TCP/UDP apps, gaming, VoIP, APIs needing static IPs
Global Accelerator vs CloudFront
Both use AWS edge locations and global backbone
CloudFront — caches content at edge. HTTP only. Best for static/cacheable content.
Global Accelerator — no caching. Any TCP/UDP. Routes to origin. Best for dynamic content, non-HTTP, fixed IPs.
Kinesis
Data Streams
Real-time streaming, millisecond latency
Ordered within shard, replay-able (up to 365 days)
You manage shards (capacity planning)
Multiple consumers possible simultaneously
Use for: real-time analytics, event sourcing
Data Firehose
Near real-time delivery (60s batch or 1 MB buffer)
Fully managed — no shards to manage
Destinations: S3, Redshift, OpenSearch, Splunk
Can transform data with Lambda
Use for: log delivery to S3, analytics pipelines
Data Analytics
Run SQL queries on streaming data in real-time
Source: Data Streams or Firehose
Output: Data Streams, Firehose, Lambda
Use for: real-time dashboards, anomaly detection
Serverless Analytics — Athena & Redshift Spectrum
Amazon Athena
Serverless interactive query service — analyze data directly in S3 using standard SQL
No infrastructure to provision or manage. Pay per query ($5/TB scanned).
Supports: CSV, JSON, Parquet, ORC, Avro. Use columnar formats (Parquet/ORC) + partitioning to reduce cost.
Works with AWS Glue Data Catalog as the metadata/schema layer
Use for: ad-hoc queries on S3 data lake, log analysis (CloudTrail, ALB logs, VPC Flow Logs), one-time analysis
Redshift Spectrum
Extends an existing Amazon Redshift cluster to query data in S3 without loading it first
Runs queries against exabytes of unstructured data in S3 — no ETL required
Requires an existing Redshift cluster (not serverless by itself)
Use for: joining S3 data lake with Redshift warehouse tables, running complex analytics across hot (Redshift) + cold (S3) data
🎯 "Query S3 data with SQL, no infrastructure" → Athena. "Join S3 data with existing Redshift tables" → Redshift Spectrum. "Reduce Athena query cost" → convert to Parquet/ORC and partition by date.
Serverless & Containers
Lambda
Max execution: 15 minutes. Memory: 128 MB – 10 GB. Ephemeral storage: up to 10 GB (/tmp).
Reserved concurrency — caps max concurrent executions for a function
Provisioned concurrency — pre-warms instances to eliminate cold starts
🎯 "Reduce cost for predictable workload" → Reserved Instances or Savings Plans. "Lowest cost for fault-tolerant batch jobs" → Spot Instances. "Compliance requires dedicated physical server" → Dedicated Hosts.
🚨 Spot Instances can be interrupted with 2-minute warning. Never use for: databases, stateful apps, jobs that can't tolerate interruption without handling it. Use Spot + On-Demand mix (Spot Fleet / EC2 Fleet) for resilience.
S3 Storage Classes
Class
Access Pattern
Retrieval Time
Min Storage Duration
Note
S3 Standard
Frequent
Milliseconds
None
Default. 3 AZ. Highest cost.
S3 Intelligent-Tiering
Unknown/changing
Milliseconds
None
Auto-moves between tiers. Small monitoring fee.
S3 Standard-IA
Infrequent, but fast when needed
Milliseconds
30 days
Retrieval fee. 3 AZ. Good for backups.
S3 One Zone-IA
Infrequent, non-critical
Milliseconds
30 days
Single AZ. 20% cheaper than Standard-IA. Risk of AZ loss.
Glacier Instant Retrieval
Rare, but needs instant access
Milliseconds
90 days
Archives with ms access. Lowest cost with instant retrieval.
Glacier Flexible Retrieval
Rare
1–12 hours (Bulk: free)
90 days
Formerly just "Glacier". Expedited: 1-5 min (fee).
Glacier Deep Archive
Rarely/never
12–48 hours
180 days
Cheapest storage. Compliance archives.
🎯 "Unknown access patterns" → Intelligent-Tiering. "Compliance archives accessed once a year" → Glacier Deep Archive. "Backup data accessed monthly" → Standard-IA. "Video archive but needs immediate access when requested" → Glacier Instant Retrieval.
S3 Lifecycle Policies
Automate transitions between storage classes and deletions
Example: Standard → Standard-IA after 30 days → Glacier after 90 days → delete after 365 days
Apply to current versions, non-current versions (versioned buckets), incomplete multipart uploads
Use lifecycle rules to automatically clean up incomplete multipart uploads (cost savings)
Cost Optimization for Compute
Right-Sizing
AWS Compute Optimizer — ML-based recommendations for EC2, EBS, Lambda, ECS. Analyzes actual utilization over 14 days.