AWS CodeBuild の特徴
なぜ AWS CodeBuild なのですか?
AWS CodeBuild は、完全マネージド型の継続的インテグレーションサービスです。ソースコードの場所を指定し、ビルド設定を選択するだけで、CodeBuild によってビルドスクリプトが実行され、コードのコンパイル、テスト、およびパッケージングが行われます。プロビジョニングおよびスケールするためのサーバーはなく、ソフトウェアをインストール、設定、および操作する必要もありません。
AWS CodeBuild は、完全マネージド型の継続的インテグレーションサービスです。ソースコードの場所を指定し、ビルド設定を選択するだけで、CodeBuild によってビルドスクリプトが実行され、コードのコンパイル、テスト、およびパッケージングが行われます。プロビジョニングおよびスケールするためのサーバーはなく、ソフトウェアをインストール、設定、および操作する必要もありません。
CodeBuild では、タスクの完了に必要なオペレーティングシステム、プログラミング言語ランタイム、ビルドツール (Apache Maven、Gradle、npm など) が含まれる、事前設定されたビルド環境でビルドが実行されます。ユーザーが行う必要があることは、ソースコードの場所を指定し、使用するビルド環境やビルド中に実行されるビルドコマンドなど、ビルドの設定を選択ことのみです。AWS CodeBuild によってコードがビルドされて、アーティファクトが Amazon S3 バケットに保存されます。または、ビルドコマンドを使用して、それらをアーティファクトリポジトリにアップロードできます。AWS CodePipeline、AWS マネジメントコンソール、AWS CLI、または AWS SDK を使用して、ビルドプロジェクトを作成、管理、および開始できます。
AWS CodeBuild では、Java、Python、Node.js、Ruby、Go、Android、.NET Core for Linux、および Docker 用のビルド環境を利用できます。
事前設定されたビルド環境の一覧をご覧ください。
Microsoft .NET Framework などの自分のビルド環境を、AWS CodeBuild に持ち込んで使用できます。ビルド用のランタイムとツールを Docker イメージにパッケージ化して、それを公開された Docker ハブリポジトリまたは Amazon Elastic Container Registry (Amazon ECR) にアップロードできます。新しいビルドプロジェクトを作成する際に Docker イメージの場所を指定すると、CodeBuild によりそのイメージがプルされ、ビルドプロジェクト設定として使用されます。
ビルドツールパッケージのインストール、ユニットテストの実行、コードのパッケージ化など、CodeBuild が実行する特定のコマンドを定義できます。ビルド仕様は YAML ファイルで指定し、ビルドの各フェーズで実行するコマンドやその他の設定を選択できます。Apache Maven、Gradle、または npm を使用するビルドといった一般的なシナリオ向けのビルド仕様のサンプルファイルがあるため、すぐに CodeBuild の使用を開始できます。
ビルド仕様のサンプルファイルをご覧ください。
開発ニーズに最適なコンピューティングタイプを選択できます。コンピューティング性能を CPU とメモリの容量が異なる 3 つのレベルから選択できます。ビルドを短時間で実行する必要がある場合はコンピューティング性能が高い CPU とメモリを選択できます。または、ビルドを実行するのに最低限必要な CPU とメモリを選択することもできます。 CodeBuild はオペレーティングシステムとして Linux と Windows をサポートしています。
CodeBuild では、いくつかの方法でビルドを開始できます。例えば、AWS CodeCommit、GitHub、または Amazon Simple Storage Service (Amazon S3) に接続してから、CodeBuild でビルドを開始できます。また、AWS CodePipeline を使って CodeBuild とソースリポジトリに接続し、変更をコミットするたびにビルドを自動的に開始することもできます。
CodeBuild のオンデマンドコンピューティングリソースと従量制料金で、コードをより頻繁に構築し、統合できるようになります。これにより、開発プロセスの初期段階でバグを発見し、簡単なバグの修正を実行できます。CodeBuild を既存の継続的インテグレーションおよび継続的デリバリー (CI/CD) ワークフローに統合できます。これには、CodeBuild のソース統合、ビルドコマンド、または Jenkins 統合を使用します。また、CodeBuild は、CI/CD の実施に役立つ AWS コードサービスファミリーの一部です。CodePipeline に CodeBuild をプラグインして、ソースリポジトリに変更をコミットするたびに CodeBuild でコードのビルドとテストを行うよう自動化できます。CodePipeline ウィザードを使用してソースリポジトリに接続してから、CodeBuild をビルドプロバイダーとして選択することで、この CI ワークフローを作成できます。
CodePipeline を使用し、CodeBuild のビルド完了後に起動されるサードパーティー製のロードまたはユーザーインターフェイステストツール (BlazeMeter、Ghost Inspector など) を統合することで、継続的インテグレーションのワークフローを継続的デリバリーへと容易に拡張できます。次に、AWS CodeDeploy や AWS Elastic Beanstalk など、CodePipeline と統合されたサービスを使用して、インスタンスまたはオンプレミスサーバーにデプロイできます。
ビルドアーティファクトは、AWS Key Management Service (AWS KMS) で管理されるお客様固有のキーを使って暗号化されます。CodeBuild は AWS Identity and Access Management と統合されているため、ビルドへのアクセス権限を持つユーザーや AWS リソースの制御をきめ細かく設定できます。
CodeBuild コンソール、AWS コマンドラインインターフェイス (AWS CLI)、AWS SDK、および AWS API、または Amazon CloudWatch を使用して、ビルドの詳細情報を表示できます。CodeBuild には、ビルドの開始時間、終了時間、ステータス、コミット ID などの情報が表示されます。CodeBuild は、ビルドメトリクスのストリーミングと、CloudWatch へのログ記録も行います。CloudWatch を使用して、カスタムダッシュボードの作成、Amazon CloudWatch アラームの設定、ビルド問題のトラブルシューティング、またはビルドログの調査を行うことができます。
ビルドプロジェクトに影響を与えるイベントに関する通知を作成することができます。通知は Amazon Simple Notification Service (Amazon SNS) 通知の形式で送信されます。各通知には、ステータスメッセージと、その通知が生成される原因となったイベントが存在するリソースへのリンクも含まれます。