AWS DVA-C02: Deployment Domain Study Guide (24%)
This domain tests your ability to select and configure AWS CI/CD services, manage infrastructure as code, and deploy containerized and serverless applications. Expect scenario-based questions requiring you to choose the right deployment strategy, fix broken pipeline configurations, or identify the correct file format for a given tool.
AWS CodeCommit
CodeCommit is a managed Git service. Exam questions focus on access control (IAM policies vs. Git credentials vs. SSH keys), branching strategies, and trigger integration with Lambda or SNS.
- HTTPS Git credentials and SSH keys are per-IAM-user; you cannot attach them to roles
- Repository triggers fire on push events; use them to invoke Lambda or notify SNS
- Trap: CodeCommit does not natively integrate with GitHub Actions; use CodePipeline for orchestration
AWS CodeBuild
CodeBuild executes builds defined in buildspec.yml, which must live in the source root (or be specified explicitly in the project). Know the four phases: install, pre_build, build, post_build.
- Environment variables: set in the project config or directly in
buildspec.yml; use Parameter Store or Secrets Manager references to avoid plaintext secrets (parameter-storeandsecrets-managerkeys underenv) - Artifacts are uploaded to S3; specify
files,base-directory, anddiscard-pathscarefully - Build cache (S3 or local) speeds up dependency installation — common optimization question
- Trap:
post_buildruns even ifbuildfails; don't assume it only runs on success
AWS CodeDeploy
CodeDeploy handles deployments to EC2, on-premises servers, Lambda, and ECS. The AppSpec file format differs by compute type:
| Target | AppSpec format | Key section |
|---|---|---|
| EC2/on-prem | YAML | hooks (BeforeInstall, AfterInstall, ApplicationStart…) |
| Lambda | YAML/JSON | hooks (BeforeAllowTraffic, AfterAllowTraffic) |
| ECS | YAML/JSON | hooks + ContainerName/ContainerPort |
- In-place: rolling replacement on existing instances; no new infrastructure
- Blue/green: new instances/tasks provisioned, traffic shifted, old environment terminated after configurable wait
- Deployment groups define which instances/services are targeted (by tag or ASG)
- Trap: rollbacks require enabling them explicitly or configuring CloudWatch alarm triggers; they are not automatic by default
AWS CodePipeline
CodePipeline orchestrates CI/CD as a series of stages containing actions. Actions have categories: Source, Build, Test, Deploy, Approval, Invoke.
- Manual approval action sends an SNS notification; pipeline pauses until approved or rejected via console/CLI/API
- Cross-region actions require an S3 artifact bucket in each target region
- Pipeline execution is triggered by source changes (CodeCommit, S3, ECR) or on a schedule via CloudWatch Events
- Trap: you cannot skip stages; actions within a stage can run in parallel (by setting
runOrderto the same value), but stages are always sequential
AWS Elastic Beanstalk
Beanstalk abstracts infrastructure but exposes configuration through .ebextensions (YAML/JSON files in a .ebextensions/ directory in your source bundle) and Procfile (for multi-process apps).
Deployment policies — know the tradeoffs:
| Policy | Downtime | Rollback speed | Extra cost |
|---|---|---|---|
| All-at-once | Yes | Redeploy | None |
| Rolling | No | Slow (manual) | None |
| Rolling with additional batch | No | Slow | Slight (extra instances) |
| Immutable | No | Fast (swap) | Yes (double capacity) |
| Blue/green | No | Fast (swap URLs) | Yes |
Unlock with a paid plan
1 more section (about 645 words) continue below. Every paid plan unlocks all DVA-C02 study guides, the full question bank and mock exams, from $4.97/month.