TailscaleとWireGuard · Split DNS · 六段階Runbook · 最小露出 · 意思決定マトリクス
テックリード、プラットフォームエンジニア、DevOpsの多くは、リモートMacを「インターネットにSSHを晒せば十分」と捉え、Runnerタグ、DNS検索ドメイン、リージョン横断の引き継ぎで足踏みします。本稿では私設化の前に潜む五つの隠れコストを列挙し、三モデルのトポロジ表、六段階の参加Runbook、最小露出チェックリストを示し、最後に意思決定マトリクスで「管理メッシュか自前WireGuardか」を議論ではなく承認シートに落とします。引き継ぎ経路の体感遅延はSSHとVNCのガイドを、台数と発注は注文ページを参照してください。
リモートMacが複数プロジェクト、複数Runner、複数リージョンへ混在すると、壁時計のコンパイル時間がボトルネックになることは稀で、名前の食い違い、経路の迂回、鍵と監査フィールドの不一致が主因になります。公網優先のSSHは初日の設定を最小化しますが、露出、DNS、コンプライアンスを各エンジニアの習慣に押し付けます。次の五つの痛みはだいたい同時に現れ、一つの規則を示します。TailscaleとWireGuardの銘柄を争う前に、チーム全体が同じ名前空間で呼べるネットワーク名前空間へノードを載せることです。
リゾルバのドリフト:ノートPCとビルダーが同一ホスト名を別アドレスに解決し、CIがまれに誤ったプールへ当たる。Split DNSと固定検索ドメインがないと、切り分けは運任せになります。
経路の迂回:私設パスに留まるべきrsyncやキャッシュ取得がポリシーで公網出口へ押し出され、請求とジッタが増えます。トポロジ図がないと「コンパイルが遅い」として誤分類されます。
アイデンティティとポートの混線:対話アカウント、CIサービスアカウント、一時ベンダーが同一入口を共有し、インシデント時に監査フィールドがGitコミットと揃いません。
リージョン中継の欠落:二つのリージョンプールが成果物で会話するのに明示的中継と割当がなく、リンクは「動くが不安定」になります。メッシュの価値は最短経路の予測可能性であり、スローガンではありません。
引き継ぎとの断絶:私設化のあとも個人のssh_config魔術に頼り、ServerAlive、踏み台規則、ディレクトリ境界がチームRunbookに無いと、人間の習慣が改善を消します。
自前WireGuardと管理されたコントロールプレーンを比較するなら、次の表をレビュー用スライドとして扱い、マーケ資料として扱わないでください。プールとラベルルーティングの詳細はマルチリージョン共有ビルドプールのガイドへ進みます。
TailscaleとWireGuardは並べて語られがちですが、判断の起点はコントロールプレーンを誰がホストするか、データプレーンを自前構築する必要があるか、DNSとルーティング方針を誰が所有するかです。管理メッシュは初日コストを下げ、自前WireGuardはカスタムとベンダーロックインリスクのトレードです。銀の弾ではなく、スキルに合う運用境界を選びます。
| モデル | 典型フィット | 主な利点 | 主なコスト |
|---|---|---|---|
| 管理専用の私設パス | 踏み台と監査入口だけが必要 | 爆発半径が小さく、変更が集中 | 追加方針なしではビルド流量が公網へ出る可能性 |
| 全私設到達性 | マルチリージョンRunnerとノートが安定して会話する必要 | ホスト名が安定し、経路が予測可能 | ルーティングとACLの複雑さにオーナーが要る |
| リージョン中継 | コンプライアンスがデータプレーンを分割 | リージョン横断が監査可能でレート制限可能 | 中継帯域と単一障害点を明示設計する必要 |
私設化は図を派手にすることではなく、リポジトリと同様に版管理できる接続契約、つまり誰がどこをどの名前で接続できるかをビルダーに与えることです。
再現可能な私設アクセスは、チーム名前空間での呼び名、到達可能なプレフィックス、公網に出してはいけないフローに答えられなければなりません。以下の六段階は「名前と経路を検証し、方針を固定し、障害を演習する」順です。各段階に成果物とオーナーが要ります。公式の接続とリージョン注記はヘルプセンターにあります。
ベースライン解決:ノート、踏み台、対象Macからリゾルバ出力と検索ドメインを取得し、差分を一枚にまとめ、生ログを添えます。
ホスト名の固定:チームFQDNまたは安定したMagicDNS名を割り当て、長期的に個人の/etc/hostsに依存しないこと。
Split DNS方針:内部解決が必須のドメインと明示的な例外を列挙し、方針バージョンと変更ログを成果物にします。
経路プローブ:重要なペアに対してtraceroute等で公網出口への誤ヘアピンが無いことを証明し、ピーク時と保守窓のキャプチャを残します。
ACLとポート行列:SSH、キャッシュ同期、成果物取得、可観測性エンドポイントを既定拒否メモ付きで文書化し、セキュリティレビューと共有リンクを残します。
障害演習:リゾルバ遅延、単一中継喪失、リージョン出口輻輳を模擬し、復旧時間とスプリント向けフォローを記録します。
dig +short build-mac-pool.internal A dig +short build-mac-pool.internal AAAA traceroute build-mac-pool.internal
注記:IPv4とIPv6を併用する場合、既定スタックとフォールバックをRunbookに明記し、片側がAでもう片側がAAAAで別経路へ行く分裂を避けます。
私設化が最も早く崩れるのは、切り分けのために0.0.0.0リスナーを開けたり、マスタ鍵を共有ドライブに置いたり、ベンダーを本番ACLグループに混ぜたりする場合です。各行はオーナーとレビュー周期に紐付け、口頭だけにしないでください。
入口の収束:SSHと可観測性ポートは既定で公網に晒さず、踏み台かベンダー管理入口を選び、変更票に記録します。
鍵の分離:対話鍵、CIトークン、署名素材を別ボールトに置き、カレンダー駆動のローテーションを徹底します。
監査可能なACL:どのプログラムのために誰がどのプレフィックスを要するかをグループ拡張ごとにログし、四半期で陳腐化した付与を見直します。
タイムライン整合:私設ハンドシェイク、失敗ログイン、ビルドジョブIDをタイムゾーン安全な一本の線で再生できるようにします。
Runnerラベル同期:ネットワーク分割が動いたらRunner登録とキューゲートを更新し、退役ラベルが死んだプレフィックスを指さないようにします。
警告:「全員管理者」ACLはインシデント後に縮みにくいことが多いです。既定は拒否し、プロジェクト単位で最小権限を積み上げます。
ホスト名、ACL、DNSを版管理ドキュメントに落とせば半分です。残り半分は引き継ぎとRunnerキューと同じ説明責任モデルです。表はレビューで使い、定性的な幅は自社計測で置き換えてください。
| チーム状態 | 既定の推奨 | 受け入れシグナル | よくある落とし穴 |
|---|---|---|---|
| 小規模で高速反復 | 管理メッシュと厳格ACL | 新入社員がRunbookで三十分以内にビルダーへ到達 | 個人hostsと魔法ポートへの恒久依存 |
| マルチリージョンプール | 明示的中継と二重スタック方針 | リージョン横同期のp95とキュー深度が説明可能 | 全フローを一つの中継に押し込む |
| 高コンプライアンス業界 | ゾーンACL付き自前WireGuard | 権限変更がすべてチケットに追跡可能 | 暗号化だけで監査可能な付与が揃わない |
個人ノートのテザリング、場当たりのFrp、監査されないリバーストンネルは、コンプライアンス週や引き継ぎ週に一括で帳消しになりがちです。非Apple署名やシミュレータ差分も統合の最終盤で表面化します。一方でリージョン、ディスク、ネットワーク階層を選べる専用クラウドMacノードは、ゴールデンイメージと並行して私設パスをコード化しやすくします。
誤解:「私設ネットの内側ならSSH強化は不要」というものです。私設リンクは露出半径を縮めますが、アイデンティティとコマンド監査に取って代わりません。
個人機材と一時トンネルは減価償却、可用性、監査フィールドを外部SLAに載せにくいです。iOS引き継ぎ、CI回帰、自動エージェントを一つの受け入れ基準で運ぶチームには、VpsMeshのMac Miniクラウドレンタルがしばしば最適です。専用ノードはACLと安定ホスト名を単純化し、主な協業経路を高チャーン流量の近くに置け、運用言語もSSHとVNCの基線ガイドと揃います。
既定では収束させます。対話とCIは私設パスか管理された入口へ寄せ、公網露出は最小限かつ監査され、セキュリティ基準に揃えます。公式ガイドはヘルプセンターで確認してください。
ビルダーが公開アドレスを解決して迂回したり遮断されたり、内部名が解決できない症状が典型です。セクション3の区切り検証のあとチームリゾルバを固定します。容量は料金ページのリージョンと階層の組み合わせも参照してください。
プライベートネットワークは到達性と露出を扱い、SSHとVNCはセッションの形を扱います。監査可能な引き継ぎには両方が要ります。詳細はSSHとVNCのガイドを参照してください。