内容
従来は EC2 上でコンテナイメージが実行されていたが、CodeBuild でコンピューティングに Lambda を使用してビルドやテストを実行できるようになった。
Lambda はほぼ瞬時に起動するため、より高速なビルドが可能な点が利点かと思います。
Lambda でコンピューティングを実行すると、1 秒あたりの使用量に対して課金されるため、コストを最適化できる点もあげられていますが、個人的にはよっぽどな環境ではない限り、差ほどのコスト減はないのかと思っています。
サポートされているツール、ランタイム
AWS CLI v2、AWS SAM CLI、git、go、Java、Node.js、Python、pip、Ruby、.NET
制限事項
- バッチビルド
- ビルド間のキャッシュ
- タイムアウトによるランタイムの分単位の制限
- ルートユーザーの許可を必要とするツール
その他にもいくつか制限事項があるので、ドキュメントを確認し、制限事項にひっかる場合は、EC2 タイプを利用すること。
検証
Lambda と EC2 で比較検証してみた。
共通の設定として、
codecommit に 適当な python ファイルを準備し、
codebuild で source に codecommit を指定。
codebuild には簡易的に次のものを指定。
buildspec.yaml
version: 0.2
phases:
build:
commands:
- echo "Running tests"
- python -m unittest discover .