ガイド
専用のMac miniでMacのCIファームを運用する
5〜20台の専有Mac miniをCIファームとして運用する方法:プロジェクトごとのランナー、1つのアカウント、1通の請求書、返信するエンジニア。
2026-09-20更新
1つのチームのiOSビルドなら、Mac mini 1台で余裕をもってこなせます。アプリが3つになり、2つのブランチを並行してビルドし、リリーストレインを回すようになった時点で、ファームが必要になります。その構成次第で、CIが速いままか、誰もが不満を言う存在になるかが決まります。
ここでは、MacDutyで5〜20台の専有Macを運用しているチームのやり方を紹介します。
人数ではなく、ビルドの同時実行数から考える
重要な数字は1つだけです。最も混み合う時間帯に、同時にいくつのビルドを実行する必要があるか。開発者の数でもリポジトリの数でもなく、同時実行ビルド数です。
多くのiOSチームに当てはまるおおよその目安:
| 状況 | 台数 |
|---|---|
| アプリ1つ、チーム1つ、PRビルド | 1〜2 |
| アプリ2〜3つ、PRとナイトリーを並行 | 3〜5 |
| リリーストレイン、デバイスマトリクスでのUIテスト | 6〜10 |
| 多数のプロダクトを担当するエージェンシーやプラットフォームチーム | 10〜20以上 |
判断材料はキューの待ち時間です。ピーク時にビルドが2〜3分以上待つようなら、マシンを追加してください。開発者全員が待つ1時間よりも安く済みます。
1台に1ランナーか、複数か
各Mac miniはマシン全体がお客様のものです。ハイパーバイザーも、リソースを奪い合う隣人もいません。そのため、有効なパターンが2つあります。
1台に1ランナー
最もすっきりした構成です。ビルドがCPU、GPU、メモリをすべて使えます。与えたコアをすべて使い切るXcodeビルドやUIテストに向いています。
1台に2〜3ランナー
ジョブが小さくI/Oバウンドな場合に有効です(ユニットテスト、lint、パッケージング)。32 GBのM4またはM6なら、軽いジョブ2つを並行して余裕をもって実行できます。
両方を組み合わせるのが普通です。重いマシンはリリースビルド専用にし、軽いマシンには短いジョブを詰め込みます。
チームとプロジェクトでファームを分ける
マシンにラベルを付け、パイプラインからそのラベルに振り分けます。便利な分け方:
プロジェクト別
ios-app、sdk、internal-tools。各リポジトリが自分のラベルを指定するので、あるプロダクトのビルドが壊れても、別のプロダクトが止まることはありません。
用途別
高速で常にウォームな状態のprマシンと、署名付きビルドのたびに消去されるreleaseマシン。
クライアント別
エージェンシーは、クライアントごとに専用のマシンを用意し、認証情報と証明書も分けます。共有するものはなく、アカウント間で漏れるものもありません。
すべて1つのMacDutyアカウントで管理し、月末に請求書が1通届きます。
ファームを健全に保つ
プロジェクトの切り替え時には再インストールする
1年間ビルドを続けたMacには、Xcodeのバージョン、シミュレータ、キャッシュがたまります。マシンを新しいプロジェクトに回すときは、サポートにクリーンな再インストールを依頼してください。Macが消去されるため、お客様の承認があった場合にのみ実施します。
ツールチェーンを固定する
プール内のすべてのマシンで同じXcodeバージョンを使い、アップグレードは計画的に行います。マシンごとに環境がずれたファームでは、あるランナーでは通り、別のランナーでは失敗するビルドが生まれます。
CPUではなくキューを見る
ビルドマシンのCPUグラフは常に危なそうに見えますが、対処につながることはほとんどありません。ハードウェアを追加すべき時期は、キューの待ち時間でわかります。
予備を1台置く
10台あれば、1台が止まっても障害ではなく、ちょっとした不便で済むようにしておくべきです。
オーケストレーション型Macクラウドとの比較
オーケストレーションプラットフォームは、仮想化したmacOSの上にKubernetes風のスケジューリングを重ねており、その層の分も料金に含まれます。大規模に、ジョブごとに使い捨てのVMを立ち上げる必要があるなら、確かに役立ちます。
20台未満のチームの多くには、その必要はありません。必要なのは、止まらず、キャッシュをウォームに保ち、毎月同じ金額で使える、高速な専有Macが数台です。専有ファームとはまさにそれです。物理マシンを丸ごと定額で使え、ビルドキャッシュはVMと一緒に捨てられることなく、次のジョブのために残ります。
リリース前の午前2時に差が出る点もあります。ラックを運用している担当者がメールに返信します。
ファームのセットアップ
台数、モデル、インストールが必要なものなど、構成をお知らせください。ご依頼があれば、指定のXcodeバージョン、ランナーエージェント、鍵、証明書を設定します。運用中の再インストールや台数構成の変更も、その都度お客様の承認を得たうえで対応します。
本日在庫あり
これらは現在ラックに設置済みです。1台選んで付属するものを確認し、アカウントは注文時に作成するだけで済みます。
ラックを確認中
お客様専用のMac mini
構成を選んでください。在庫がない場合はメールアドレスを残していただければ、ラックに設置した日にご連絡します。
年額:月払いより19%以上安い
質問
- 1つのMacDutyアカウントで複数のMac miniを使えますか?
- はい。1つのアカウントに必要な台数のマシンを登録でき、請求書は1通です。個人でも、お持ちの法人ごとでも利用できます。
- iOS CIには何台のMac miniが必要ですか?
- チームの人数ではなく、ピーク時の同時実行ビルド数で決めてください。アプリ1つなら1〜2台、複数のアプリを並行してビルドするなら3〜5台、リリーストレインやエージェンシーなら6〜20台です。
- 1台のMac miniで複数のCIランナーを実行できますか?
- はい。マシンはすべてお客様のものです。重いXcodeビルドには1台に1ランナー、軽いI/Oバウンドなジョブなら32 GBのマシンで2〜3ランナーが目安です。
- チームやクライアントごとにマシンを分けられますか?
- はい。1つのアカウントと1通の請求書のまま、マシンにラベルを付けてプロジェクトごと、クライアントごとに分け、認証情報もそれぞれ別にできます。
- 専有Macファームはオーケストレーション型Macクラウドより安いですか?
- CIの負荷が安定しているなら、安くなります。物理マシン1台ごとの定額の月額料金で、時間単位の課金も、オーケストレーション層の費用もありません。
次へ