2026 マルチリージョンのリモート Mac:クロスタイムゾーン・リレー CI プレイブック

約 15 分 · MACCOME

想定読者:APAC と米国でリモート Mac ランナーを運用し、日中はキューが遊び、夜間にだけ滞留が爆発し、日次レンタルと月額の請求が稼働から乖離しているチーム。成果:UTC ウィンドウ、プールタグ、並列上限、レンタル償却を一枚の監査可能な表に載せ、ノード選定・ランナー並列・成果物各ガイドへ相互リンクします。構成:根本原因六つ、六地域マトリクス、YAML スケッチ、注意喚起、六段 Runbook、三 KPI、締めの方針、FAQ。

クロスリージョンでも、なぜ日中はキューが空き、夜にだけ詰まるのか

シンガポール、東京、ソウル、香港、米東バージニア、米西海岸ベイエリアなどにセルフホストランナーを置きながら、重いジョブのトリガーを本社タイムゾーンの cron 一本で回していると、典型的には現地営業時間帯に容量が遊び、別地域の就業終了後にマージ嵐が重なります。根本原因はしばしば「Mac が足りない」ではなく、起動時計がコラボレーション実態とズレていることに加え、カレンダー課金のレンタル稼働率が低いことです。以下に六つの再発パターンをまとめます。

運用では、キュー長と CPU 利用率を UTC で重ね、どの時間帯が構造的に遊んでいるのかを週次で切り出してください。単にコアを足す前に、トリガーとマージ窓の見直しが先です。

  1. cron を本社ローカル時刻だけで書く:六地域の UTC オフセットをマージ方針と共同設計しないため、APAC の昼間ギャップが米西海岸の終業スパイクを吸えません。
  2. 地理タグとワークロードタグの混線:夜間バッチ用プールが誤って VNC/Simulator ジョブを拾い、SSH と VNC のガイドと衝突し、復旧分数を浪費します。
  3. キュー深さのガードレール欠如:max-parallel やリポジトリ単位の並列がなく、Git fetch とレジストリ上げが Git/レジストリの Runbook の再試行と重なり、「CPU は空いているのにジョブは全部赤」という疑似容量不足になります。
  4. 火消しだけの日次/週次レンタル:基線+ピークのレンタルチェックリストと揃えず、スパイク後もデフォルトタグのまま残し、シークレット露出面とドリフトを広げます。
  5. 成果物契約のないハンドオフ:APAC 夜間に出た巨大イメージのキャッシュ失効と署名責務が固定されず、米国昼間ジョブが同じレイヤを再ビルドして M4/M4 Pro のディスク帯域を浪費します。
  6. リレーと単一リージョン二十四時間フル稼働の混同:一地域へ並列を寄せると地域 DNS と出口帯域が敏感になり、データ所在地と成果物近接の要件と衝突します。

Apple Silicon リモートを二十四時間分の監査可能なキャパシティ台帳にするには、タイムゾーン窓・ランナープール・レンタル階層を同一の変更チケットに束ねます。これは M4 と M4 Pro の選定を置き換えるのではなく、CPU 議論とセットで効きます。

表 1:六地域のリレー窓とワークロード適合(レビュー資料に貼り付け用)

窓はUTC基準の例です。実スプリントのタイムゾーンに置き換えてください。主リポジトリが米東にあるなら、コンパイル/単体テストはその近傍に寄せ、Simulator 比重の仕事は開発者密度の高い地域へ寄せ、太平洋横断の成果物往復を減らします。

地域UTC オフセット(例)典型的なリレー役割適したジョブ主なリスク
シンガポール+8APAC 午前ビルド、欧州・アフリカへのバッファコンパイル、単体、Lint、キャッシュウォーム米ピークと重なると並列を抑える、Git 出口競合に注意
日本+9JP プロダクトチーム向け深夜バッチ全量リグレッション、昇格前チェックJP/米ピークが重なるときは署名プールを分離
韓国+9居住要件が異なる場合は JP と別タグプール並列単体、キャッシュウォーム、KR 準拠ビルドデータ居住ポリシーを共有タグで混ぜない
香港+8大湾区ワークフローの橋渡し中並列ビルド、本土向け出口最適化主 Git 地域とズレる場合は成果物 SLA を定義
米東(バージニア)−5/−4(DST)主要ホスト Git と揃えやすい高頻度 PR、マージキュー、アップロードAPAC 夜から米昼のハンドオフ用キャッシュキーを定義
米西海岸(ベイエリア)−8/−7(DST)米西海岸終業前のインタラクティブSimulator、画面収録、デザイナペアVNC 帯域コスト、純 SSH バッチから分離

実行可能スニペット:ランナータグに地理+時間窓を載せる(YAML スケッチ)

社内 IaC やランナー登録でこの形に寄せ、意図を明示してください。黙って全部を飲み込むデフォルトプールを作らないことが重要です。並列とシークレット分離は セルフホストランナーのチェックリスト と一緒にレビューします。

yaml
jobs:
  compile_apac_night:
    runs-on: [self-hosted, region-sg, pool-batch, window-utc18-utc06]
    steps:
      - run: echo "APAC の夕方から米朝ハンドオフ帯の重いコンパイル"

  ui_us_west_day:
    runs-on: [self-hosted, region-usw, pool-interactive, window-utc16-utc01]
    steps:
      - run: echo "Simulator/VNC 比重が高い。バッチ並列を奪わないこと"

# ルール: window-* と region-* は cron 更新と同一の変更チケットに載せること
warning

注意:リレーは、未監査の夜間プールへ署名アイデンティティを流す許可ではありません。signingnotary ラベルは許可リスト済みホストに限定してください。

六段 Runbook:単一タイムゾーンの cron から監査可能なリレー表へ

ベースラインのハード選定は マルチリージョンのレンタルガイド を前提にします。ランナータグ分割がまだなら、先にチェックリストへ戻ってください。

  1. 開発者ヒートマップを描く:直近八週間のマージ時刻、キュー深さ、ビルド P95 を UTC に揃え、遊び時間とスパイクを色分けします。
  2. 三プールを定義:batch(SSH のみ、並列高め)、interactive(Simulator/VNC、低キャップ)、signing(許可リスト、低並列)と禁止事項を文章化します。
  3. レンタル階層を束ねる:月額はヒートマップの谷を埋め、日/週はスパイク吸収とし、退役とタグ除去をカレンダーイベントにします。
  4. 並列の天井を設定:プール別・リポジトリ別に設定し、クロスリージョンの Git/レジストリ再試行ノブと同じレビューで見ます。
  5. 成果物ハンドオフ契約:キャッシュキー、レイヤ昇格ルール、TTL を文書化し、大きな越境コピーのバイト数と分数を FinOps レビューに載せます。
  6. 隔週レトロ:遊びが残るなら本社癖の cron を疑い、スパイクが残るならコア追加よりマージ方針を先に調整します。

ダッシュボードと週次レビューに載せたい三 KPI

ネットワーク再試行やキュー深さと並べて、「リレーが効いているか」を数値化します。

  1. 遊び時間率:CPU が閾値未満かつキュー長ゼロの時間を総時間で割った値です。慢性化する場合は GHz 不足ではなくトリガー時計のズレが疑われます。
  2. ピーク待ち分数:一日の上位三スパイクの P95 待ち時間を追い、地域の終業と重なるならハンドオフかバッチ並列を出口予算内で調整します。
  3. レンタル稼働率:日レンタル機の実効ビルド分数を請求窓分数で割った値です。低い場合はタグ残置やプール誤分割を疑います。

現場観測として、タイムゾーン窓・プールタグ・並列上限を一枚のレビューで共同設計したチームは、目に見える遊び時間を縮め、混沌としたスパイクを日レンタルでヘッジしやすくなります。CapEx から OpEx へ寄せる文脈でも、時間そのものがキャパシティモデルの一部になります。

主リポジトリ地域と開発者分布が長期でズレる場合は、成果物近接とデータ所在地を同席レビューしないと、節約した CPU 分が大洋横断の同期で消えます。

口頭シフト表と場当たりの短期レンタルでは、クロスリージョンで破綻する理由

明示的な window-* タグ、並列契約、退役手順がないと、「起きている人が押す」運用に戻り、スパイクも遊びも残り、署名面だけが膨らみます。本番相当の Apple Silicon CI には、専用ベアメタル、マルチリージョン選択、基線+ピークのレンタルをタイムゾーン方針の隣に文書化することが必要です。

口頭リレーでは鍵境界の監査性と出口の予測可能性を満たしにくいです。主 Git 地域の近くにランナーを置きつつ、APAC と北米の間で容量を振りたいチームには、地域ノードとレンタル段階が透明なプロフェッショナルな Mac クラウドの方が、謎ホストをローテーションするより安定しがちです。MACCOMEMac mini M4/M4 Pro をシンガポール、日本、韓国、香港、米東、米西で提供しています。まず公開料金ページで前提を揃え、その後にランナータグをリレー表へ写してください。

パイロット:主リポジトリ近傍と開発者密度近傍に日レンタル二台、本 Runbook の六段レトロを二度回し、月次/四半期の階層と 2TB 要否を決めます。

FAQ

マルチリージョンのノード・レンタル料金ガイドとどう関係しますか?

ノードの記事はハードの置き場所とレンタル階層の選び方を説明します。本稿は同じランナー資産を二十四時間どう回すかを説明し、嵐の時間帯を日レンタルで借りる前提を置きます。同じキャパシティレビューから両方へリンクしてください。公開料金は Mac mini レンタル料金 を参照してください。

リレーは GitHub ホストランナーだけでも使えますか?

ヒートマップの発想は流用できますが、レンタル償却の話は主にセルフホスト/専用ベアメタル向きです。共有ホストランナーではマージ方針とキャッシュキーに集中してください。

Simulator ジョブは夜間バッチプールに載せるべきですか?

いいえ。Simulator と VNC は低並列のインタラクティブ系プールに置き、夜間バッチから切り離してください。混ぜると帯域と GPU 競合がフリート全体に波及します。