シンガポール、日本、韓国、香港、米国東海岸、米国西海岸で専用リモート Mac上に巨大モノレポを載せるチームは、失敗のたびに CPU を疑いがちです。実務では支配的なコストは多くの場合、Git オブジェクトグラフの取得時間、ワーキングセットの形、そしてリース会計と噛み合わない CI トリガー方針にあります。本稿では監査に耐えるパラメータ行列と FinOps チェックリストを示します。shallow、blobless、treeless、sparse checkout の使い分け、パスフィルタと affected ビルドの版管理、Git とレジストリのホットパスをノードリージョンへ同居させる方法、そして DerivedData と成果物に対するディスクウォーターマークをリース窓ごとに強制する手順です。既存のモノレポ変更検知 runbook、Xcode Cloud ハイブリッド CI マトリクス、DerivedData 再現性チェックリストと併読してください。CocoaPods/SPM のミラーとディスク観点はミラー記事で補完します。
xcodebuild を開始し、キュー深度が上がる一方で FinOps は「並列を足せ」としか見えず、オブジェクト取得曲線が見えません。DerivedData と SourcePackages に上限がなく、シミュレータ並列でユニファイドメモリと SSD が同時に張り付き、スワップ嵐になります。六国ノードが買うのは予測可能な専用 IO と安定したリージョナル egressであり、モノレポが買うのは単一リポジトリでの協業です。パイプラインにオブジェクトグラフ予算が無い限り、混乱はノート PC からクラウドへ移転するだけで、弾力リースがキュー崩壊を修復することはありません。四半期レビューでは vCPU 分単価だけでなく GB·分とルールセット改定回数を同じスライドに載せると意思決定が改善します。
本ガイドはPods/SPM ミラーチェックリストと補完的です。Git スリミングは「リポジトリがどれだけ大きいか」、ミラーは「解決がどれだけ騒がしいか」に答えます。本ページは前者とトリガーに焦点を当て、依存解決そのものだけに依存しない運用へ導きます。実際の現場では、ミラー障害と blob ミスを同一ダッシュボードで見ないと、原因切り分けに日数を要します。
組織的な失敗モードはルールセット版が無いことです。パスフィルタが複数 YAML に散らばると、レビューで週次差分を説明できません。コンテナイメージタグと同じ厳格さで AFFECTED_RULESET=v2026.05.08(例)を必ずログへ出してください。加えて、フィルタ拡張は変更管理チケットと紐付け、緊急時の「とりあえず全パス」が恒常化しないようにします。
| 戦略 | ディスクとコールドスタート | リスク/アンチパターン | リース FinOps との結び付き |
|---|---|---|---|
| フル clone | 最も完全だがコールドスタートは最遅、ピークディスクも最大 | 巨大リポジトリと短期リースには不向き | 月次ベースラインやリリース直前の窓向け |
| Shallow(--depth) | 履歴を切り詰め、clone を実質的に縮小 | 深い履歴や特定のマージベースを要するワークフローを壊す | 再構築が安いバースト日次ホストに強く合う |
| Blobless(clone.filter) | 作業ツリーは速く、blob はオンデマンド | ランダムな blob ミスで egress が揺れる | 予算表に Git リモートとノードリージョンの同居を明記する |
| Treeless | ピークディスクをさらに削減 | 監査が弱く、デバッグ税が高い | 明示例外付きのコンパイル専用ジョブのみ |
| Sparse checkout | ファイル数が減り、インデクサ負荷が下がる | 運用コスト、共有ヘッダ欠落による不可解な失敗 | affected ルールと共有ディレクトリ許可リストとセットで使う |
第一原理:専用リモートホスト上の GB·分はすべて台帳行に写すこと——オブジェクト取得、コンパイル、キャッシュ、成果物、ログです。オブジェクトグラフ予算が無いと、すべてが「マシンが遅い」に潰れます。
git clone の壁時計、ワーキングセット GB、初回グリーン xcodebuild 前の空きディスク。六国すべてで同一プローブを回しベースラインを保存します。GIT_CLONE_MODE を明示的に export します。DerivedData、SourcePackages、xcresult を上限付きで退避します。ステップ二と三の間に人間ゲートを置き、パスフィルタ拡張は二名承認にします。「とりあえず緑」がサイレントにパスを再グローバル化しないようにします。承認ログは四半期にサンプリングし、例外の常態化を早期に検知します。
ステップ四は順序付きスクリプトでなければなりません。再生成可能なキャッシュを先に消し、最後にリポジトリへ触れます。短期リース最終日のディスクアラートでオブジェクト破損を招かないためです。ディレクトリ境界は変更検知 runbookと相互参照してください。
# 例:blobless + depth(リモート URL は置換)
export GIT_CLONE_MODE=blobless_shallow
git clone --filter=blob:none --depth=50 \
https://git.example.com/acme/monorepo.git "$CI_WORKSPACE/repo"
# 監査用:ルールセット版を印刷
echo "AFFECTED_RULESET=${AFFECTED_RULESET:-v2026.05.08}"
git clone 開始から初回成功シミュレータビルドまでの分。週次で 25% 超の上昇がありルール変更が無いなら、CPU より先にblob ミスまたはミラー劣化を疑います。rsync は監査不能なワーキングツリー漂移を CI に注入します。今日のローカルパッチ行は明日の緑ビルドと成果物ハッシュの不一致を生みます。永久 depth=1 はレビューを欺き、履歴と依存監査可能性を壊すため、コンプライアンスの問いに「分からない」しか返せません。これらの近道に対し、六国のいずれかでオブジェクトグラフ方針とリースを同じ FinOps シートに載せられる専用 Apple Siliconが必要で、Git とレジストリのホットパスを同居させ、DerivedData ウォーターマークをスクリプト化できるとき、MACCOME クラウド Mac miniは受理チケット化が容易です。シンガポール、日本、韓国、香港、米東西のノードを日次から四半期リースで束ね、フル履歴と五シミュレータを短期リース単体に載せる前に、コールドスタートとディスクピークを封じ込められます。
さらに、runner ラベルとリース SKU を同じスプレッドシートで管理すると、エンジニアリングと財務の言語が一致し、議論が「CPU 使用率だけ」に閉じるのを防げます。これは六国展開における再現性とコスト可視性の両方に効きます。
成果物は三表です。ジョブクラス別 Git モード行列、パスフィルタ版と例外ウィンドウ、リース行にマッピングしたディスク退避。新入社員は初日に、自分の PR がどの clone モードか、いつフィルタを広げるか、アラート時に最初に消すディレクトリはどれかを答えられる必要があります。ハイブリッド CIと併用する場合、どのキャッシュ層を Xcode Cloud に残し、どのオブジェクトグラフ段階をベアメタルに残すかを明文化しないと、同一 blob に二重課金します。
最終五分チェックは、ルールセット版がマージとともに上がること、そしてGit リモートがノードリージョンと揃うことです。揃わない場合、リージョンを増やしても遅さを地理的に複製するだけです。次四半期のキャパシティ計画では C2G とディスクアラートを必ず同じレビューアジェンダに載せてください。