Skip to content
Latchkey

CI 分(CI minute)とは? CI 請求額を左右する単位

CI 分とは、runner があなたの job の 1 つを実行するのに費やす 1 分間の実時間(wall-clock)です。ほぼすべての CI プロバイダーが計測し課金する単位です。

CI の「分」と言うとき、それは課金対象の runner 時間を意味します。パイプラインが実行するすべての job は、runner があなたの step を開始した瞬間から終了するまで分を消費します。パイプラインはあらゆる push と pull request で実行されるため、これらの分はすぐに積み重なります。だからこそ CI 請求額を気にするなら、CI 分は理解すべき最も重要な単位なのです。

何が 1 分としてカウントされるか

CI 分は、あなたの job が実行されている間の runner 上の実時間です - checkout、依存関係のインストール、build、テスト、deploy。CPU 時間でも開発者の時間でもなく、マシンがあなたのために稼働している時間です。job が 7 分 10 秒かかった場合、それを実行したマシン上のその経過時間で課金されます。

切り上げと最小単位

ほとんどのプロバイダーは各 job を次の 1 分単位に切り上げるため、12 秒の job でも丸 1 分分かかります。50 個の小さな job から成る fan-out の matrix を実行すると、切り上げだけで実際に支払う compute が倍になることもあります。この切り上げ税のため、多数の些細な job よりも、少数のやや大きな job の方が安くつくことがよくあります。

分がどのように金額になるか

GitHub ホストの Linux 2-core runner は 1 分あたり約 $0.008 で、月 100,000 分はより大きな runner や OS の乗数を適用する前でおよそ $800 になります。表面上の単価はごくわずかに見えますが、忙しいチームでは 1 日に何千回も分が消費され、請求額は単に単価にカウントを掛けたものです。

分はすべて同じではない

Windows runner の 1 分は通常 Linux の 1 分の約 2 倍、macOS の 1 分は約 10 倍かかります。同じ workflow でも、どの runner の OS とサイズに割り当てられるかによってコストは大きく変わります。したがって、1 分あたりの単価を伴わない「使用した分数」は物語の半分しか語りません。

分が無駄になる場所

  • cache を復元する代わりに毎回依存関係を再ダウンロードする cold start。
  • 完全な再実行を強制し、同じ作業に 2 回課金される flaky なテスト。
  • 「念のため」に予約され、遊休の余裕分にプレミアム料金を課す過大な runner。
  • 一部のプラットフォームでの、空き runner を待つ間も課金されるキュー時間。

より少ない分で済ませる

分を削る方法は 2 つあります: 各 job を速くする(caching、適切なサイズの runner、冗長な step の削減)ことと、不要だった分の支払いをやめる(flaky な再実行をなくす、過大なマシンを外す)ことです。1 分あたりの単価が安ければ、その効果が倍増します - Latchkey のマネージド runner は同じ job を GitHub ホストより約 70% 安く実行し、warm pool と自己修復がその上で無駄な分を削減します。

重要なポイント

  • CI 分は job ごとの課金対象となる runner の実時間 1 分です。
  • job は通常 1 分単位で切り上げられるため、小さな job が多いと無駄が生じます。
  • 分は OS とサイズによって金額が異なります: Windows は Linux の約 2 倍、macOS は約 10 倍。

関連ガイド