ロカオプ技術ブログ

株式会社ロカオプの技術ブログです。

AWS CodeBuildの課金はPROVISIONINGフェーズ以降から発生するらしい

概要

みなさんこんにちは。フルスタックエンジニアの高瀬 @takasehiromichi です。

AWS CodeBuildの課金について知見を得たので、記事にしようと思います。

AWS CodeBuildの各フェーズについて

AWS CodeBuildは、以下のフェーズがあります。

  • SUBMITTED
  • QUEUED
  • PROVISIONING
  • DOWNLOAD_SOURCE
  • INSTALL
  • PRE_BUILD
  • BUILD
  • POST_BUILD
  • UPLOAD_ARTIFACTS
  • FINALIZING
  • COMPLETED

ある日の出来事

ある日、CI/CDを回していると、やけに遅いタイミングがあることに気がつきました。

そこで、CodeBuildの実行結果詳細を確認していると、QUEUEDフェーズが通常1ms程度の実行時間であるところ、その時は181ms程度かかっていました。

なので、今まで実行時間あたりで課金されると思っていたため、余分に課金が発生したか?!と思いAWSサポートに問い合わせたところ、QUEUEDフェーズは課金に含まれないという回答を得ました。

そのため、厳密には、SUBMITTED〜QUEUEDフェーズでは課金が発生せず、PROVISIONING〜COMPLETEDフェーズまでの実行時間で課金が発生してしまうということらしいです。

  • SUBMITTED
    • 課金されない
  • QUEUED
    • 課金されない
  • PROVISIONING
    • 課金される
  • DOWNLOAD_SOURCE
    • 課金される
  • INSTALL
    • 課金される
  • PRE_BUILD
    • 課金される
  • BUILD
    • 課金される
  • POST_BUILD
    • 課金される
  • UPLOAD_ARTIFACTS
    • 課金される
  • FINALIZING
    • 課金される
  • COMPLETED
    • 課金される

※ちなみに、ドキュメントには書いてありません...ぜひ書いておいて欲しいところです。

まとめ

AWSはとても便利なサービス群ですが、ちょっと込み入ったところを確認しようとすると、裏仕様みたいなのが出てくることが多いので、はまりポイントだと思います。

ほんとにそういう仕様か?と疑ったときは、AWSサポートに確認するしかないのが現状ですね。