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

Free DVA-C03 practice questions

Drill exam-realistic AWS Certified Developer – Associate (DVA-C03) questions by domain, with an explanation on every option — not just the right one. 5 fully worked examples are further down this page, answers included.

Question bank
480
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.

Review what you missed

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 DVA-C03 questions, fully explained

Real questions from the DVA-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 1Development with AWS Services

A developer maintains an order application in which the web tier calls the fulfillment service directly over HTTP. During sales events the fulfillment service slows down, web requests time out, and orders are lost. The web tier must keep accepting orders even when fulfillment is slow or unavailable, and the orders can be fulfilled a few minutes later. What should the developer do?

Choose one.

  • a
    Place an Application Load Balancer in front of a larger group of fulfillment service instances

    A load balancer spreads requests across instances, but the web tier still waits on fulfillment synchronously. If the service is slow or down, orders still fail.

  • b
    Have the web tier send each order to an Amazon SQS queue that the fulfillment service polls Correct

    The queue stores orders durably and absorbs bursts. The web tier only needs SQS to be available, and the fulfillment service works through the backlog at its own pace.

  • c
    Have the web tier call the fulfillment service through an Amazon API Gateway REST API

    API Gateway adds a managed front door but the call is still synchronous request/response, so a slow backend still times out the web tier.

  • d
    Raise the HTTP client timeout in the web tier and retry each failed fulfillment call inline

    Longer timeouts and inline retries keep the web request waiting even longer, and an unavailable service still loses the order.

The concept

A queue between two components removes the requirement that both are available and fast at the same moment.

Why that’s the answer

The requirement is that the producer keeps working when the consumer is slow or down, and that work can happen later. That is the definition of temporal decoupling, which an SQS queue provides: the web tier enqueues and returns, and the fulfillment service consumes when it can. A load balancer, API Gateway and longer timeouts all keep a synchronous dependency in place.

How to reason it out
  1. Identify the coupling: the web tier waits for fulfillment on every request.
  2. Note that a delay of minutes is acceptable, so the work can be asynchronous.
  3. Choose the component that stores work durably between producer and consumer: an SQS queue.
  4. Reject options that only scale or front the synchronous call.

Exam tip: If the caller does not need the result now, put a queue between it and the slow dependency.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 2Security

A developer is building a mobile app in which users sign up and sign in with an email address and password. After signing in, the app must upload each user's photos directly to an Amazon S3 bucket. The app must not contain long-term AWS credentials, and the team does not want to run a backend for uploads. What should the developer do?

Choose one.

  • a
    Sign users in with an Amazon Cognito user pool and exchange its tokens at a Cognito identity pool for temporary credentials Correct

    The user pool handles sign-up and sign-in and issues JWTs. The identity pool trades those tokens for temporary AWS credentials from an IAM role, which the app uses to call S3 directly.

  • b
    Sign users in with an Amazon Cognito user pool and send its ID token to Amazon S3 in the Authorization header of each upload

    S3 does not accept Cognito JWTs. S3 requests must be signed with AWS credentials (SigV4), so the token must first be exchanged for credentials.

  • c
    Sign users in with an Amazon Cognito identity pool alone and store each user's password hash in the identity pool's dataset

    An identity pool does not provide a user directory or password sign-in. It federates identities from providers such as a user pool and vends credentials.

  • d
    Create an IAM user for each app user at sign-up and store that user's access keys in the device keychain

    This puts long-term credentials on devices, which the stem rules out, and IAM users are not meant to represent application end users.

The concept

A Cognito user pool is a user directory that authenticates users; a Cognito identity pool exchanges an identity token for temporary AWS credentials.

Why that’s the answer

The app needs two things: a place for users to sign up and sign in, and AWS credentials to call S3 without a backend. The user pool provides the first and returns JWTs. AWS services such as S3 only accept SigV4-signed requests, so the identity pool exchanges the user pool token for short-lived credentials from its authenticated role. Sending a JWT straight to S3 fails, and per-user IAM access keys break the no-long-term-credentials requirement.

How to reason it out
  1. Split the need into authentication (who is the user) and authorization to call AWS APIs.
  2. Use a user pool for sign-up and sign-in.
  3. Use an identity pool to turn the user pool token into temporary AWS credentials.
  4. Reject options that send JWTs to AWS service APIs or embed access keys.

Exam tip: User pool = who you are (JWTs); identity pool = temporary AWS credentials.

DVA-C03 Authentication and Authorization: IAM, Cognito, STS and Signed URLs — the lesson that teaches this.

Question 3Testing and Deployment

A developer adds a CodeBuild project that builds a container image and pushes it to an Amazon ECR private repository in the same account. The docker build step succeeds, but the docker push step fails with the message "no basic auth credentials". The build role already has the ECR push permissions. What should the developer add to the buildspec?

Choose one.

  • a
    Set privileged mode on the build project so Docker can reach the registry

    Privileged mode lets the build container run the Docker daemon. The image already built, so the daemon works; the push fails because Docker holds no credentials for ECR.

  • b
    Run aws ecr get-login-password and pipe it to docker login for the registry Correct

    Docker needs a registry credential before it can push. get-login-password returns an ECR authorization token that docker login stores for the registry URI, which is exactly what the error says is missing.

  • c
    Add the repository URI to the env variables section of the buildspec file

    Storing the URI in a variable only changes how the tag is written. It gives Docker no credential, so the push still has no auth.

  • d
    Run aws ecr describe-repositories to warm the registry session before pushing

    describe-repositories is an ordinary API call made with the role's AWS credentials. It does not configure Docker, which keeps its own credential store.

The concept

Docker clients authenticate to an ECR registry with a short-lived authorization token, not with IAM credentials directly.

Why that’s the answer

The Docker CLI cannot sign requests with AWS credentials, so ECR issues an authorization token through GetAuthorizationToken. The usual command is aws ecr get-login-password piped to docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com, run in the pre_build phase. The token lasts 12 hours. Privileged mode is about running Docker at all, and IAM API calls do not populate Docker's credential store.

How to reason it out
  1. Read the error: "no basic auth credentials" means Docker has no login for the registry.
  2. Note the build succeeded, so the Docker daemon and privileged mode are fine.
  3. Recall that ECR issues a Docker password through get-login-password.
  4. Log Docker in to the registry URI before the push step.

Exam tip: Docker talks to ECR only after docker login with the token from aws ecr get-login-password.

DVA-C03 Deployment Artifacts: Dependencies, ECR Images, AppConfig and API Gateway Stages — the lesson that teaches this.

Question 4Troubleshooting and Optimization

A developer's AWS Lambda function processes uploaded invoices and calls a third-party tax API that sometimes takes 5–8 seconds to respond. Some uploads are never processed. For those requests, the function's CloudWatch Logs show `Task timed out after 3.00 seconds`, and the REPORT lines show Max Memory Used well below the configured memory. What should the developer change first?

Choose one.

  • a
    Raise the function's timeout above the API's slowest response time Correct

    The log says the invocation hit its 3-second timeout while waiting on an API that can take 8 seconds. A longer timeout lets those calls finish.

  • b
    Raise the function's memory to the next larger configured size

    More memory adds CPU, which helps compute-bound code. Here the function is waiting on a network call, and memory use is already low.

  • c
    Raise the function's reserved concurrency for the busiest hours

    Reserved concurrency controls how many copies run at once. Each copy would still time out after 3 seconds.

  • d
    Raise the retry attempts in the function's asynchronous invoke config

    A retry gets the same 3-second limit and the same slow API, so it would time out again.

The concept

Lambda logs show which limit an invocation hit, and the fix should match that limit.

Why that’s the answer

'Task timed out after 3.00 seconds' means the invocation reached the function's configured timeout. The dependency can take up to 8 seconds, so the timeout must be longer than that. Memory is not the problem, because Max Memory Used is low and the time is spent waiting on I/O. Concurrency and retries change how many invocations run or how often they run, but every one of them would still stop at 3 seconds.

How to reason it out
  1. Read the error line: it names the timeout and its value.
  2. Compare the timeout with the dependency's worst-case latency.
  3. Check REPORT Max Memory Used to rule out memory pressure.
  4. Raise the timeout (and consider a client-side timeout on the API call).

Exam tip: 'Task timed out after N seconds' points at the function timeout, not memory or concurrency.

DVA-C03 Root Cause Analysis: Lambda and API Errors, Logs Insights, X-Ray, Deployment Logs and AI Troubleshooting — the lesson that teaches this.

Question 5Development with AWS Services

An upload handler synchronously calls a thumbnail service, a metadata service and a notification service in sequence. If any one of them fails, the whole upload fails. The team wants each downstream service to process every upload independently and at its own pace, and wants to add new consumers later without changing the upload handler. Which combination of steps meets these requirements? (Select TWO.)

Choose TWO.

  • a
    Have the handler publish one message per new file to an Amazon SNS topic Correct

    The handler publishes once and no longer knows who consumes the event, so new consumers can subscribe without any change to the handler.

  • b
    Subscribe one Amazon SQS queue to an Amazon SNS topic and have the three services poll that queue

    SNS delivers one copy to that queue, and consumers sharing a queue compete for messages, so each upload would reach just one of the services instead of each of them.

  • c
    Invoke each downstream service as a Lambda function with the RequestResponse invocation type

    RequestResponse is synchronous invocation, so the handler still waits on each service and still fails when one of them fails.

  • d
    Place the downstream services behind one Application Load Balancer with path-based rules

    Path-based routing sends each request to one target group; the handler would still call each service synchronously and know about each one.

  • e
    Give each downstream service its own Amazon SQS queue subscribed to an Amazon SNS topic Correct

    Each service gets its own durable copy of every event and processes it at its own pace; a failure in one service no longer affects the others.

The concept

SNS-to-SQS fan-out decouples one producer from many independent consumers.

Why that’s the answer

Two separate problems are stated: the producer must not know its consumers (so it can grow without code changes), and each consumer must be isolated and able to work at its own pace. SNS solves the first by delivering one published message to every subscriber. An SQS queue per subscriber solves the second by buffering each consumer's copy. A single shared queue is the tempting near-twin, but competing consumers split messages between them instead of each receiving all of them.

How to reason it out
  1. Separate the two requirements: unknown future consumers, and independent processing.
  2. Publish/subscribe (SNS) removes the producer's knowledge of consumers.
  3. A queue per consumer gives each one a durable buffer and isolates failures.
  4. Remember that consumers sharing one queue compete for messages.

Exam tip: One copy to every consumer is SNS fan-out; a queue per consumer lets each one fail and recover alone.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

The DVA-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 DVA-C03 practice questions per exam domain
DomainExam weightTopicsQuestions
Development with AWS Services30%3144
Security26%3126
Testing and Deployment22%3105
Troubleshooting and Optimization22%3105
Total100%12480

Practise DVA-C03 one domain at a time

How DVA-C03 questions are worded

Most DVA-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 DVA-C03 from your browser

The SaveMyCert Chrome extension opens a daily drill of 5 DVA-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 DVA-C03 practice

DVA-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 480-question DVA-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 DVA-C03 exam guide.