2022/04/22

AWS CodeBuildとは?CodeBuildの利点や利用手順も紹介します!

 
  

「AWS CodeBuild」とは?

「AWS CodeBuild」とは、ソースコードのコンパイルからテスト実行やデプロイまでのいわゆる「ビルド」作業を自動で行ってくれるAWSサービスです。 「AWS CodeBuild」を利用するために必要な知識や関連技術について、詳細に解説していきます。

「ビルドプロジェクト」とは?

「ビルドプロジェクト」とは、ソースコード等のビルド作業を「AWS CodeBuild」で実行する方法を具体的に定義した設定情報です。 ビルドプロジェクトには、ソースコードの配置場所の情報、使用するビルド環境に関する情報、実行するビルド用のコマンド群、ビルド後に生成された出力の格納場所等の情報が記載されています。 なお「ビルド環境」とは、プログラム言語の実行モジュール、オペレーティングシステム(OS)、「AWS CodeBuild」のビルド実行に必要なツール等で構成されています。

「ビルドプロジェクト」の設定方法

「ビルドプロジェクト」は、「AWS Codebuild」のコンソール画面で必要な情報を入力する、もしくは「AWS CLI」で所定のコマンドを入力して設定します。 入力内容は、使用するランタイム環境の情報、ソースリポジトリの配置場所、ビルド用のコマンド類、「IAM ロール」に関する設定情報、ビルド実行用のコンピューティングクラス等です。 「AWS Codebuild」がサポートしているソースリポジトリは、「AWS CodeCommit」、「Amazon S3」、「GitHub」、「GitHub Enterprise」、「Bitbucket」等があります。これらのリポジトリからビルドに必要なソースコード等を取得していきます。 なおビルド用のコマンドは、「buildspec.yml」ファイルを用いて指定できます。

ビルド実行について

「AWS CodeBuild」でビルドを実行すると、ビルドプロジェクトで定義された計算処理用の「コンテナ」が作成されます。 この「コンテナ」は、ビルドプロジェクトで定義されたランタイム環境にロードされます。そして、ソースコードがコンテナにダウンロードされ、ビルドプロジェクトに設定されているコマンドによりビルドが実行されます。 ビルドで生成された結果については、「Amazon S3」バケットにアップロードされます。そして、ビルド実行で使用された計算処理用のコンテナは破棄されます。 ビルドの結果情報は、「AWS CodeBuild」のコンソール画面、もしくは「Amazon CloudWatch」サービスで確認できます。

「AWS CodeBuild」の利点について

「AWS CodeBuild」の利点は、「完全マネージド型サービス」、「連続スケーリング」、「従量課金制」、「カスタマイズ性」、「継続的インテグレーションとデリバリー」があります。 これらの利点について、個別に解説していきます。

「AWS CodeBuild」の利点1:完全マネージド型サービス

「AWS CodeBuild」の1つ目の利点は、完全マネージド型サービスである点です。 つまり、物理的なサーバーを運用する際に必要となる管理作業として、ビルド用サーバーとそのミドルウェアの設定、セキュリティや修正パッチの適用作業、「AWS CodeBuild」のアップデート作業、システム管理作業等が不要となります。

「AWS CodeBuild」の利点2:連続スケーリング

「AWS CodeBuild」の利点2つ目は、連続してスケーリングしてくれる点です。 つまりビルド作業量の増加に応じて、「AWS CodeBuild」が自動的にスケーリングしてくれます。 そのため、ビルド実行のコマンドが送信されると、最初のビルド作業が処理されている最中であっても、次のビルド作業が同時並行で連続して実施されるので、ビルド実行待ちの状態が発生しません。

「AWS CodeBuild」の利点3:従量課金制

「AWS CodeBuild」の利点3つ目は、使用した分に応じた従量課金制である点です。 具体的には、「AWS CodeBuild」ではビルド実行完了までの所要時間に応じて、「分」単位で課金される料金体系となっています。 つまりアイドル(実行待ち)状態のビルド用サーバーで、インタンスが稼働中であっても料金は発生しません。

「AWS CodeBuild」の利点4:カスタマイズ性

「AWS CodeBuild」の利点4つ目は、ビルド環境のカスタマイズが可能である点です。 具体的には、製品としてのビルドツール、「AWS CodeBuild」でサポートされている実行ライブラリに加えて、カスタマイズした独自のビルド環境を作成することもできます。

「AWS CodeBuild」の利点5:継続的インテグレーションとデリバリー

「AWS CodeBuild」の利点5つ目は、他のAWSサービスと連携することで、「継続的インテグレーションとデリバリー(CI/CD)」のワークフローを構築できることです。 他にも、ユーザーが既に使用している「Jenkins」等のCI/CDワークフローと連携することも可能です。

「AWS CodeBuild」の利点6:セキュリティ性

「AWS CodeBuild」の利点6つ目は、セキュリティが担保されている点です。 例えばビルドによる生成物は、「AWS Key Management Service (KMS)」 により暗号化されて管理されます。 また「AWS Identity and Access Management (IAM)」とサービス連携しているので、ユーザーにビルドのみの権限を付与することもできます。

「AWS CodeBuild」の利用手順について

「AWS CodeBuild」の利用手順の概要としては、ビルドツールを使用してソースコードファイル類をビルドするように「AWS CodeBuild」にリクエストします。 具体的な利用手順について、解説していきます。

「AWS CodeBuild」の利用手順1:S3バケットの作成

最初に、「Amazon S3」バケットを2個作成します。 これらのバケットは、ビルドと同一のリージョン内に配置するようにします。例えば、ビルド作業を東京リージョンで実行する場合は、バケットも東京リージョン内とする必要があります。

「AWS CodeBuild」の利用手順2:ソースコードの作成

次に、「AWS CodeBuild」がビルドに使用するソースコードを作成します。 ソースコード作成時には、実際のコード(メイン)とテスト用のコードの2種類を作成します。

「AWS CodeBuild」の利用手順3:ビルド仕様ファイルの作成

次に、ビルド仕様ファイルを作成します。 このビルド仕様によって、ビルドでインプットしたリソース類を正常なアウトプットに変換できるようになります。 また、ビルドの生成物を出力先のバケットにアップロードできるようになります。

「AWS CodeBuild」の利用手順4:ソースコード等のアップロード

次に、ソースコード等をアップロードします。 事前準備として、ソースコードとビルド仕様ファイルを入力用のバケットに配置しておきます。例えば、メインのJavaファイル、テスト用Javaファイル、ビルドファイル用XMLファイル等をZIPファイルにまとめます。

「AWS CodeBuild」の利用手順5:ビルドプロジェクトの作成

次に、ビルドプロジェクトを作成します。 具体的には、「AWS CodeBuild」コンソール画面のメニューから「プロジェクト名」の入力等の指示に沿ってビルドプロジェクトを作成していきます。 なおこの時のビルド環境は、「Dockerイメージ」で構築されています。

「AWS CodeBuild」の利用手順6:ビルドの実行

最後に、ビルドを実行します。 具体的には、「AWS CodeBuild」コンソール画面にて、ビルドプロジェクトの設定箇所(ナビゲーションペイン)で「Build projects」メニューを選択してビルドを実行します。

「AWS CodeBuild」のユースケース

「AWS CodeBuild」のユースケースとして、プログラミング学習を支援するオンラインサービスや求職者追跡ソフトウェアを開発する企業サービス等で利用されています。 中でもプログラミング学習サービスでは、スケーラビリティと複数のビルドの同時実行で問題がありました。特にビルド実行の際には、ビルド待ち時間が長くなり開発が遅延していました。 そこで「AWS CodeBuild」を導入することで、複数のビルド作業を並行実施することが可能となり問題が解消されます。 同様の問題を抱えている場合は、「AWS CodeBuild」の導入を検討してみてはいかがでしょうか。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】