AWS CodeBuildとAWS CodePipelineによるリリースプロセスの自動化について
最終更新日:2026年8月10日
この記事でわかること
【要注意】
本記事で紹介しているAWSマネジメントコンソールの画面項目名や操作手順は執筆時点のものです。AWSのコンソールUIは継続的に更新されるため、実際の操作時は名称やレイアウトが変わっている場合があります。最新の手順はAWS公式ドキュメントでご確認ください。
はじめに
| 項目 | AWS | Microsoft Azure | Google Cloud |
|---|---|---|---|
| 世界シェア | 約33%(首位) | 約22% | 約11% |
| 強み | サービス数・実績 | Microsoft製品連携 | データ分析・AI |
| 無料枠 | 12ヶ月+常時無料 | 12ヶ月無料 | 常時無料枠あり |
| 主な資格 | CLF / SAA / SAP | AZ-900 / AZ-104 | ACE / PCA |
本記事では、まずAWS CodeBuildとAWS CodePipelineの概要を紹介します。その後、AWS CodeBuildと AWS CodePipeline、Amazon ECSを利用したコンテナワークフローを自動化する手順について紹介します。
AWS CodeBuildとは
AWS CodeBuildは、ソースコードのコンパイル、テストの実行、デプロイ可能なソフトウェアパッケージの作成が可能なフルマネージド型のビルドサービスです。AWS CodeBuildを利用すると、ビルドサーバやソフトウェアの設定、パッチ適用、アップデートなどのソフトウェアのインストールや管理に関わる作業が不要になります。
AWS CodeBuildでは、継続的スケーリングにより、複数のビルドが同時に処理されるため、ビルドが待機状態でキュー内に残されることはありません。料金は、ビルドの実行が完了するまでにかかった分単位の時間に対して発生します。具体的な料金体系や単価は変更される場合があるため、最新料金はAWS公式サイトでご確認ください。
AWS CodePipelineとは
AWS CodePipelineは、素早く確実性のあるアプリケーションとインフラストラクチャのアップデートのためのパイプラインのリリースを自動化する、フルマネージド型の継続的デリバリーサービスです。AWS CodePipelineでは、ユーザーが定義したリリースモデルに基づき、コード変更があった場合のフェーズの構築、テスト、デプロイを自動化します。
また、GitHubをはじめとするサードパーティ製のサービスと簡単に統合することができます。料金は、初期費用などの前払い料金はなく、実際に使用した分にのみ発生します。こちらも最新の料金体系はAWS公式サイトでご確認ください。
AWS CodeBuildとAWS CodePipelineの統合
AWS CodeBuildは、AWS CodePipelineと統合されています。ビルドアクションを追加し、クラウドで実行する継続的インテグレーションと継続的デリバリーのプロセスをセットアップすることで、リリースプロセスを自動化することができます。AWS CodePipelineはコードのテスト、AWS CodeBuildはビルドの実行を行います。
ここでは、AWS CodeBuildと AWS CodePipeline、Amazon ECSを利用した例を紹介します。
継続的デリバリーパイプラインの設定
自動化されたビルドとテスト機構を組み合わせた継続的デリバリーは、以下の利点があります。
- エラーの早期発見
- コンテナ化したサービスの構築とデプロイの時間短縮
Amazon ECSでコンテナワークフローを自動化するには、AWS CloudFormationを利用したソリューションを構築する方法もありますが、ここでは、AWS CodeBuildとAWS CodePipelineをAmazon ECSと連携させた方法について紹介します。
1. 新規プロジェクトの作成
AWS CodePipelineで新規プロジェクトを作成します。[Pipeline name]にプロジェクト名を入力します。
2. ソース場所の選択
ソースコードが保存されている場所を選択します。ここで用意されているものは、AWS CodeCommit、GitHub、Amazon S3です。それぞれについて、選択した場合の手順を以下に示します。
(AWS CodeCommitを選択した場合)
- [Repository name]でソースコードが含まれているリポジトリの名前を選択
- [ブランチ名]でビルドするソースコードのバージョンが含まれているブランチの名前を選択
(GitHubを選択した場合)
- [Connect to GitHub]を選択
- 手順に従い、AWS CodePipelineにリポジトリへのアクセス権を付与
- [Repository]でソースコードが含まれているリポジトリの名前を選択
- [ブランチ]でビルドするソースコードのバージョンが含まれているブランチの名前を選択
(Amazon S3を選択した場合)
- [バケット]でソースコードが含まれているリポジトリの名前を選択
- [S3オブジェクトキー]に、ソースコードを含むファイルの名前(file.zipなど)を入力
3. ビルドステップの追加
<二重課金の回避>
ビルドステップの追加の説明に入る前に、二重課金が発生しない方法を紹介します。
それは、「AWS CodePipelineを使用する場合は、AWS CodeBuildでウェブフックを無効にする」です。
CodeBuildプロジェクトのウェブフックが有効で、プロジェクトをAWS CodePipelineのビルドステップとして使用すると、以下のことが発生します。
- コミットごとに2つの等しいビルドが作成される
- 作成された一方のビルドは、ウェブフックを通じてトリガーされる
- もう一方のトリガーは、AWS CodePipelineを通じてトリガーされる
- ビルド単位で料金が発生し、両方のビルドで課金される
ビルドステップの追加について、既存のビルドプロジェクトを使用するか否かによって、2通りの方法あります。
既存のビルドプロジェクトを使用する場合
Configure your projectの欄の[Select an existing build project]を選択し、[Project name]に、ビルドプロジェクトの名前を入力します。
※注意点として、既存のビルドプロジェクトを使用する場合は、出力アーティファクトの設定がすでに定義されている必要があります。
既存のプロジェクトがない、または使用しない場合
AWS CodePipelineから以下の手順で新しいプロジェクトを作成します。
- [Build provider]でAWS CodeBuildを選択
- Configure your projectでCreate a new build projectを選択
- [Project name]でプロジェクトの名前を入力
- (必要な場合は、他のユーザーがプロジェクトの用途を理解できるように、[Description]にビルドプロジェクトの説明を記入)
次に、環境についての設定を行います。以下は、AWS CodeBuildが管理するDockerイメージに基づいてビルド環境を使用するための手順です。
- [Environment image]でUse an image managed by AWS CodeBuildを選択
- [Operating System]でUbuntuを選択
- [Runtime]でDockerを選択
- [Version]でAWS CodeBuildが対応するRuntime Versionを選択
- [Build specification]でUse the buildspec yml in the source code root directoryを選択
以上の手順を終えると、CodeBuildステップの作成ができ、既存プロジェクトとして、AWS CodePipelineから選択できるようになります。
4. デプロイプロバイダの追加
デプロイプロバイダは、ビルドしたコードが配置される場所です。ここでの手順を以下に示します。
- [Deployment provider]でAmazon ECSを選択(※このほかに、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormationなどがあります。)
- AWS CodeBuildからAmazon ECSにデプロイするために、イメージ定義JSONファイルを生成(この事前準備として、buildspec.ymlファイル内でAWS CodeBuildのビルドプロセスのpre-build、build、post-buildフェーズに追加の手順が必要です。)
- [Cluster name]に「3. ビルドステップの追加」で入力したプロジェクト名を入力
- [Service name]にwebと入力
- [Image filename]にイメージ定義ファイル名を入力
5. AWS Service Roleの追加/作成
AWSアカウント内のリソースにAWS CodePipelineがアクセスできるようにするために、既存のIAMサービスロールを選択するか、AWS CodePipelineに作成することができます。ここでは、ウィザードを使い、そこで作成したロールを使うため、[Role name]にAWS-CodePipeline-Serviceと入力します。
以上の手順の後、Create pipelineを選択し、パイプラインが作成されます。
押さえておきたいポイント
- AWS CodePipelineからAWS CodeBuildを呼び出す構成にする場合は、CodeBuild側のウェブフックを無効にしないと、コミットのたびにビルドが二重に実行されて二重課金の原因になる
- ソースコードの取得元はAWS CodeCommit・GitHub・Amazon S3の3種類から選択でき、それぞれ設定手順が異なる
- デプロイ先はAmazon ECSのほかにもAWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormationなど複数のプロバイダから選択できる
よくある質問
Q. AWS CodeCommitはもう使えないのですか?
2024年に新規顧客への提供が停止されたと報じられた時期がありましたが、2025年11月24日にAWSが正式に一般提供(GA)復帰を発表し、新規サインアップが再開されています。本記事のソース連携先としても引き続き選択可能です。最新の提供状況はAWS公式サイトでご確認ください。
Q. AWS CodeBuild・AWS CodePipelineの料金はどのくらいかかりますか?
どちらも従量課金制で、CodeBuildはビルドにかかった時間(分単位)、CodePipelineは実際に使用した分に対して料金が発生します。具体的な単価はリージョンやプラン変更により変動するため、最新料金はAWS公式サイトでご確認ください。
Q. Amazon ECS以外へのデプロイにも対応していますか?
はい、AWS CodePipelineのデプロイプロバイダにはAmazon ECSのほか、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormationなども用意されており、構築するシステムに合わせて選択できます。
まとめ
この記事のポイント:
- AWS CodeBuildはビルド・テストを実行するフルマネージド型サービス、AWS CodePipelineはリリースプロセス全体を自動化する継続的デリバリーサービス
- 両者を統合することで、コミットからビルド・テスト・デプロイまでのリリースプロセスを自動化できる
- ウェブフックの二重設定による二重課金に注意が必要
- ソース元(CodeCommit/GitHub/S3)、デプロイ先(ECS/CodeDeploy/Elastic Beanstalk/CloudFormation等)とも複数の選択肢がある
本記事では、AWS CodeBuild と AWS CodePipelineについて簡単に紹介し、後半で、AWS CodeBuild と AWS CodePipelineをAmazon ECSと連携させて、継続的デリバリーパイプラインの設定をする手順について紹介しました。ここで紹介した手順は、前述のAWS CloudFormationを使用してソリューションを構築するよりも簡単です。いくつかの手順を踏むだけで、Amazon ECSにおいてコンテナワークフローを自動化することができます。
▼ アクロビジョンについて


