AWSでCI/CD部分を担うサービス。いずれのサービスもマネージドでありこれらを組み合わせることで自動化された「CI/CDパイプラインとアプリケーションのビルド仕様に合わせた具体的な処理」を実現できる。
イメージ図
Code Commit
コードの管理システム、GitHubと概ね役割は同じ。
GitHubとの違い
AWSアカウントがないと使えないので誰でも使えるGitHubに比べるとセキュリティは強いです。なので、機密情報が多いプロジェクトの場合は採用の余地があるかもしれません。
S3ソースアーティファクトバケット
ここを通じてCode Buildに渡します。
Code Build
コードのビルドおよび、テスト環境をフルマネージドで提供するCIサービス
任意のDockerイメージを起動して、コンテナ内で任意のコマンドを実行できるサービス
利用した方が良いケース
- EC2などのJekinsサーバーを立てて、Jekinsジョブを実行しているのであれば、Code Buildに移行することでフルマネージドな利点を享受できる。(保守が必要ない。)
- EC2にSSHして定型作業しているのであれば、CodeBuildのBuildProjectとして定型化できる可能性がある。
- Lambdaを使っているが、Dockerなども使っても良いと考えている場合
採用しなくても良いケース
- Circle CIや、TravisCIなどを既に導入していて満足しているのであれば特に利用する必要はない。
S3ビルドアーティファクトバケット
デプロイに必要なコンフィグファイルなどはS3バケットを介してCodeDeployに引き渡す。
Code Deploy
マネージドなデプロイサービス。段階的なデプロイや、容易なロールバックが可能。
アプリケーションを構成している「ファイル群」をステージング環境や本番環境といった「グルーピングされたサーバー群」に定められた手順で自動配置する。
ユースケース
CodeDeploy + Travis CI
デプロイの中身の処理はCodeDeployで自動化して、CodeDeployの起動と実行管理をTravis CIで管理する。
Code Pipeline
マネージドな「CI/CDパイプラインサービス」。ビジネス要件に合わせて様々なAWSサービスを統合できる。
利用シーン
- デプロイ前に承認プロセスを設ける。(業務要件)
- デプロイ後に開発者に対して成否を通知する。
この記事へのコメントはありません。