Skip to content
Latchkey

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 は運用負担なしでその利点を届けます。

関連ガイド