モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

CircleCIのDocker Layer Cachingが有料 & だいぶ高価になっていた

ざっくりまとめ

  • CircleCIのDocker Layer Caching (DLC) がパフォーマンスプラン (従量課金) の有料機能になっていた
  • DLCが有効だと、ジョブが1回走る度にVMを20分間動かしたのと同じぶんのクレジットを消費する
  • クレジットは減ったら自動チャージで課金されるので、ガンガン課金されてCI破産しないようにご注意を

Docker Layer Caching (DLC) とはなにか

docker build時の中間キャッシュ (Layer cache) を再利用する仕組み。前回のビルドから変更がなかった分の中間キャッシュを再利用できれば、その続きからのビルドのみで済むのでCI時間を短縮できる

過去の使ってみた記事 (2018年): blog.pinkumohikan.com

いつの間にか有料になっていた

自分が先の記事を書いた2018年5月時点では無料プランでも使えたが、2019年頭ぐらいから有料オプションになっていたらしい (詳細な時期は不明)

2019年11月現在では、DLCを使うにはパフォーマンスプラン (従量課金) を契約する必要がある

Docker レイヤー キャッシュを自分の環境で有効化するには?

Docker レイヤー キャッシュを利用するには、Performance プランのアカウントが必要です。

circleci.com

そして利用料はそれなりに高い

パフォーマンスプランは毎月クレジットが割り当てられ、(基本的には) CI実行時のリソース使用量に応じてクレジットが減っていく。クレジット残量は少なくなると自動でチャージされる ( = 課金される)。

DLCの利用料は、1ジョブ実行で200クレジット消費とのこと

f:id:pinkumohikan:20191108134610p:plain

MediumサイズのLinux環境 (2コア 4Gメモリ) を1分間動かすと10クレジット消費らしいので、 1ジョブ実行でVMを20分間動かしたのと同じ分のクレジットが消費されることになる

f:id:pinkumohikan:20191108134633p:plain

金額になおすと25,000クレジット = $15とすると1ジョブ実行 200クレジット = $0.12

CI高速化のためにビルドマトリックスで何ジョブも並列で走る設計にしていたり、開発者数が多かったりしたらチリツモでそれなりの額になるやも

アイヤー