何をやるか?
CodeBuild は AWS が提供するビルドサービスです。
例えば、GitHub に buildspec.yml というビルド方法を記述したファイルを置いておくと、GitHub へのコードプッシュ時に、その設定通りビルドを行ってくれます。
GitHub Actions や Azure Pipelines といったサービスと同様です。
ここでは、CodeBuild 導入の第一歩として、次のような構成でセットアップしてみます。
- ソースプロバイダ : GitHub(の適当なテストリポジトリ)
 - ビルド内容 : "Hello World" と echo 表示する
 
つまり、テスト用の GitHub リポジトリに何らかのファイルをプッシュしたときに、CodeBuild によるビルドを開始するところまでです。
ソースプロバイダとしては、GitHub だけではなく、AWS CodeCommit、Bitbucket、GitHub Enterpise といった Git リポジトリを選択できますが、おそらく GitHub が一番よく使われているので、ここでは GitHub を使うことにします。
最初の一歩はできるだけ簡単に済ませることが肝心です!
アカウントとリポジトリを準備する
まず最低限の準備として、下記のアカウントは用意できているとします。
- AWS アカウント
 - GitHub アカウント
 
次に、GitHub にテスト用の リポジトリを作成 しておきます。
ここでは、リポジトリ名は hello-codebuild とでもしておきます。
README.md を自動生成しておくと、後のテストが楽です。
CodeBuild にビルドプロジェクトを作成する
次のようにして、CodeBuild に新規ビルドプロジェクトを作成します。
- AWS CodeBuild console を開きます。
 ビルド (CodeBuild)→ビルドプロジェクト→ビルドプロジェクトを作成すると選択します。- 以下のような内容を入力してビルドプロジェクトを作成します。
- プロジェクト名
: 
build-hello(名前は自由) - ソースプロバイダ
: 
GitHub→ 作成しておいたhello-codebuildリポジトリを指定 - ウェブフック
: 
コードの変更がこのレポジトリにプッシュされるたびに再構築するにチェックを入れる(これで GitHub へのプッシュ時にビルドトリガがかかります) - 環境イメージ
: 
マネージド型イメージ→Amazon Linux 2→ ランタイムやイメージは適当に選択 - サービスロール
: 
新しいサービスロール→codebuild-build-hello-service-role(デフォルト) - ビルド仕様
: 
buildspec ファイルを使用する 
 - プロジェクト名
: 
 
以下のような感じでビルドプロジェクトが作成されれば成功です。

ビルド仕様ファイル (buildspec.yml) を作成する
ビルドプロジェクトの作成直後に、おもむろに ビルドを開始 のボタンを押すと、ビルドは見事に失敗します。
ビルド履歴 で対象のビルドを選択してビルドログを見ると、次のようなエラーが出力されていることが分かります。
[Container] 2021/01/26 15:32:21 Phase context status code: YAML_FILE_ERROR Message: YAML file does not existエラーを見るときは、フェーズ詳細 のタブの方がパッと見で分かりやすいかもしれません。
どのフェーズまでうまく進んだかが一目瞭然です。

このエラーは、リポジトリのルートにビルド仕様ファイル buildspec.yml が存在しないというエラーです。
そこで、次のような内容の buildspec.yml ファイルを作成して GitHub へプッシュします。
あるいは、GitHub サイト上で直接ファイルを作っちゃっても OK です。
version: 0.2
phases:
  install:
    commands:
      - echo 'Hello World (INSTALL phase)'
  pre_build:
    commands:
      - echo 'Hello World (PRE_BUILD phase)'
  build:
    commands:
      - echo 'Hello World (BUILD phase)'
  post_build:
    commands:
      - echo 'Hello World (POST_BUILD phase)'CodeBuild によるビルドは、INSTALL → PRE_BUILD → BUILD → POST_BUILD のようにフェーズが進んでいくのですが、ここではそれらの各フェーズで echo 出力をしています。
buildspec の構文はこちらのドキュメント で確認できます。
buildspec.yml ファイルを GitHub リポジトリのトップディレクトリに作成(あるいはプッシュ)すると、ウェブフックイベントにより CodeBuild のビルドが開始されます。
今度は buildspec ファイルが見つかるので、次のようにビルドが正常に実行されることが分かります(実際のログはもう少しいろいろ情報が表示されます)。
Hello World (INSTALL phase)
Hello World (PRE_BUILD phase)
Hello World (BUILD phase)
Hello World (POST_BUILD phase)これで AWS CodeBuild の Hello World は完了です!お疲れ様でした!