AWS CodeBuildによるBuild環境の整備
この記事は Classi Advent Calendar 2018 - Qiita 7日目の記事です。
AWSのCodeBuildを使用してBuildを任せる。
CodeBuildはCI/CDでそれなりに重要な立ち位置にある。
CodeBuildとは?
コードのコンパイルやテストを実行するサービス。
使い方
ビルド対象のファイルに buildspec.yml
を入れてそこにビルドの動作を定義する。
例. Ruby on Railsをビルド
buildspec.yml
version: 0.2 phases: install: commands: - gem install bundler build: commands: - bundle install --path=vendor/bundle artifacts: files: - '**/*'
その他使い方
S3にファイルを展開するだけ のような使い方もできるので汎用性は高い。
buildspec.yml
version: 0.2 phases: post_build: commands: - aws s3 sync --delete test_directory s3://test_bucket/partner
rootディレクトリの test_directory
というフォルダをS3バケット test_bucket
に置く。
ビルド速度について
build.general1.small
build.general1.medium
build.general1.large
の3種類のコンピューティングタイプがある。
ものによってはコンピューティングタイプによってビルド速度の大きな向上が期待できるので,あまりにも遅いと感じる場合はコンピューティングタイプを上げることを検討したほうが良い。
料金自体は大して高くはない。 https://aws.amazon.com/jp/codebuild/pricing/
速度比較
JavaScriptを yarn install
する環境で比較
build.general1.small
8分40秒前後
build.general1.medium
6分20秒前後
build.general1.large
5分40秒前後
smallからmediumに変えただけで大きな効果が見られた。ビルドが2分強早くなったのでこういう場合はmedium以上を使うのをオススメ。
ビルドは放って置けば終わるのでそんなに速度が重要視されないことが多いが,実際にはビルド待ちで他の作業ができない時間があることが多いのでビルド時間は短くすると作業が捗る!