omuronの備忘録

個人的な備忘録

「AWSの基礎を学ぼう 第五十七回 AWS CodeBuild」 #awsbasics 受講メモ

awsbasics.connpass.com

CodeBuild は好きなサービスの一つです。
よく利用しているサービスのお話を聞くのは初めてです!

セッション

AWS CodeBuild おさらい

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

AWS CodeBuild

  • フルマネージドなビルドサービス
  • 同時複数ビルド
  • イミュータブルな環境
    • 新規 Docker コンテナで実行
    • AWS CLI が入った Docker マネージドイメージが準備されている
      • 東京リージョンはまだだけど Windows もある
      • Docker イメージを自分で準備も可能
        • ECR とか Docker Hub とか
  • CloudWatch 連携
    • SNS 経由で通知可能

BuildSpec.yml

  • Version 0.2 が最新
  • run-as Linux ユーザーの指定
  • env 環境変数
    • SSM などに設定した値を環境変数に埋め込んで参照させるなど
  • proxy プロキシサーバー設定
  • batch バッチビルド設定
    • build-graph 依存関係のある複数ジョブ
      • 順番に実行
    • build-list 並行して実行
      • 同時に実行
    • build-matrix 並行して実行される異なる構成のタスク定義
      • 複数 yml 準備して、様々な環境を並行して実行
  • phases ビルドの各段階で実行するコマンドを記述
    • install pre_build build post_build
  • reports テストレポートの作成
    • テストレポートとコードカバレッジレポートの2種類
      • グラフで出力
      • テストレポート: Cucumber JSON, JUnitXML, NUnitXML, NUnit3 XML, TestNGXML, Visual Studio TRX
      • コードカバレッジレポート:Clover XML, Cobertula XML, JaCoCoXML, SimpleCovJSON
  • artifacts 成果物出力
  • cache キャッシュ設定
    • ソースキャッシュ
    • Docker レイヤーキャッシュ
    • カスタムキャッシュ

その他リソースとの連携

  • VPC エンドポイント利用で VPC アクセス可能
  • Session Manager でビルド環境へアクセス可能
    • 高度な機能の上書きオプションから Session Manager 経由でアクセス

所感

CodeBuild は好きなサービスですが、 phases でなにもかもやってしまって、 artifacts すら活用できてません。

ローカルキャッシュに癖があって、まともに効かない気がするのですが、みんなうまく使えてるんですかね...?
「5分以内のビルド、かつ、直近のビルドから15分以内、かつ同じホストで動かいとき」
しか動いてなさそうと聞いたことがあります。
S3 キャッシュを使うほうが無難とは思いますが、もっと気軽にキャッシュ使えるといいのにとは思いました。

batch 実行については全く知らなかったので、勉強になりました。
こんな色々な実行方法があったんですね。