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 (クロスアカウント) |
体系的に学ぶなら関連書籍を参照してほしい。