Instiq
Chapter 1 · SDLC Automation·v2.1.0·Updated 8/7/2026·~11 min

What's changed: In-scope coverage: added App Runner, App2Container, AWS Copilot, Serverless Application Repository, CloudShell, AWS CLI/SDK, CodeStar to s3

1.1CI/CD Pipelines

Key points

Understand AWS CI/CD services—CodePipeline (orchestration), CodeBuild (build/test), CodeCommit (source), and CodeArtifact (dependency packages). Automate from code to deployment.

The core of DevOps is continuous integration/delivery (CI/CD). A pipeline automates source → build → test → deploy.

1.1.1CI/CD service composition

Diagram of a continuous delivery pipeline: a change in source (CodeCommit or GitHub) triggers CodePipeline to orchestrate stages — Source → Build (CodeBuild runs build/tests per buildspec, pulling dependencies from CodeArtifact) → Test/approval (a manual approval action can be inserted) → Deploy (to CodeDeploy, etc.); artifacts pass between stages and the pipeline auto-starts on change detection.
CI/CD pipeline composition
  • CodePipeline: orchestrates stages (Source/Build/Test/Deploy), auto-starting on change.
  • CodeBuild: a managed build service running build/tests per buildspec.yml.
  • CodeCommit: a managed Git repository (source); GitHub and others also work as source. Note: since July 2024 CodeCommit is closed to new customers (existing use continues); new setups typically use GitHub etc. with CodeConnections.
  • CodeArtifact: an artifact repository centralizing dependency packages (npm/pip/Maven, etc.).
Exam point

Common on DOP-C02: pipeline orchestration = CodePipeline, build/test = CodeBuild (buildspec.yml), source = CodeCommit/GitHub, dependency packages = CodeArtifact. Insert a manual approval action between stages to gate production deploys.

Note

CodeBuild defines build/test/artifact phases in buildspec.yml. Including tests in the Build stage stops the pipeline on failure, preventing bad code from deploying.

DOP-C02 probes how you structure pipelines and where you enforce control. CodePipeline is built from stages (sequential) and actions (parallel/sequential within a stage), passing artifacts between stages via an artifact store (S3). Source change detection uses EventBridge for CodeCommit and a Webhook via CodeStar Connections (CodeConnections) for GitHub—lower latency than polling. CodeBuild defines buildspec.yml phases (install/pre_build/build/post_build) plus artifacts/cache/reports, and can build Docker images in privileged mode or reach resources inside a VPC. In multi-account setups, the standard pattern has the CI/CD account AssumeRole into each environment account to deploy, sharing the KMS key used to encrypt artifacts across accounts. CodeArtifact can set public repositories (npm/PyPI, etc.) as upstreams to transparently proxy and cache them, unifying internal and public packages behind one endpoint.

RoleServiceKey point
Stage orchestrationCodePipelineAuto-start on change; place approvals/actions
Build/test executionCodeBuildbuildspec.yml; privileged/VPC; test reports
Source controlCodeCommit / GitHubTrigger via EventBridge or CodeConnections
Dependency packagesCodeArtifactProxy public repos via upstreams
Note

Scenario: Dev, staging, and prod are separate accounts and you want one pipeline to deploy through them. → Put CodePipeline in a CI/CD account and AssumeRole into deploy roles prepared in each environment account. Encrypt artifacts with S3 + KMS, granting each account decrypt via the KMS key policy. Insert a manual approval action between staging and prod, and give the prod account only least-privilege roles.

Note

FAQ: For a GitHub source, polling or webhook? Webhook triggering via CodeStar Connections (CodeConnections) is recommended. Polling checks periodically, adding latency to pipeline starts; webhooks trigger immediately on push and reduce wasted runs.

Warning

Exam trap: Wanting to "build a Docker image during the build" but forgetting to enable CodeBuild privileged mode will fail. Also, CodeArtifact is for dependency packages (npm/pip/Maven), whereas container images go to ECR—don’t mismatch the artifact type to its store.

1.1.2Section summary

  • CI/CD = CodePipeline (orchestrate) + CodeBuild (build/test)
  • Source = CodeCommit/GitHub / dependencies = CodeArtifact

Sign in to track progress — Log in.

Quick check

(just a quick review)

Q1. You want to define source→build→test→deploy stages and auto-advance the pipeline on change. What?

Q2. Which managed service runs build and unit tests per buildspec.yml?

Q3. You want to centrally manage npm/pip dependencies and pull them securely in builds. What?

Check your understandingPractice questions for Chapter 1: SDLC Automation

Keep track of your progress

The full study guide is free to read. Sign up free to practice with the question bank, track what you have read, review your mistakes, and highlight passages.