self-hosted runner とは?自前の CI コンピュート
self-hosted runner とは、自分が所有・運用するマシンにインストールされた GitHub Actions の runner エージェントです - ハードウェアと環境を完全に制御できますが、メンテナンスもすべて自分で負います。
チームが self-hosted runner に手を伸ばすのは、分単位の価格から逃れるため、より大きなマシンを得るため、あるいはプライベートネットワークにアクセスするためです。エージェントの導入は簡単で、難しいのはその後のすべて - パッチ適用、スケーリング、セキュリティ確保、オンライン維持です。
仕組み
自前のサーバー、VM、またはコンテナに runner エージェントをインストールし、registration token を使ってリポジトリまたは組織に登録します。エージェントは GitHub へ外向きに接続し、マッチする job を取得して、自分のハードウェアで実行します。
チームが選ぶ理由
- 大量の CI で hosted の分単位の価格を回避する。
- より大きい、または特殊なハードウェアを使う(GPU、大容量メモリ、ARM)。
- 自前のファイアウォールや VPC の背後にあるプライベートリソースに到達する。
- cache や toolchain を永続化して繰り返しの build を高速化する。
隠れた運用コスト
self-hosted runner は、いまやあなたが所有するインフラです。OS にパッチを当て、runner のバージョンをローテーションし、キャパシティを上下にスケールし、job 間でディスクをクリーンアップし、オフラインのエージェントを監視し、マシンを保護します - 特にパブリックリポジトリでは、永続的な runner は本物の攻撃対象領域になります。
永続的 vs ephemeral
素朴な self-hosted 構成は、長寿命の単一マシンを再利用するため状態を蓄積し、「runner #3 でだけ通る」という flakiness を引き起こします。より安全なパターンは job ごとに再作成される ephemeral な runner ですが、それは autoscaling を自分で構築することを意味します。
マネージドという中間地点
マネージド runner は、運用なしで self-hosted の経済性とより大きなハードウェアを提供します。Latchkey は ephemeral で autoscale される runner をあなたに代わって動かします - パッチ不要、スケーリングコード不要、アイドルの無駄なし - 通常 GitHub-hosted より約 70% 安く。
重要なポイント
- self-hosted runner とは、自前のインフラ上にある Actions エージェントです。
- 分単位の価格を回避し、より大きい、または特殊なハードウェアを解放します。
- パッチ、スケーリング、クリーンアップ、セキュリティといった運用をすべて引き受けます。
- マネージド runner は運用負担なしでその利点を届けます。