AWS CodePipeline のアイコン

AWS CodePipeline

ソースからデプロイまでの CI/CD パイプラインを構築・自動化するサービス

何ができるか

AWS CodePipeline は、ソースコードの変更を検知し、ビルド、テスト、デプロイまでの一連のリリースプロセスを自動化する CI/CD (継続的インテグレーション/継続的デリバリー) サービスです。パイプラインをステージに分割し、各ステージで異なるアクション (ソース取得、ビルド、承認、デプロイなど) を実行します。手動のリリース作業を排除し、コード変更を迅速かつ安全に本番環境に届けます。

どのような場面で使うか

GitHub にコードをプッシュしたら自動的にビルド・テストが実行され、テスト通過後にステージング環境にデプロイ、手動承認を経て本番環境にデプロイするといったリリースフローの自動化に活用されています。また、Lambda 関数のデプロイ自動化や、CloudFormation テンプレートの変更を自動適用するインフラの CI/CD にも利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

工場の組み立てラインに例えるとわかりやすいでしょう。原材料 (ソースコード) がラインに投入されると、各工程 (ビルド、テスト、品質検査) を順番に通過し、最終的に完成品 (デプロイ済みアプリケーション) が出荷されます。CodePipeline はこの組み立てラインを自動化し、各工程の結果に応じてラインを止めたり次に進めたりします。

CodePipeline とは

AWS CodePipeline は、ソフトウェアのリリースプロセスを自動化するサービスです。開発者がコードを変更してリポジトリにプッシュすると、CodePipeline が自動的にビルド、テスト、デプロイの各ステップを実行します。手動でのビルドやデプロイ作業が不要になり、人為的なミスを防ぎながらリリース頻度を向上させることができます。

パイプラインの構成

パイプラインは複数のステージで構成されます。典型的な構成は、Source (ソースコードの取得) → Build (ビルドとテスト) → Deploy (デプロイ) の 3 ステージです。Source ステージでは GitHub、CodeCommit、S3 などからコードを取得します。Build ステージでは CodeBuild でビルドとテストを実行します。Deploy ステージでは CloudFormation、ECS、S3 などにデプロイします。ステージ間に手動承認アクションを挟むことも可能です。

他の AWS サービスとの連携

CodePipeline は多数の AWS サービスやサードパーティツールと連携できます。ソースプロバイダーとして GitHub、Bitbucket、CodeCommit に対応しています。ビルドプロバイダーとして CodeBuild や Jenkins を利用できます。デプロイプロバイダーとして CloudFormation、ECS、S3、Lambda、Elastic Beanstalk などに対応しています。この柔軟な連携により、さまざまなアーキテクチャのリリースパイプラインを構築できます。

はじめかた

CodePipeline を使い始めるには、CodePipeline コンソールで「パイプラインの作成」をクリックします。ソースプロバイダー (GitHub など) を選択してリポジトリとブランチを指定し、ビルドプロバイダー (CodeBuild) を設定し、デプロイプロバイダーを選択します。パイプラインを作成すると、ソースの変更を検知して自動的にパイプラインが実行されます。

注意点

  • パイプラインはアクティブなパイプラインごとに月額課金される。使わなくなったパイプラインは削除または無効化してコストを抑えること
  • パイプラインの実行が失敗した場合、そのステージで停止する。失敗原因を修正してリトライするか、ソースを修正して再実行する
  • 本番デプロイ前に手動承認ステージを挟むことで、意図しないデプロイを防止できる。承認には SNS 通知を設定して担当者に通知すること

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。