SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
SAA-C03 practice

SAA-C03 practice exam — 555 free practice questions

Work through 555 SAA-C03 exam questions, drawn by domain and weighted like the real thing, with an explanation on every option — not just the right one. Build a practice test as long as you like; no account needed to start. 5 fully worked examples are further down this page, answers included.

Question bank
555
across 4 domains
Free, no account
5/day
a free account allows 30 a day
Real exam
65 Qs
130 min · pass 720 / 1000
Explanations
Every option
right and wrong

Build a practice session

5 free questions left today.

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across all domains, in Learn mode.

Focused review

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

5 sample SAA-C03 questions, fully explained

Real questions from the SAA-C03 bank, with the answer key and the reasoning behind every option. Read them, then go back up the page and try the rest.

Question 1Design Secure Architectures

A company manages 40 AWS accounts in AWS Organizations, grouped into a Development OU and a Production OU. The security team requires that no user in a Development account, including account administrators who hold full IAM permissions, can stop or delete AWS CloudTrail trails. Which approach enforces this requirement?

Choose one.

  • a
    Attach an IAM policy that denies cloudtrail:StopLogging and cloudtrail:DeleteTrail to the IAM groups and roles in each Development account.

    Account administrators with full IAM permissions can detach or edit an IAM policy deployed inside their own account, so this control does not bind them.

  • b
    Attach a permissions boundary that denies cloudtrail:StopLogging and cloudtrail:DeleteTrail to the IAM roles in each Development account.

    A permissions boundary is an IAM object managed inside the account. Administrators who control IAM can remove or replace it, and it does not apply to the member account root user.

  • c
    Deploy an AWS Config rule to each Development account that detects a stopped or deleted CloudTrail trail and alerts the security team.

    A Config rule is a detective control. It reports that logging was stopped after it happened instead of preventing the action, which the requirement demands.

  • d
    Attach a service control policy that denies cloudtrail:StopLogging and cloudtrail:DeleteTrail to the Development OU in the organization. Correct

    An SCP is managed from the organization, above the member accounts. It is inherited by every account in the OU and restricts every principal there, including administrators and the member account root user, and no one inside those accounts can detach it.

The concept

A restriction that must bind account administrators cannot live inside the accounts those administrators control. Service control policies are applied from AWS Organizations and set the maximum permissions for every principal in the member accounts they reach.

Why that’s the answer

The SCP on the Development OU works because it is enforced at a layer no Development-account principal can change: it is inherited by each account in the OU, restricts member-account root users too, and denies the CloudTrail actions whatever the IAM policies allow. The IAM deny policy and the permissions boundary deny the same actions, but both are IAM objects inside the account, so an administrator with full IAM permissions can detach them. The Config rule is detective: it tells the security team that logging stopped instead of stopping the action.

How to reason it out
  1. Classify the requirement: it is preventive and must bind administrators of the affected accounts.
  2. Ask who controls each option: IAM policies and permissions boundaries are managed by the account's own administrators.
  3. Discard detective controls such as Config rules when the requirement is to prevent an action.
  4. Place the deny above the accounts: an SCP attached to the Development OU is inherited by every account in it.

Exam tip: "No one in these accounts, including admins" means an SCP on the OU; anything managed inside the account can be removed by its admins.

Designing Secure Access: IAM Best Practices, Roles, and AWS Organizations — the lesson that teaches this.

Question 2Design Resilient Architectures

A photo-sharing startup runs a web tier that synchronously calls a fleet of EC2 instances to generate image renditions after each upload. When a post goes viral, the rendition fleet saturates, upload requests time out, and some uploads are never processed. The company needs a redesign that loses no rendition job and handles unpredictable spikes as cost-effectively as possible. What should a solutions architect recommend?

Choose one.

  • a
    Run the rendition fleet in an Auto Scaling group whose minimum capacity matches the largest viral spike seen so far.

    Sizing the floor for the worst spike so far keeps the synchronous call path, still drops jobs when a bigger spike arrives, and pays for peak capacity through every quiet hour.

  • b
    Place an Amazon SQS queue between the web tier and the rendition fleet, and scale the fleet's Auto Scaling group on the queue backlog. Correct

    The queue holds each job durably until a worker deletes it after success, so nothing is lost, and the fleet grows with the backlog during a spike and shrinks afterward, so the company pays only for the capacity it uses.

  • c
    Publish each upload job to an Amazon SNS topic, and subscribe the rendition instances in an Auto Scaling group to it as HTTP endpoints.

    SNS pushes at its own pace rather than letting saturated workers pull at theirs; once delivery retries to overwhelmed endpoints are exhausted the job is gone, so it is not a durable consumer-paced buffer.

  • d
    Put an Application Load Balancer in front of the rendition fleet, scale the fleet on CPU utilization, and raise the web tier's request timeout.

    This is still a synchronous chain: while new instances launch, saturated targets keep timing out, and the load balancer stores nothing, so jobs caught in that window are still lost.

The concept

Inserting a queue between tiers converts a traffic spike into a durable backlog that a worker tier drains at its own pace. The tiers are decoupled, so each scales on its own signal and no work is lost while consumers catch up.

Why that’s the answer

The SQS design meets both requirements: SQS keeps every job until a worker processes and deletes it (no lost renditions), and scaling the worker group on queue backlog adds capacity only while a backlog exists (cost-effective for unpredictable spikes). The load balancer plus CPU scaling option is the tempting near-twin: it does scale, but the web tier still waits on the rendition fleet, and anything that arrives while the fleet is saturated and new instances are still booting times out with nowhere to wait. Sizing the minimum capacity for the biggest spike so far keeps the same fragile call path, has a ceiling the next viral post can exceed, and bills idle capacity around the clock. SNS looks like decoupling but is push delivery without consumer pacing; overwhelmed HTTP subscribers exhaust retries and the job is dropped.

How to reason it out
  1. Diagnose the failure: synchronous calls into a saturated tier lose work during spikes, which is tight coupling.
  2. Add a durable intermediary: an SQS queue stores each job until a worker finishes and deletes it.
  3. Scale the consumer on the right signal: queue backlog grows the worker group during a spike and shrinks it afterward.
  4. Check cost: elastic workers that follow the backlog beat a permanently peak-sized floor.

Exam tip: When spikes lose work between tiers, buffer with SQS and scale the workers on queue backlog; a load balancer spreads requests but stores none.

Scalable, Loosely Coupled Architectures: SQS, SNS, EventBridge, Step Functions — the lesson that teaches this.

Question 3Design High-Performing Architectures

A company is moving a self-managed relational database from on premises to a single EC2 instance. Monitoring shows a steady load of about 9,000 random IOPS at 200 MiB/s, and the application team has confirmed that single-digit-millisecond storage latency is acceptable. The data must persist across instance stops. Which EBS volume type meets these requirements MOST cost-effectively?

Choose one.

  • a
    General Purpose SSD (gp3) with IOPS and throughput raised above the baselines Correct

    gp3 starts at 3,000 IOPS and 125 MiB/s, and both can be provisioned independently of size (up to 80,000 IOPS and 2,000 MiB/s), so 9,000 IOPS and 200 MiB/s fit; it gives single-digit-millisecond latency and is the lowest-cost SSD type.

  • b
    Provisioned IOPS SSD (io2) with IOPS provisioned to cover the measured load

    io2 would meet the load, but its premium buys sub-millisecond consistency and IOPS beyond gp3's ceiling, neither of which this workload needs.

  • c
    Throughput Optimized HDD (st1) sized to deliver the measured throughput

    st1 sells sequential throughput; small random database I/O performs poorly on HDD media, so it cannot sustain 9,000 random IOPS.

  • d
    NVMe instance store on a storage-optimized instance sized for the load

    Instance store is ephemeral and loses its data on a stop or hardware failure, breaking the stated persistence requirement.

The concept

EBS volume selection is a ladder that starts at gp3: it is the cost-effective default for boot volumes and general databases, and you only climb to io2 when the stated requirement exceeds what gp3 can provision.

Why that’s the answer

The numbers decide it. Random I/O at 9,000 IOPS rules out HDD media, and the persistence requirement rules out instance store. Between the two SSD types, gp3 can be provisioned far past this load (its IOPS and throughput are set independently of volume size) and its single-digit-millisecond latency is explicitly acceptable, so io2's higher price buys nothing the workload asks for. io2 is the tempting overshoot: it works, but MOST cost-effective means the cheapest option that meets the stated need.

How to reason it out
  1. Classify the access pattern: small random reads and writes from a relational database need SSD, which eliminates st1.
  2. Check durability: data must survive stops, which eliminates instance store.
  3. Compare the measured load with gp3: 200 MiB/s is above the 125 MiB/s baseline and 9,000 IOPS above the 3,000 baseline, but both are well within what gp3 can be provisioned to.
  4. Check the latency requirement: single-digit milliseconds is acceptable, so io2's sub-millisecond consistency is not needed.
  5. Apply the cost qualifier: gp3 is the cheapest volume that meets every stated requirement.

Exam tip: Under a cost qualifier, pick gp3 whenever it meets the stated performance — io2 is only justified when the requirement exceeds gp3.

High-Performing Storage: S3 vs EBS vs EFS, Volume Types, and Hybrid Options — the lesson that teaches this.

Question 4Design Cost-Optimized Architectures

A company generates monthly financial reports in Amazon S3. Each report is downloaded several times during its first 30 days, then accessed a few times per month for the next two years and must load with millisecond latency whenever it is requested. Which storage design meets these requirements MOST cost-effectively?

Choose one.

  • a
    Keep new reports in S3 Standard and add a lifecycle rule that transitions them to S3 Glacier Instant Retrieval 30 days after creation.

    Glacier Instant Retrieval is priced for data touched about once a quarter; at a few reads per month its higher retrieval fees erode the storage savings compared with Standard-IA.

  • b
    Keep new reports in S3 Standard and add a lifecycle rule that transitions them to S3 Glacier Flexible Retrieval 30 days after creation.

    Glacier Flexible Retrieval restores asynchronously in minutes to hours, which violates the requirement that reports load with millisecond latency.

  • c
    Keep new reports in S3 Standard and add a lifecycle rule that transitions them to S3 Standard-IA 30 days after creation. Correct

    Standard absorbs the frequent first-month access without retrieval fees, and Standard-IA then provides millisecond access at a much lower storage price for monthly reads, cleanly satisfying its 30-day minimum duration.

  • d
    Keep new reports in S3 Standard and leave them there, with no lifecycle rule, until the two-year retention ends.

    This meets every access requirement but pays the highest per-GB storage price for two years when Standard-IA would serve the same monthly, millisecond reads for much less after day 30.

The concept

S3 class selection maps each phase of an access pattern to the cheapest class that still meets it. Standard-IA suits data accessed roughly monthly that must stay immediately available, with a 30-day minimum storage duration and a per-GB retrieval fee.

Why that’s the answer

The reports have two phases: frequent access for 30 days, then occasional access needing millisecond reads. Standard is right for phase one because IA-class retrieval fees would dominate under frequent access. Transitioning to Standard-IA at day 30 is the earliest supported IA transition, satisfies the 30-day minimum duration, and keeps millisecond access at a much lower storage price. Glacier Instant Retrieval keeps millisecond access but its retrieval fees are priced for roughly quarterly access, so a-few-times-per-month reads make it more expensive than Standard-IA. Glacier Flexible Retrieval fails the millisecond requirement outright because restores are asynchronous. Staying in Standard for two years over-delivers: it meets every requirement but is not the cheapest option that does.

How to reason it out
  1. Split the lifecycle into phases: frequent access for 30 days, then a-few-times-per-month access with millisecond reads for two years.
  2. Assign Standard to the frequent phase, since any IA or Glacier class would charge retrieval fees on every download.
  3. For the second phase, require millisecond access, which eliminates Glacier Flexible Retrieval.
  4. Compare Standard-IA and Glacier Instant Retrieval at the stated frequency: monthly access favors Standard-IA because Glacier Instant Retrieval retrieval fees are tuned for quarterly access.
  5. Verify the trap: the 30-day transition satisfies Standard-IA's 30-day minimum duration, so no minimum-duration penalty applies.

Exam tip: Monthly access with millisecond reads is the Standard-IA pattern; quarterly access is Glacier Instant Retrieval's.

Cost-Optimized Storage: S3 Classes, Lifecycle Policies, and EBS Economics — the lesson that teaches this.

Question 5Design Secure Architectures

A solutions architect creates a new member account in AWS Organizations and attaches a service control policy to it that explicitly allows s3:* and ec2:*. A newly created IAM user in the account has no IAM policies attached. When the user attempts to list S3 buckets, the request fails with an access denied error. What explains this behavior?

Choose one.

  • a
    SCP changes take up to 24 hours to reach a newly created member account, so the S3 allow is not yet in effect for its IAM users.

    SCP changes take effect within minutes, not a day. Waiting would not help either, because the SCP does not grant the user anything.

  • b
    An SCP attached directly to an account is ignored until the same policy is attached to the organizational unit that contains it.

    SCPs can be attached to the organization root, to OUs or directly to accounts, and an SCP attached to an account takes effect there.

  • c
    An SCP only filters what IAM policies allow, so the user still needs an identity-based policy that allows the S3 actions. Correct

    Correct. An SCP sets the maximum permissions available in the account but grants nothing. With no identity-based policy, the user has no allow, so the request is implicitly denied.

  • d
    Each S3 bucket needs a bucket policy that names the IAM user before an IAM identity in the account can list the buckets.

    Listing buckets (s3:ListAllMyBuckets) is an account-level action authorized by an identity-based policy; bucket policies are not required for same-account access.

The concept

Service control policies are guardrails: they define the maximum permissions available to principals in member accounts, but they never grant permissions. An action succeeds only if an identity-based or resource-based policy allows it and every applicable SCP permits it.

Why that’s the answer

The user has no identity-based policy, so nothing grants the S3 action and the request is implicitly denied. The SCP's allow statements only mean that S3 and EC2 are not filtered out; they do not give anyone access. The propagation explanation is wrong because SCP changes apply within minutes and would not grant access anyway. SCPs attached directly to accounts are valid. Bucket policies are not needed for a same-account principal to list buckets; an identity-based policy is.

How to reason it out
  1. Note that the user has no IAM policies at all.
  2. Recall that an SCP sets a ceiling and never grants a permission.
  3. With no allow anywhere, the default implicit deny applies.
  4. Fix: attach an identity-based policy (preferably to a group) that allows the needed S3 actions.

Exam tip: An SCP allow is permission to be granted, not a grant; someone still has to write an IAM policy.

Designing Secure Access: IAM Best Practices, Roles, and AWS Organizations — the lesson that teaches this.

The SAA-C03 question bank, by domain

The bank is built to the exam's own weighting, so the practice you get reflects the marks that are actually on offer — not whichever domain was easiest to write questions for.

Published SAA-C03 practice questions per exam domain
DomainExam weightTopicsQuestions
Design Secure Architectures30%3168
Design Resilient Architectures26%2140
Design High-Performing Architectures24%5135
Design Cost-Optimized Architectures20%4112
Total100%14555

Practise SAA-C03 one domain at a time

How SAA-C03 questions are worded

Most SAA-C03 questions are not asking whether you can recall a definition. They describe a situation and ask which option satisfies it — so the skill being tested is reading the requirement precisely and eliminating options that fail it.

Single-response vs multiple-response

A single-response question has exactly one right answer. A multiple-response question tells you how many to pick ("Choose TWO") and there is no partial credit — getting one of the two right scores nothing. Read that instruction before you read the options.

Read the last line first

The final sentence is the actual question; everything before it is scenario. Read it first, then read the scenario knowing what you are looking for. It stops you from building an answer in your head that the question never asked for.

Hunt for the qualifier

Most scenarios turn on one word — MOST cost-effective, LEAST operational overhead, with the LEAST latency, without changing application code. Two options are frequently both technically correct, and the qualifier is the only thing separating them.

Eliminate, then choose

Distractors are almost always real AWS services doing a real job — just not this job. Rule out the ones that break a stated constraint before you compare what's left. On a question you truly don't know, eliminating two options turns a guess into a coin flip.

Practise SAA-C03 from your browser

The SaveMyCert Chrome extension opens a daily drill of 5 SAA-C03 questions in the side panel, with the full explanation behind every answer. No account needed.

Get the Chrome extension (opens in a new tab)

Beyond SAA-C03 practice

SAA-C03 practice questions: your questions

Yes. You can answer 5 questions a day with no account at all, and a free account raises that to 30 a day across the full 555-question SAA-C03 bank, with an explanation on every option. Pro removes the daily cap entirely.

Source

Exam structure, domain weights and scoring on this page come from the official SAA-C03 exam guide.