DVA-C02 Sprint Dashboard

21 days · 1–1.5 hrs/day · Maarek (Udemy) + Whizlabs + TutorialsDojo mapped out

SAA background ✓ Maarek videos pinpointed Whizlabs 504 Q ready
32%
Development
26%
Security
24%
Deployment
18%
Troubleshooting

Your progress

Week 1
0%
Week 2
0%
Week 3
0%
0%
Sprint complete
0 of 0 tasks done
D1
Diagnostic — take the cold exam first
Maps your real gaps. Most critical day.
START HERE90 min
Do NOT open Maarek today
Opening the course before the diagnostic defeats the point. You'll anchor on what you just watched instead of seeing real gaps.
↩ Skip Maarek on Day 1
Take the Whizlabs free test — 65 questions, timed
whizlabs.com → DVA-C02 → "1 Free test". Set timer to 130 min. No looking anything up. A low score is the goal — it's a map, not a grade.
45 min
Categorize every wrong answer by domain + service
For each wrong Q, note: Domain (Dev / Sec / Deploy / Debug) + Service (Lambda, DynamoDB, IAM…). Tally counts. This is your priority list for the next 20 days.
30 min
Write your 3 weakest services on paper and pin them
Literally write them down somewhere visible. These get priority 1 treatment in weeks 1–2.
15 min
Open Day 1 Gap Log — all 33 wrong answers analysed
Your diagnostic results: Deployment 31% · Troubleshooting 36% · Security 61% · Development 60%
D2
Beanstalk deployment modes — all 5 cold
Your #1 gap — Q18 and Q30 both lost here
~80 min
Memorize the 5 deployment modes as a table
All-at-once = fastest, downtime. Rolling = batches, reduced capacity. Rolling with additional batch = no capacity loss. Immutable = new instances, safest, slowest. Blue/Green = swap URL, instant rollback. "Full capacity throughout" = Immutable OR Rolling with additional batch (your Q30 miss).
▶ Watch: Elastic Beanstalk Overview + Elastic Beanstalk Deployment Modes
20 min
Worker tier — cron.yaml for periodic tasks (your Q18 miss)
Worker tier periodic tasks require exactly cron.yaml in the source bundle root. Not cron.config, not appspec.yaml. Write it out 3 times if needed — this is a pure memorization question.
▶ Watch: Elastic Beanstalk Overview (Worker environment section)
10 min
.ebextensions config files — what they do and where they live
.ebextensions/ folder in source bundle root. Files end in .config. Used to configure environment (install packages, run commands, set env vars). Different from cron.yaml.
▶ Watch: Elastic Beanstalk Deployment Modes (ebextensions section)
10 min
25 Q Beanstalk (Whizlabs DVA-C02). Target: get Q18 and Q30 type questions right.
For every deployment mode question — write out which modes maintain full capacity before picking an answer.
25 min
D3
CodeDeploy — AppSpec + Lambda traffic shifting
Q25 and Q34 both lost here — pure concept gaps
~85 min
AppSpec file for Lambda — what it specifies and where version lives (your Q25 miss)
AppSpec.yaml for Lambda specifies: (1) function name, (2) the version to deploy, (3) validation hooks. The version is declared IN the AppSpec file — not via aliases. Aliases are for traffic routing, not version declaration in CodeDeploy.
▶ Watch: CodeDeploy Overview + CodeDeploy for Lambda and ECS
15 min
Lambda traffic shifting: All-at-Once vs Canary vs Linear (your Q34 miss)
All-at-Once = 100% traffic shifted instantly. Canary = small % first (e.g. 10% for 10 min) then rest. Linear = gradual equal increments over time. "Instantaneously" in any question = All-at-Once. Every time.
▶ Watch: CodeDeploy for Lambda and ECS
12 min
CodeDeploy EC2 lifecycle hooks — BeforeInstall, AfterInstall, ApplicationStart, ValidateService
appspec.yml hooks run in this order. ValidateService is the last hook — used to verify deployment worked. Know which hooks you can use to run scripts.
▶ Watch: CodeDeploy for EC2 and ASG ↩ Skip: CodeDeploy hands-on console
12 min
CodeBuild: buildspec.yml phases + CodePipeline: stages and artifacts
buildspec.yml phases: install → pre_build → build → post_build. CodePipeline stages: Source → Build → Test → Deploy. Artifacts pass between stages via S3.
▶ Watch: CodeBuild Overview + CodePipeline Overview
12 min
25 Q CodeDeploy + CodeBuild + CodePipeline (Whizlabs)
For every traffic shifting Q — write All-at-Once / Canary / Linear meanings before reading options.
25 min
D4
CloudWatch + X-Ray + Lambda metrics
Q10, Q21, Q24 — three specific concept gaps
~80 min
High-resolution custom metrics — 10-second alarm periods (your Q10 miss)
Standard metrics = 1-minute minimum. High-resolution custom metrics = 1-second granularity, alarms every 10 or 30 seconds. "Monitor every 10 seconds" = high-resolution custom metric. CloudTrail = API logging, not monitoring metrics.
▶ Watch: CloudWatch Metrics + CloudWatch Alarms
15 min
IteratorAge — Lambda + Kinesis metric for falling behind (your Q21 miss)
IteratorAge = age of the last record in each batch Lambda reads from Kinesis. High IteratorAge = Lambda falling behind, records aging toward retention limit. Throttles = invocations exceeding concurrency. ConcurrentExecutions = aggregate across all functions. "Data not delivered fast enough from Kinesis" = IteratorAge.
▶ Watch: CloudWatch Metrics (Lambda section) + Kinesis Data Streams Overview
12 min
CloudWatch Logs Insights, Log Groups, subscription filters → Lambda/Kinesis
Log Insights = query language for logs. Subscription filters stream logs to Lambda, Kinesis, or Firehose in real-time. Metric filters extract metric data from log events.
▶ Watch: CloudWatch Logs + CloudWatch Logs Insights
10 min
X-Ray with Lambda — IAM role needs AWSXRayWriteOnlyAccess (your Q24 miss)
Lambda has X-Ray daemon built in — you don't install it. To enable: (1) add AWSXRayWriteOnlyAccess to the Lambda execution role, (2) enable active tracing in Lambda config. No daemon install needed. No "X-Ray function" — it's the X-Ray service.
▶ Watch: X-Ray Overview + X-Ray Instrumentation ↩ Skip: X-Ray hands-on console
12 min
25 Q CloudWatch + X-Ray + CloudTrail (Whizlabs)
Watch for CloudTrail vs CloudWatch confusion — CloudTrail = API calls audit log, CloudWatch = metrics/logs/alarms.
25 min
D5
SQS + CloudFormation + DynamoDB expressions
Q4, Q11, Q12 — quick wins, single concept each
~75 min
SQS visibility timeout — increase with ChangeMessageVisibility (your Q11 miss)
Multiple consumers getting same message = visibility timeout expired before processing finished. Fix = INCREASE visibility timeout via ChangeMessageVisibility API. UpdateMessageVisibility does not exist. Decreasing makes it worse.
▶ Watch: SQS Message Visibility Timeout + SQS Dead Letter Queue + SQS Long Polling
12 min
SQS standard vs FIFO, DLQ, delay queue — full picture
Standard = at-least-once, best-effort ordering. FIFO = exactly-once, ordered, 3000 msg/s. DLQ = after MaxReceiveCount failures. Delay queue = postpone delivery up to 15 min.
▶ Watch: SQS Overview + SQS FIFO Queues
12 min
CloudFormation Parameters section — runtime values (your Q12 miss)
Parameters = values passed INTO template at runtime. Outputs = values exported FROM stack. Metadata = extra template info. Transform = SAM declaration. "Base creation on runtime values" = Parameters section every time.
▶ Watch: CloudFormation Overview
10 min
DynamoDB expression types — Projection vs Filter vs Condition vs Update (your Q4 miss)
Projection Expression = which attributes to return. Filter Expression = filter results after read (still consumes RCU). Condition Expression = conditional writes. Update Expression = how to modify an item. "Return only Colour and Size" = Projection Expression.
▶ Watch: DynamoDB Basic APIs
10 min
25 Q: SQS + CloudFormation + DynamoDB (Whizlabs)
25 min
D6
ECS IAM + DynamoDB GSI + API Gateway + S3 CORS
Q26, Q28, Q29, Q33 — all single concept gaps
~80 min
ECS task role vs instance role — and container network isolation (Q28 + Q33)
Task role = IAM permissions for the container (assign per task, not instance). Instance role = for the EC2 host running ECS. By default containers CAN access instance profile credentials — security risk. Block with ECS_AWSVPC_BLOCK_IMDS=true. Network isolation between containers = Security Groups on EC2 instances.
▶ Watch: ECS IAM Roles + ECS Overview
15 min
DynamoDB GSI — no consistent reads, only eventual (your Q26 miss)
GSI does NOT support ConsistentRead=true. Attempting it throws a ValidationException. For "latest results with least RCU on GSI" = Query with EventualRead. Eventual reads cost half the RCU of consistent reads.
▶ Watch: DynamoDB WCU and RCU + DynamoDB Basic APIs
10 min
API Gateway method vs integration — front-end vs back-end (your Q29 miss)
Method request/response = frontend (client-facing side). Integration request/response = backend (how API GW talks to Lambda/backend). "Control front-end API behavior" = Method request + Method response. Never pick Integration for front-end questions.
▶ Watch: API Gateway Integration Types
10 min
S3 CORS elements — AllowedMethod controls HTTP verbs (your Q13 miss)
AllowedOrigin = which domains. AllowedMethod = which HTTP methods (GET/PUT/POST/DELETE/HEAD). AllowedHeader = which request headers. MaxAgeSeconds = preflight cache duration. "Only allow GET" = AllowedMethod element.
▶ Watch: S3 CORS
8 min
25 Q: ECS + DynamoDB + API Gateway + S3 (Whizlabs)
25 min
D7
Lambda deep dive — now with context
Triggers · concurrency · layers · versions · SAM
~90 min
Lambda invocation types — sync vs async vs event source mapping
Sync = API GW calls Lambda directly, waits for response. Async = S3/SNS triggers, Lambda retries on failure. Event source mapping = SQS/Kinesis polling, Lambda reads batches. Error behavior differs for each.
▶ Watch: Lambda Overview + Synchronous Invocations + Asynchronous Invocations + Event Source Mapping
20 min
Lambda concurrency — reserved vs provisioned, throttling
Default 1000 concurrent limit (soft, per region). Reserved = cap + guarantee for that function. Provisioned = eliminates cold start. Throttled = 429 error returned to caller.
▶ Watch: Lambda Concurrency and Throttling
12 min
Lambda versions, aliases, layers
Versions = immutable snapshots. Aliases = mutable pointer to version (used for blue/green Lambda). Layers = shared code/dependencies across functions. Alias weighted routing = canary deployments.
▶ Watch: Lambda Versions and Aliases + Lambda Layers ↩ Skip: Lambda hands-on console demos
12 min
If low energy: 20 Q Lambda + Beanstalk mixed (Whizlabs)
Minimum viable day. Keep the streak alive.
25 min
If higher energy: Whizlabs full practice test #1 — 65 Q timed
Week 1 benchmark. Target 58–65% — you've now covered your actual gaps. Compare domain scores to your Day 1 diagnostic. Deployment should be up from 31%.
130 min
D8
IAM deep dive
Policies · roles · cross-account · SCP — 26% of exam starts here
~85 min
IAM: identity-based vs resource-based policies, policy evaluation logic
Explicit deny always wins. If no explicit allow → implicit deny. Resource-based policy on S3 allows cross-account without assuming a role.
▶ Watch: IAM Policies (Advanced) + IAM Policy Evaluation Logic ↩ Skip: IAM MFA setup hands-on (you know this from SAA)
15 min
IAM roles for EC2 + Lambda, cross-account role assumption
Never embed credentials in code — attach an IAM role. Cross-account: Account A assumes role in Account B using sts:AssumeRole. Trust policy controls who can assume.
▶ Watch: IAM Roles for EC2 + AWS STS & Cross Account Access
12 min
IAM best practices + permission boundaries
Permission boundary = max permissions an entity can have (caps what SCPs/policies can grant). Used to delegate admin safely.
▶ Watch: IAM Best Practices + IAM Roles vs Resource Based Policies
10 min
30 Q IAM (Whizlabs). Watch for policy evaluation logic traps.
Common trap: "Deny in SCP but Allow in identity policy → what happens?" Deny wins.
25 min
D9
Cognito + KMS
Auth flows + encryption — most tested security topics
~80 min
Cognito User Pools vs Identity Pools — know this cold
User Pool = sign up / sign in, returns JWT. Identity Pool = exchange token for temporary AWS credentials (IAM). Exam loves asking which one to use. Tip: if they say "authenticate", User Pool. If they say "access AWS resources", Identity Pool.
▶ Watch: Cognito User Pools Overview + Cognito Identity Pools + Cognito User Pools vs Identity Pools
18 min
KMS: CMK types, GenerateDataKey, envelope encryption
Envelope encryption = KMS encrypts a data key, data key encrypts the data. GenerateDataKey returns plaintext + encrypted copy. You encrypt data locally, send encrypted data key alongside. KMS never sees your data.
▶ Watch: KMS Overview + KMS Envelope Encryption + KMS Limits
15 min
KMS key policies, grants, multi-region keys
Unlike IAM, KMS key policy must explicitly allow the account root — otherwise even admin can't use the key. Grants = programmatic temp access to a key.
▶ Watch: KMS Key Policies + KMS Multi Region Keys ↩ Skip: KMS hands-on console
12 min
25 Q: Cognito + KMS (Whizlabs or TutorialsDojo)
20 min
D10
Secrets Manager + Parameter Store + S3 encryption
Credential management — exam tests this heavily
~75 min
Secrets Manager: auto-rotation, RDS integration, cost
Secrets Manager = designed for secrets, auto-rotates (uses Lambda), costs money. Use when: DB credentials that need automatic rotation.
▶ Watch: Secrets Manager Overview
10 min
SSM Parameter Store: Standard vs Advanced, SecureString, hierarchies
Parameter Store = free (Standard tier), no auto-rotation, can use KMS to encrypt (SecureString). Use for config/non-secret params. Exam decision: need rotation? Secrets Manager. Just storing config? Parameter Store.
▶ Watch: SSM Parameter Store Overview
10 min
S3 encryption: SSE-S3 vs SSE-KMS vs SSE-C vs Client-side
SSE-S3 = AWS manages key (AES-256). SSE-KMS = you own key in KMS, audit trail in CloudTrail. SSE-C = you provide key per request (AWS doesn't store it). Client-side = encrypted before upload.
▶ Watch: S3 Server Side Encryption + S3 Client Side Encryption
12 min
25 Q: Secrets Manager + Parameter Store + KMS + Cognito mixed
20 min
D11
CodeCommit + CodeBuild + CodeDeploy + CodePipeline
CI/CD — 24% of exam, big developer blind spot
~90 min
CodeCommit: repos, triggers, notifications, branch protection
Git-compatible hosted repo. Auth via HTTPS (Git credentials) or SSH. Triggers → SNS/Lambda. Note: AWS announced CodeCommit end-of-new-customer enrollment but it's still in DVA-C02 scope.
▶ Watch: CodeCommit Overview + CodeCommit Extras
10 min
CodeBuild: buildspec.yml, phases, environment variables, artifacts, caching
buildspec.yml is the critical config file. Phases: install → pre_build → build → post_build. Artifacts go to S3. Cache dependencies to speed up builds. Env vars from Parameter Store/Secrets Manager.
▶ Watch: CodeBuild Overview + CodeBuild Extras
15 min
CodeDeploy: appspec.yml, deployment groups, hooks, deployment types
appspec.yml controls lifecycle hooks: BeforeInstall, AfterInstall, ApplicationStart, ValidateService. Deployment types: In-place (EC2/on-prem), Blue/Green (EC2 + Lambda + ECS). Lambda: linear or canary traffic shifting.
▶ Watch: CodeDeploy Overview + CodeDeploy for EC2 and ASG + CodeDeploy for Lambda and ECS
18 min
CodePipeline: stages, actions, artifacts, manual approval, integrations
Pipeline = source → build → test → deploy stages. Each stage has actions. Artifacts pass between stages via S3. Manual approval action pauses for human sign-off. EventBridge triggers on state changes.
▶ Watch: CodePipeline Overview + CodePipeline Extras ↩ Skip: All CI/CD hands-on console walkthroughs
12 min
25 Q: CodeBuild + CodeDeploy + CodePipeline (Whizlabs)
20 min
D12
Elastic Beanstalk + CloudFormation + SAM
Deployment strategies + IaC
~85 min
Beanstalk: deployment modes, .ebextensions, environment tiers
Deployment modes: all-at-once (fastest, downtime), rolling, rolling with additional batch (no capacity loss), immutable (safest, double capacity briefly), blue/green (swap URLs). Worker vs Web tier.
▶ Watch: Elastic Beanstalk Overview + Elastic Beanstalk Deployment Modes
15 min
CloudFormation: templates, stacks, change sets, DeletionPolicy, cross-stack
DeletionPolicy: Retain (keep resource), Snapshot (RDS), Delete. Cross-stack: Export + Fn::ImportValue. Nested stacks = reusable templates. Change sets = preview changes before applying.
▶ Watch: CloudFormation Overview + CloudFormation StackSets + CloudFormation Drift ↩ Skip: CloudFormation hands-on console
18 min
SAM: Transform header, Globals, sam build/package/deploy, SAM Accelerate
SAM template requires: Transform: AWS::Serverless-2016-10-31 at top. Shorthand resource types: AWS::Serverless::Function, ::Api, ::Table. SAM CLI: sam local invoke for local testing.
▶ Watch: SAM Overview + SAM Summary
12 min
20 Q: Beanstalk + CloudFormation + SAM (Whizlabs)
20 min
D13
X-Ray + CloudWatch + CloudTrail
Troubleshooting domain — 18%, easier marks
~80 min
CloudWatch: Logs, Metrics, Alarms, Dashboards, Log Insights
Custom metrics need CloudWatch agent. Log Insights = query language for logs. Alarm states: OK, ALARM, INSUFFICIENT_DATA. Composite alarms = combine multiple. Log Subscription Filters → Kinesis/Lambda.
▶ Watch: CloudWatch Metrics + CloudWatch Logs + CloudWatch Alarms + CloudWatch Logs Insights + CloudWatch Events (now EventBridge)
18 min
X-Ray: segments, subsegments, sampling, annotations vs metadata, groups
X-Ray daemon receives UDP data from SDK and batches to X-Ray service. Annotations = indexed key-value (filterable in console). Metadata = not indexed. Sampling rules reduce cost — only trace % of requests.
▶ Watch: X-Ray Overview + X-Ray Instrumentation + X-Ray Concepts
15 min
CloudTrail: management events vs data events, Insights, integration with CloudWatch
CloudTrail logs API calls (who did what when). Management events on by default. Data events (S3 object access, Lambda invocations) must be enabled — cost extra. CloudTrail Insights detects unusual API activity.
▶ Watch: CloudTrail Overview ↩ Skip: CloudWatch hands-on + X-Ray hands-on labs
10 min
25 Q: CloudWatch + X-Ray + CloudTrail (Whizlabs or TutorialsDojo)
20 min
D14
Full mock exam #2 + deep review
Week 2 benchmark — target 65–72%
2.5 hrs
Whizlabs full practice test #2 — 65 Q, timed 130 min
Exam conditions: no pausing, phone away, no looking things up. Flag uncertain Qs and move on.
130 min
Review all wrong answers — tally by domain
Which domain is still your weakest? That becomes Week 3 priority #1. Write it down.
40 min