単一クラウド Mac の DR は最初から業務プロセスの問題になる
排他ベアメタルでも主備宣言が無ければ証明書と秘密と Runner は単一路であり、並列第二台が追求する吞吐と単一路終了後の交代は別目的です。粗い単一タグへ詰めると混線だけが増えます。
以下五条は監視署名に対応させます。到達ログは人側と製品側で分けます。
シングルゾーンの経路依存:踏み台 SSH と制御面の BGP プレフィックスが同じ経路で揺れると周期性の損失に見え Xcode の遅さと誤認します。ヒューマンへの到達と製品への到達を二系統でアラート分割してください。
回収と期限の結合:日付レンタルの満了と公開週が重なっても凍結や更新の予約が無いのは運用設計欠落です。この区分は不可抗力として外資料に転記しにくいです。
秘密と Runner 指紋の結合:自ホスト Runner はホスト名やパス、ログインセッションに結びつきます。切替後に再登録と古い項目の整理を怠ると二重 heartbeat や偽のオンラインが残ります。
ディスクとキャッシュ:DerivedData とシミュレータログで NVMe が埋まると失敗パターンは尾部のタイムアウトです。主備でキャッシュキーと削除方針を揃えないと切替直後にも雪崩ます。
ロール混在:同一タグラインに対話デバッグと無人 nightly を同居させるとピーク時に人間側が餓死します。主備を分けてもタグ設計が汚いと複製されます。
多区 CI チームは同記事のタグ運用を前提に、障害宣言時のみ draining 例外へ差し込みます。
冷備・温備と「並列で第二 Runner」はどう現金流出と復旧時間に分岐するか
冷備は起動タイミング次第、温備は常時低負荷、並列は吞吐最大化が主です。三台目も単一路代替になるかだけは宣言してください。
| 次元 | 冷備(オン需要の日付) | 温備(月次で軽負荷常駐) | 並列の第二 Runner(双活吞吐) |
|---|---|---|---|
| 典型の復旧時間感 | 数時間から一日、依存はイメージとスクリプト | 経験値では十五分から六十分程度の切替 | スケジューラ次第で単一路敗北の復旧とは無関係のこともあります |
| キャッシュフロー | 不確実なピークでの支出 spikes | 固定月料でベースライン配賦へ載せられる | 恒久は高めだが並列キュー時間の短縮を数値化しやすい |
| 構成の強制同一か | Runbook が待機側を一段劣化と明示できる | 同等か禁止ジョブ一覧のどちらかを推します | キュー単位で同格あるいは段別を混むことが多い |
| 主な運用負担 | ウォームスクリプト、納期 SLA、秘密注入の一元化 | 二重パッチ、証明書、監視の整合 | 名前付け、資源競合、経理台帳 |
| 向くチーム像 | 予算優先かつヒット率が読みにくいプロジェクト群 | 単一路依存の公開またはコンプライアンスウィンドウが硬いとき | 常時高並列 CI を運ぶチームへ |
まず並列か主備かを線引きし 価格と租期 と合わせて選んでください。
レトロではウォーム時間と請求行を一緒に。
主領と待機領の合成判断と Runner 鍵を動かす骨格
単一 RTT だけでは主を決めないでください。踏み台と成果物と準拠と時差の四条件を加重表へ。ヘルプセンター の一般稿と併せて読んでください。
自動化前先に人手 Runbook としスタンバイ検証、 draining、Runner 指紋除去の順で最短緑へ。プレースホルダは自社語へ。
PRIMARY_REGION=sg
STANDBY_REGION=jp
TAG_PRIMARY=runner-${PRIMARY_REGION}-m4pro-64-ci
TAG_STANDBY=runner-${STANDBY_REGION}-m4pro-64-ci-dr
vault read secret/ci/${PRIMARY_REGION}/github-app
ssh ${USER}@${STANDBY_HOST} 'softwareupdate --list; xcodebuild -version'
ctl set-runner-tags ${TAG_PRIMARY} draining=true
ctl wait-queue-depth tag=${TAG_PRIMARY} max=0 timeout=45m
ctl register-runner host=${STANDBY_HOST} tags=${TAG_STANDBY}
ctl reroute-queue from=${TAG_PRIMARY} to=${TAG_STANDBY} strategy=affin-fallback
ヒント:SSH が通じても webhook が遅れたままという偽健全が起きるため踏み台と制御双方を踏んでください。
宣告権限、凍結期と非凍結期で許容復旧時間を変える可否、低配スタンバイで拒否すべき scheme をあらかじめ台帳へ書いたうえでスクリプトへ落としてください。
六段階で「切れる」を訓練可能な Runbook へ換える
障害範囲の凍結:告知・経路・ホストを分け二系統で測定し体感だけでのクローズ禁止です。
登録済み Runner draining:進行中のみ自然終了、新規遮断、上限分をログへ。
スタンバイ起立と最短健全ゲート:Xcode と秘密の可視、社内 VPN と許諾リストの四類が通るまで次へ進まない運用へ。
Runner 登録または指紋とタグ切替:コントロール面の残骸を削除し heartbeat 重複回避。末尾に地域か -dr を付け経路の後追いを容易へ。
最短の緑を先に、その後 nightly へ段増し:重資産ジョブは低配側では拒否し目立つログへ。
振り返り台帳入り:実測 RTO、ミス項目、次回訓練日の三つを確定させ、ベンダとの保守窓窓口改善も並記します。
リスクレビューやレジスタに転記できる三つの強い断言
復旧時間は訓練データでのみ証明されます:未訓練の「多分三十分」の記述は資料上は願いです。少なくとも四半期ごと draining と Runner の完全再生をタイムボックス込みで回し壁時計をログします。
低配スタンバイは禁止リスト必須です:Xcode の scheme とシミュレータ行列と LFS 量へ拒否を列挙し切替後も全面停止ムードを残さないでください。
請求期限と証明書とパッチ窓へ同一アラーム台:人間側の継続失念は不可抗力と外部監査側で異なる評価を受けることがあります。
注意:本文の組み合わせと閾値は文書レイアウト上の一例であり、各区の実測と法務要件は自社判断で上書きしてください。
ノート/VM と違い排他ベアメタルを日付と月次で多区に置けるほど Runbook と相性があります。MESHLAUNCH の Mac Mini クラウドレンタルは多くのチームへ実務的により良い解です。独占回線へ近い経路へ寄せ分界を数値へ。マルチリージョンでのレンタル戦略 と合わせてください。
完全一致は不要であり待機側で許容するワークロードを Runbook が宣告します。マルチリージョンでのレンタル戦略 と合わせ、DR の位置づけを埋め込んでください。
自動化と納期 SLA と golden 資産の成熟度次第です。価格と租期 と合わせ、固定費をリスク実体へ寄せられるか評価してください。
並列側はキュー分割と並列処理が軸であり主備側は単一路終了後の交代が軸です。CI のキューラウティング のタグ運用へ沿いつつ、障害宣言と draining を別ワークフローへ切り離してください。