CodePipeline

AWS のマネージド CI/CD サービスで、ソースからデプロイまでのパイプラインを自動化する

AWSCI/CD

CodePipeline とは

AWS CodePipeline は、ソースコードの取得からビルド、テスト、デプロイまでのパイプラインを自動化するマネージド CI/CD サービスである。GitHub、CodeCommit、S3 をソースとし、CodeBuild でビルド、CodeDeploy や SAM でデプロイする。

パイプラインの構成

Source (GitHub) → Build (CodeBuild) → Deploy (SAM / CloudFormation)

GitHub Actions との比較

観点 CodePipeline GitHub Actions
ホスティング AWS マネージド GitHub 統合
ソース GitHub, CodeCommit, S3 GitHub
ビルド CodeBuild GitHub-hosted runners
デプロイ CodeDeploy, SAM, ECS 任意 (AWS CLI 等)
コスト パイプラインごとに月額 2,000 分/月無料
設定 CloudFormation / コンソール YAML

SAM Pipeline

# SAM パイプラインの初期化
sam pipeline init --bootstrap

# パイプラインのデプロイ
sam deploy -t codepipeline.yaml

SAM Pipeline は CodePipeline + CodeBuild の構成を自動生成する。

CodeBuild の buildspec.yml

version: 0.2
phases:
  install:
    commands:
      - npm ci
  build:
    commands:
      - npm test
      - sam build
  post_build:
    commands:
      - sam package --output-template-file packaged.yaml --s3-bucket $ARTIFACT_BUCKET
artifacts:
  files:
    - packaged.yaml

使い分け

ケース 推奨
GitHub リポジトリ + シンプルな CI/CD GitHub Actions
AWS サービスとの深い統合 CodePipeline
Blue/Green デプロイ (ECS) CodePipeline + CodeDeploy
マルチアカウントデプロイ CodePipeline (クロスアカウント)

体系的に学ぶなら関連書籍を参照してほしい。

関連用語