macduty

ガイド

専用の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%以上安い

  • 16GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 一番人気
    24GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 32GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
Visa Mastercard SEPA振込価格はEUR表示です。VATは該当する場合、お支払い手続き時に加算されます。 最低1か月、その後はどの月でも解約できます。

質問

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台ごとの定額の月額料金で、時間単位の課金も、オーケストレーション層の費用もありません。

次へ