AWS CodeBuildによるBuild環境の整備

この記事は Classi Advent Calendar 2018 - Qiita 7日目の記事です。

AWSのCodeBuildを使用してBuildを任せる。

CodeBuildはCI/CDでそれなりに重要な立ち位置にある。

CodeBuildとは?

コードのコンパイルやテストを実行するサービス。

aws.amazon.com

使い方

ビルド対象のファイルに 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/


速度比較

JavaScriptyarn install する環境で比較

build.general1.small

8分40秒前後

build.general1.medium

6分20秒前後

build.general1.large

5分40秒前後



smallからmediumに変えただけで大きな効果が見られた。ビルドが2分強早くなったのでこういう場合はmedium以上を使うのをオススメ。

ビルドは放って置けば終わるのでそんなに速度が重要視されないことが多いが,実際にはビルド待ちで他の作業ができない時間があることが多いのでビルド時間は短くすると作業が捗る!