Instiq
Chapter 1 · SDLC Automation·v2.1.0·Updated 6/28/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