Windows runnerのコストとは?2倍の倍率を解説
Windows runnerのコストとは、Windows上でCIを実行する際の1分あたりの価格であり、GitHub ActionsではLinuxの料金の約2倍です。
WindowsはCIコストの階段でLinuxとmacOSの間に位置します。約2倍の倍率はmacOSほど劇的ではないため見過ごされやすいですが、ほとんどのjobをWindowsで実行する.NETやWindowsネイティブのチームにとっては、その2倍化がほぼ請求額全体に適用されます。
Windowsがどれだけ高いか
GitHub Actionsでは、Windowsの1分は割当のうちLinuxの約2分を消費します。Linux 2-coreの約$0.008/minに対して、これは実効で約$0.016/minになります。同じworkflowのロジックが、1分あたりの価格が2倍になっているだけです。
なぜ倍率が存在するのか
WindowsはOSのライセンスを必要とし、Linuxよりも重いベースイメージと遅い起動を使う傾向があります。プロバイダーはそれらのライセンスとリソースのコストを、別項目ではなく倍率に組み込むため、より高い実効料金として現れます。
無料枠への影響
Windowsは2倍でカウントされるため、2,000分の無料分数はWindowsの時間ではわずか約1,000分にしかなりません。主にWindowsでbuildするチームは、同等のLinuxチームの約2倍速く超過に達します。
Windowsのコストが潜む場所
大きなWindowsイメージでの遅いcold start、長いMSBuildとテストの実行、そして変更ごとにWindowsのバリアントを追加するmatrixのlegは、すべて2倍の料金で積み重なります。クロスプラットフォームのmatrixは、Windowsのコストがひそかにjobを2倍化させる一般的な場所です。
コストを抑える
本当にWindows固有のjobだけをWindowsで実行し、共有作業(linting、パッケージング、Windows以外のbuild)はLinuxに保ちましょう。依存関係とbuildをcacheして、2倍の倍率が増幅する分数を削減します。
より安価なWindowsのCI
より低いベース料金と少ない無駄は、どちらも倍率が適用される場所でより大きく効いてきます。不安定なWindowsの再実行を回復させることは、Linuxの再実行の2倍を節約するため、ウォームプールと自己修復 - そして約70%安価なベースライン - がWindowsのワークロードで相乗効果を発揮します。
重要なポイント
- Windows runnerはGitHub ActionsでLinuxの1分の約2倍のコストがかかります。
- OSのライセンスとより重いイメージが2倍の倍率を生みます。
- 無料の分数はWindowsで約2倍速く消費されます。