追記 2021/06/08
https://circleci.com/pricing/
この記事で紹介しているプランが Performance プランとして正式に公開されています。
記事を書いた当時とクレジット数が違うようなのでこちらの記事はあまり参考にされないほうが良いと思います。じゃあ消せよと言われるかもしれませんが、過渡期の記録としてこの記事は残しておきます。
正しいクレジット数はこちらを参照してください
https://circleci.com/pricing/#compute-options-table
この記事について
https://circleci.com/pricing/
2018/06/05現在、CircleCIの有料プランには、追加コンテナの料金を毎月支払うというプランが公開されています。しかし、それとは別で Performance Pricing plan というプランが用意されています。いくつかの機能は現在 Performance Pricing plan でないと利用できないようになっています。
この記事では、CircleCIのサポートとやり取りをして分かった Performance Pricing plan で使えるようになる機能とプランの料金体系を紹介します。
※ この記事で紹介している Performance Pricing plan は、まだ実験的なものなようです。現在、私の所属しているチームはこのプランを利用しています。
↑ まだ公開されていないプランなので記事にしてよいかをサポートに聞いたところ、"Please feel free to write a blog post as long as you make a note that you're piloting the plan!" と回答を受けたので明記しました。
背景
CircleCIでAndroidのビルドやユニットテストを実行している際に、よくメモリエラーで落ちるようになりました。おそらくKotlinの導入モジュールを増やしたタイミングだと思われます。
CircleCIでのメモリエラーについて調べたところ、configファイルで resource_class
という設定を追加するとマシンのメモリを増やすことができるということがわかりました。2017年末の段階ではサポートに問い合わせれば有料プランでも無料プランでも、resource_class
が利用できたようです。1 2
しかし、サポートに問い合わせてみると「resource_class
は新しい料金体系である Performance Pricing plan でないと利用できません」という回答を受けました。サポートとのやり取りの中で、Performance Pricing plan の追加機能と料金体系について教えてもらいました。
追加機能
Performance Pricing plan では少なくとも以下の機能が追加されるようです:
-
resource_class
:マシンの仮想CPU数、RAM容量を指定できます。公式の説明があります。 - Docker Layer Caching:キャッシュによってビルド時間の削減に活用できるようです。こちらも公式の説明があります。
- 365 Day Data Retention:365日間、ビルドデータの保持をしてくれるようです。
料金体系
コンテナプランは1コンテナあたり毎月これだけという定額課金でしたが、Performance Pricing plan はいわゆる従量課金プランです。ビルド時間やアクティブユーザー数によって毎月の料金が異なります。
クレジットによる課金
毎月のビルドに使ったリソースがクレジット(credit)という単位で計算され、1クレジットでいくらという料金体系になっています。クレジットはビルド時間1分ごとに増えていきます。また、1分あたりに増えるクレジット数はビルドに利用されるマシンによって異なります。LinuxよりもmacOSの方が高く、また resource_class
で性能の良いマシンを指定すると高くなります。具体的には以下のような表になっています。
Linux
Resource Class | 仮想CPU数(vCPU) | RAM | クレジット数(credit) |
---|---|---|---|
small | 1 | 2GB | 5 |
medium(default) | 2 | 4GB | 10 |
medium+ | 3 | 6GB | 15 |
large | 4 | 8GB | 20 |
xlarge | 8 | 16GB | 40 |
macOS
Resource Class | 仮想CPU数(vCPU) | RAM | クレジット数(credit) |
---|---|---|---|
large | 4 | 8GB | 50 |
たとえば、Linuxで resource_class: large
を指定して1,500分間ビルドし、macOSで1,000分間をビルドした場合、
1,500 × 20 + 1,000 × 50 = 30,000 + 50,000 = 80,000
と計算され、 80,000クレジットとなります。
2018/06/05現在、10クレジットあたり0.006ドル課金されるので、
80,000 ÷ 10 × 0.006 = 48
となり、クレジット代は48ドルになります。
アクティブユーザーによる課金
さらに、CIを利用するアクティブユーザー数によっても課金されます。アクティブユーザーの定義は「個人のPCからビルドをトリガーした人」だそうです。アクティブユーザーは5人からとなっており、その月のアクティブユーザーが5人未満だとしても5人として計算されます。
2018/06/05現在、1アクティブユーザーあたり15ドル課金されます。
アクティブユーザーは5人からなので、最低75ドル 、5人より多い場合は1人あたり15ドル追加で課金されます。
その他
切り替え方法
サポートに Performance Pricing plan にしたいと連絡すると、CircleCIの設定画面にプラン切り替えの設定を出してもらえました。
注意:一度切り替えると戻せない
現在、一度 Performance Pricing plan に切り替えるとコンテナプランに戻すことはできないそうです。私のケースでは、サポートに自分のプロジェクトのビルド時間やアクティブユーザーから計算した見積もりを出してもらえたので、皆さんも見積もりを出してもらうことをおすすめします。
さいごに
この記事では、CircleCIの新しい有料プラン Performance Pricing plan について、利用可能になる機能と料金体系についてまとめました。Performance Pricing plan が正式に公開されるようになったら、この記事の意味はあまり無い感じになりますが、もし誰かのお役に立てば幸いです。