短周期のiOSチームでは、PRごとにシミュレータ煙テスト、リリース枝ではアーカイブレーン、ホットフィックスは他人のmacOSキューの後ろに置けません。CircleCIのマネージドmacOS実行環境と、日単位で借りるクラウドMacに載せたセルフホストRunnerは、どちらも「CIにAppleシリコンが要る」を満たしますが、プライベート依存の扱い、並行の硬い上限、プロダクトへ約束できるキューSLOで分岐します。本稿はベンダー比較ではなく、スプリント単位のマトリクスとして整理します。
プライベート依存:鍵を誰が握るか
HTTPSのSPM、CocoaPodsのプライベートspec、社内Gitサブモジュールは、1ジョブを超えて生きる資格情報を要します。マネージドmacOSではプラットフォームのシークレットストアや短命トークン、エグレス許可に寄せがちで配線は速い一方、ローテーション周期と監査モデルはプラットフォーム準拠になります。専用クラウドMacにRunnerを載せる場合は、組織所有のキーチェーン、resolverの固定、読み取り専用デプロイ鍵を社内レビューに合わせやすい反面、ローテとブラスト半径の運用は自前です。
目安として、コンプライアンスが単一のシークレット仲介と不変ログを求めるならマネージドが書類勝ちしやすく、VPNスプリットや社内ミラー、マネージドイメージでは摩擦の大きいサブモジュール取得経路が必要なら日単位Mac+セルフホストの方が驚きが少ないことが多いです。macOS専用の2本目パイプライン設計は2026年短周期スプリント:2本目のmacOS CIパイプラインを増やすか、JobをLinuxエージェントへ分割するか?待機コストとシークレット分離の意思決定マトリクスとFAQも参照してください。
並行上限とキューの物語
CircleCIなどはmacOS容量を組織の並行枠とプラン階層に束ねます。経理には分かりやすい一方、バーストには厳しく、活発な2枝+リリース裁断でもmacOS並行が低いと直列化します。日単位で借りるクラウドMacにRunnerを置くと、その期間はコア占有に近づき、キュー深さは「何台立ち上げたか」が主で、午後の他テナント混雑の影響は小さくなりがちです。
社内SLOには「ビルド壁時計」だけでなくWebhookからmacOS上で最初のステップが動くまでを入れてください。PRフィードバックでp95キュー待ちが5〜10分を超えるなら、マネージド並行を買い増すか、タグ付きの日単位Runnerを少数静的プールに載せます。シェルExecutorのキャッシュキーとバースト運用は2026年短周期バーストビルド:GitLab CI セルフホスト macOS Runner をクラウド Mac に接ぐ Shell Executor、キャッシュキーとタグ戦略──GitHub Actions 併用時の意思決定マトリクスと実行パラメータ FAQが詳しく、CircleCIと他系を混ぜるときもタグ規律は同じです。ノード側のDerivedData/Pods行列は、リモートキャッシュと本地ディスクの比較記事(開発日記のクラウドMac CI系)でパラメータ化すると運用が楽です。
| 観点 | マネージドmacOS(例:CircleCI) | 日単位クラウドMacのセルフホスト |
|---|---|---|
| プライベート依存/エグレス | 公式テンプレ+シークレットストア。カスタム経路は少なめ | VPN・ミラー・DNSを自在。運用は自前 |
| 並行の上限 | プラン/組織キャップ。共有フリートのノイズ | 台あたり排他に近い。台数でスケール |
| キューSLOリスク | 混雑でスパイク。Webhook→開始p95を監視 | 外部ノイズは小さめ。ディスクとイメージドリフトに注意 |
| イメージ衛生 | 焼き込みスタック。スノーフレーク保守は軽め | Xcode/CLTを自前ピン留め。独自調整は速い |
| コストモデル | 分+並行階層 | 日リース+Runner保守の人月 |
キューSLOの意思決定マトリクス(実務FAQ)
マネージドに留まる条件:p95キュー待ちが許容内で、プライベート依存がセキュリティ承認済みPATのHTTPSに収まり、特殊なネットワーク経路が不要。日単位クラウドMacを足す条件:同一スプリントでp95がSLOを二度割る、TestFlightホットレーンでコアを確定させたい、特定ジョブクラスでは鍵を自前ハードに閉じたい、のいずれか。
ログに分ける:キュー待ち、依存フェッチ、コンパイル、コード署名/公証。「CIが遅い」の多くはDNSやミラーの遅延がビルドの帽子をかぶっているだけです。ロールバック:セルフホストのディスクが腐ったら、最後に成功したマネージドイメージへピン留めしたワークフローに戻すYAMLを月1でリハーサルしておき、火事場にしないこと。
mac-managed-prで広く回し、mac-dedicated-releaseで排他を取る。一度の愚痴ではなくSLO違反でジョブをタグ間昇格させる運用にすると、感情ではなく閾値で動けます。
2週間バーンインのチェックリスト
予算を確定する前に、通常スプリント負荷で両レーンを14日計測してください:
- Webhook→Runner開始をワークフロー別に取り、mainとfeature枝パターンで分ける。
- 依存フェッチをコンパイルから切り離してログし、SPM/Podsのミラー問題を「Xcodeが遅い」に混ぜない。
- 署名を専用レーンで毎日一度回し、Provisioningドリフトは負荷時に出ることを忘れない。
- フォールバックYAMLを月次で通し、セルフホストのスナップショットが死んだ瞬間にマネージドへ戻せることを確認する。
マネージドのキューp95が緑でコストも読めるなら、リリース週だけ極小のセルフホストプールで足ります。p95が合意閾値を繰り返し超えるなら、macOS分を専用ハードへ寄せ、マネージドは安全網として残すのが現実的です。
クラウドMac miniなら、キュー賭けが腹落ちする
セルフホストRunnerを載せるにしても、CI失敗の合間に手で直すにしても、AppleシリコンのMac mini級はXcodeとSwiftリンカに呼吸域を与えます。ユニファイドメモリは大きなSPMグラフでのスワップ振動を抑え、macOSの安定性は無人Runnerを「つまらなく」保ちます。Gatekeeper・SIP・FileVaultで休止中の秘密も守れるので、「今日は共有フリートが静かだといいな」に頼らない選択肢になります。
待機電力がおおよそ4W級で筐体も小さく静音なので、バーストチームには日単位リースと相性がよいです。リリース週だけ立ち上げ、キャッシュを暖め、遊んでいる金属には課金しない運用が現実的になります。
macOSキューリスクから専用レーンを切りたいなら、VPSSparkのクラウドMac mini M4はSLO実証に強い出発点です——プランを今すぐ確認し、他人の並行枠を待たずに短周期で出荷しましょう。