セルフホストランナーとは? 構築と運用にかかるコスト(GitHub Actions、2026 年 11 月)
目次
セルフホストランナーは、GitHub Actions のジョブを動かすために自分で用意し、GitHub に登録するマシンです。GitHub の料金はかかりません。GitHub のドキュメント(2026 年 11 月 11 日に確認)は「GitHub Actions では無料で使用できますが、ランナーマシンの維持費用はユーザー負担です」と書いています。かかるのは、サーバー代と運用の手間です。
Skipbox は、Convika と同じ株式会社 Fluxenic が作っています。運用を任せられるセルフホストランナーで、この記事に出てくる選択肢の 1 つは自分たちの製品です。GitHub の決まりは GitHub のドキュメントから、サーバーの料金は Hetzner のページから引用しました。どれも 2026 年 11 月 11 日に読み、出典にリンクを並べています。
セルフホストランナーと GitHub ホストランナーの違い
GitHub Actions のランナーは 2 種類です。GitHub が用意する GitHub ホストランナーと、自分で用意するセルフホストランナー。違いは次のとおりです。
| GitHub ホストランナー | 自分で運用するセルフホストランナー | 運用を任せるセルフホストランナー:Skipbox(このサイトを運営する株式会社 Fluxenic 製) | |
|---|---|---|---|
| マシンを用意するのは | GitHub | 自分 | Skipbox |
| GitHub の料金 | プライベートリポジトリは分単位。Linux 2 コアで 1 分 $0.006 | かからない | かからない |
| ほかにかかるもの | なし | サーバー代と、運用にかける時間 | Skipbox の定額。月 6,000 円・12,000 円・23,000 円(税込)で、実行時間は無制限 |
| ジョブごとのマシン | 毎回新しい VM("a new virtual machine") | 同じマシンを使い回す。掃除は自分で作る | アカウント専用の VM。ジョブごとに認証情報・作業ディレクトリ・コンテナーを消す |
| キャッシュ | ジョブが終わると消える。GitHub のキャッシュに保存して復元する | ディスクに残る | Docker のイメージとレイヤー、パッケージのキャッシュがディスクに残る |
| 更新 | GitHub | OS、ツール、ランナーのアプリケーションを自分で | Skipbox |
| 使える OS | Linux、Windows、macOS | 自分で入れたもの | Linux x64(Ubuntu 24.04) |
構築と運用にかかる 6 つのコスト
| コスト | 中身 | GitHub やサーバー会社の記載 |
|---|---|---|
| サーバー | 月額で借りるクラウドの VM か専用サーバー | Hetzner の CPX32(4 vCPU・8 GB)は "€ 30.49 per month, excl. VAT" |
| ジョブごとの掃除 | 前のジョブのファイルを次のジョブに見せないための、消去や作り直し | "You can then create your own automation that wipes the runner after it has been de-registered." |
| ランナーの更新 | GitHub がジョブを渡してくれるバージョンに保つ | "you must update your runner version within 63 days of a newer version being made available" |
| セキュリティ | プルリクエストから、マシンの上の大事なものに触れさせない | "can be persistently compromised by untrusted code in a workflow" |
| 順番待ち | ランナー 1 つにつきジョブは 1 つ。残りは待つか、ランナーを増やす | "the job will remain queued until a runner comes online" |
| 自分の時間 | 上のすべてと、OS、Docker、ディスク、壊れた日の対応 | "you are responsible for updating the operating system and all other software" |
GitHub の料金:分数は請求されない
GitHub の課金のドキュメントは、セルフホストランナーを「他の使用量とは別に無料のままであり、含まれるコンピューティングの使用量を減らしません」という使い方に挙げています。セルフホストランナーのジョブは、プランの無料枠も使いません。
GitHub は 2025 年 12 月 16 日にセルフホストランナーへの課金を発表し、翌日に見送りました。それ以来、何も請求されていません。出典はセルフホストランナーは有料? 料金は無料ですにまとめています。
GitHub のストレージを使った分はかかります。成果物(アーティファクト)はプランの枠を超えた分、キャッシュは 1 リポジトリ 10 GB を超えた分です。
サーバー代
ランナーのアプリケーションそのものは軽く、GitHub は "The self-hosted runner application itself only requires minimal resources." と書いています。マシンの大きさを決めるのは、動かすジョブです。
Hetzner が載せている 4・8・16 vCPU の料金です(2026 年 11 月 11 日に確認)。どれも、そのサーバーのページにあるいちばん低い月額で、ユーロ建て、税抜です。
| vCPU | 共有 vCPU(Regular Performance) | 専有 vCPU(General Purpose) |
|---|---|---|
| 4 | CPX32:8 GB、ディスク 160 GB、"€ 30.49 per month, excl. VAT" | CCX23:16 GB、ディスク 160 GB、"€ 73.49 per month, excl. VAT" |
| 8 | CPX42:16 GB、ディスク 320 GB、"€ 59.49 per month, excl. VAT" | CCX33:32 GB、ディスク 240 GB、"€ 117.99 per month, excl. VAT" |
| 16 | CPX62:32 GB、ディスク 640 GB、"€ 110.99 per month, excl. VAT" | CCX43:64 GB、ディスク 360 GB、"€ 234.99 per month, excl. VAT" |
表の読み方:
- 共有か専有か:Hetzner は Regular Performance を "based on shared resources"、"Suited for workloads that can handle variable processor performance." と説明しています。General Purpose は "Dedicated resources that give you independence from the workload of other clients and projects."。全部のコアを 20 分使い続けるビルドは、後者に向いた使い方です。
- 専用サーバー:Hetzner の AX42(AMD Ryzen 7 PRO 8700GE、64 GB)は "€ 99.00 per month, excl. VAT"、ほかに "€ 49.00 one-time setup fee, excl. VAT" がかかります。
- 表に入れていないもの:Cost-Optimized のクラウドサーバーは、2026 年 11 月 11 日のページで "not available" と表示されていました。
- 同時に動くのは 1 つ:4 vCPU のサーバーにランナーを 1 つ置くと、同時に動かせる 4 vCPU のジョブは 1 つです。
参考までに、同じ日の GitHub ホストランナー(Linux、プライベートリポジトリ)の単価は、2 コアの ubuntu-latest が 1 分 $0.006、4 コアが $0.012、8 コアが $0.022、16 コアが $0.042 です。
構築:ジョブごとにきれいなマシンを用意する
GitHub のドキュメントは、セルフホストランナーについて "Don't need to have a clean instance for every job execution."(ジョブごとにまっさらなマシンは要らない)と書いています。これには両面があります。
- 残って助かるもの:Docker のレイヤー、パッケージのキャッシュ、入れたツール。次のジョブが始まるとき、もうディスクにあります。
- 残って困るもの:チェックアウトしたコード、トークン入りの
.npmrc、動いたままのコンテナー。これも次のジョブから見えます。
GitHub が用意している方法は、ジョブを 1 つだけ受けるエフェメラルランナーです。
./config.sh --url https://github.com/octo-org --token example-token --ephemeral
その先について、GitHub はこう書いています。"The GitHub Actions service will then automatically de-register the runner after it has processed one job. You can then create your own automation that wipes the runner after it has been de-registered."
登録の解除までは GitHub がやります。マシンを消して作り直す仕組みは、自分で作るものです。イメージ、作り直しのスクリプト、次のランナーの登録。構築のコストの中心はここにあります。そして、ジョブごとに作り直したマシンは、きれいな代わりに空っぽです。レイヤーもパッケージのキャッシュもありません。
運用:ランナーの更新
ランナーのアプリケーションは、何もしなければ自動で更新されます。GitHub の記載は "the runner application automatically updates itself when a job is assigned to the runner, or within a week of release if the runner hasn't been assigned any jobs." です。
自動更新を切る理由も、GitHub のドキュメントにあります。コンテナーでエフェメラルランナーを動かしていると、新しいバージョンが出たときに "repeated software updates"(更新の繰り返し)が起きるからです。切った場合の決まりは、2026 年 11 月 11 日のドキュメントでは次のとおりです。
- "If you disable automatic updates, you must update your runner version within 63 days of a newer version being made available.":新しいバージョンが出てから 63 日以内に更新します。
- "If you do not update your runner within 63 days of a new major, minor, or patch version becoming available, the GitHub Actions service will not assign jobs to it.":過ぎると、ジョブが渡されなくなります。
- "If a critical security update is required, the service will not assign jobs until the runner is updated.":重大なセキュリティ更新は、更新するまでジョブが止まります。
GitHub の変更履歴には、もっと短い期間も出ています。2026 年 3 月 17 日の注記は、最新のリリースより 30 日を超えて古いバージョンのランナーについて "rejected from executing workflows as part of our standard runner deprecation process" と書いています。2 つのページで日数が違うので、自分のバージョンの期限は REST API で確かめます。runtime_deprecates_at が、そのバージョンのランナーがジョブを受け取れなくなる日です。
下限もあります。GitHub Enterprise Cloud では、2026 年 9 月 29 日から "Self-hosted runners below version 2.329.0 won't be able to register or reregister." です。
更新するのはランナーだけではありません。"you are responsible for updating the operating system and all other software."、つまり OS も、Docker も、Node や Python も、ブラウザーも自分で更新します。GitHub ホストランナーでは、GitHub がイメージに入れて配っているものです。
運用:セキュリティ
GitHub の Secure use reference から、そのまま引用します。
- "Self-hosted runners for GitHub do not have guarantees around running in ephemeral clean virtual machines, and can be persistently compromised by untrusted code in a workflow.":信頼できないコードに、マシンを乗っ取られたままにされるおそれがあります。
- "As a result, self-hosted runners should almost never be used for public repositories on GitHub, because any user can open pull requests against the repository and compromise the environment.":パブリックリポジトリでは、ほぼ使うべきではありません。
- "Similarly, be cautious when using self-hosted runners on private or internal repositories":プライベートリポジトリでも、プルリクエストを開ける人はマシンの上でコードを動かせます。
マシンについて確かめることも、GitHub が挙げています。"What sensitive information resides on the machine configured as a self-hosted runner?"(マシンに大事な情報が置かれていないか)、"Does the machine have network access to sensitive services?"(大事なサービスにネットワークで届かないか)。
実際にやることは 4 つです。プライベートリポジトリだけで使う。長く使う鍵をマシンに置かない。乗っ取られても大事なものに届かないネットワークに置く。いつでもマシンを作り直せるようにしておく。
運用:順番待ち
ランナー 1 つが同時に動かすジョブは 1 つです。GitHub は、ジョブを "an online and idle runner"(オンラインで空いているランナー)に渡します。空いていなければ "the job will remain queued until a runner comes online."、そして "If the job remains queued for more than 24 hours, the job will fail."。24 時間待ったジョブは失敗します。
同時に動かす数を増やす方法は 3 つあります。
- 1 台に複数のランナーを置く:ランナーごとに登録します。CPU、メモリー、ディスク、Docker デーモンは共有なので、重いジョブが 2 つ重なると互いに遅くなります。
- マシンを増やす:借りるサーバーも、更新するサーバーも増えます。
- オートスケール:GitHub の実装は Actions Runner Controller(ARC)で、"a Kubernetes operator that orchestrates and scales self-hosted runners for GitHub Actions" です。GitHub が ARC をすすめる相手は "organizations with Kubernetes infrastructure and teams that have Kubernetes expertise"、つまり Kubernetes を運用できるチームです。
ランナーが止まったときも、ジョブは黙って待つだけです。1 時間待っているジョブを知らせる仕組みは、自分で作らないかぎりありません。
自分の時間を書き出す
サーバーには料金表があります。自分の時間にはないので、書き出します。
| 作業 | 頻度 |
|---|---|
| ランナーを入れて登録し、再起動しても動くサービスにする | マシンごとに 1 回 |
| ジョブごとに消して作り直す仕組みを作る(作らないなら、ディスクの共有を受け入れる) | 1 回。あとは壊れるたび |
| ランナーのアプリケーションを更新する(自動更新を切った場合) | リリースのたび、GitHub の期限のうちに |
| OS、Docker、ジョブが使うツールを更新する | 毎月と、セキュリティリリースのたび |
| イメージやビルドの出力でいっぱいになったディスクを空ける | 空きがなくてジョブが失敗したとき |
| ジョブが待っている理由を調べる | 「CI が遅い」と言われたとき |
計算は 月のコスト = サーバー代 +(月にかける時間 × 自分の 1 時間の値段) です。出た数字を、ほかの選択肢と並べます。GitHub ホストランナーの分数 × 単価、または定額の料金です。
運用を任せる選択肢(マシンを運営するのはだれか)
2026 年 11 月 11 日に読んだ内容です。順位はつけていません。
| 選択肢 | マシンを運営するのは | 更新と掃除をするのは | 料金(記載のまま) |
|---|---|---|---|
| 自分で借りるサーバー | 自分 | 自分 | サーバー代(例:Hetzner の CPX32 は "€ 30.49 per month, excl. VAT")と、自分の時間 |
| Actions Runner Controller | 自分。自分の Kubernetes クラスターで動かす | ランナーの作成から片づけまでは ARC。クラスターの運用は自分 | クラスターの費用と、自分の時間 |
| Actuated | サーバーは自分で用意。Actuated は "Fully managed control-plane, just add servers" | Actuated のコントロールプレーン | "Flat rate per server: $150 for the first, $125 for each additional." ほかにサーバー代 |
| RunsOn | 自分。自分の AWS アカウントで動く | RunsOn のソフトウェア | ライセンスが "Starter < 50k jobs/mo €300 / yr"。マシン代は "AWS bills you for the instances at spot prices, with no markup" |
| GitHub ホストランナー | GitHub | GitHub。ジョブごとに新しい VM | 分単位。Linux 2 コアが 1 分 $0.006、4 コアが $0.012、8 コアが $0.022、16 コアが $0.042 |
| Skipbox(このサイトを運営する株式会社 Fluxenic 製) | Skipbox | Skipbox。ジョブごとに認証情報・作業ディレクトリ・コンテナーを消し、ランナーとイメージを新しく保つ | 定額。4・8・16 vCPU が月 6,000 円・12,000 円・23,000 円(税込)で、実行時間は無制限 |
Skipbox が引き受けるもの
Skipbox は、自分で運用しなくていいセルフホストランナーです。VM はセルフホストランナーとして GitHub の組織や個人アカウントにつながるので、GitHub は分数を請求しません。
- サーバー:プランごとに、アカウント専用の Linux x64 の VM が 1 台。4 vCPU・8 GB、8 vCPU・16 GB、16 vCPU・32 GB の 3 つです。
- 掃除はする、キャッシュは残す:ジョブが終わるたびに、ランナーの認証情報、作業ディレクトリ、すべてのコンテナー、
~/.npmrcなどの認証ファイルを消します。Docker のイメージとレイヤー、パッケージのキャッシュ、ツールキャッシュはディスクに残ります。 - 更新:ランナーのアプリケーションとイメージは Skipbox が新しくします。ジョブのあとのヘルスチェックに落ちたマシンは、きれいなイメージから作り直されます。
- 書き込み権限のない人のコード:フォークからのプルリクエストと、書き込み権限のない人が始めた実行は、専用の VM ではなく新しい VM で動かし、終わったら消します。
- 順番待ち:プランの vCPU に収まる分だけ同時に動きます。収まらないジョブは待ち、待っても請求は増えません。
GitHub は料金をドルで請求するので、比べるときは Skipbox のドルの料金(月 $39・$79・$149)で計算します。Skipbox の M(8 vCPU、月 $79)は、月 $18 を含む GitHub Team で GitHub の 8 コア(1 分 $0.022)を使う場合と比べて、月 4,410 分を超えると安くなります。式は ($79 + $18) ÷ $0.022 です。S は 4 コアに対して月 4,750 分、L は 16 コアに対して月 3,977 分を超えたところです。
Skipbox でできないこともあります。macOS、Windows、Arm、GPU のジョブ。パブリックリポジトリ。社内ネットワークの中で動かすジョブ。6 時間を超えるジョブ(GitHub は、セルフホストランナーのジョブを 5 日まで認めています)。これらは自分のランナーで動かします。
試すには、ジョブを 1 つ選び、runs-on: を skipbox に書き換えて push します。Skipbox のトライアルは、4 vCPU のジョブを 1 本ずつ、最初のジョブから 7 日間か 3,000 分のどちらか早いほうまで無料で、カードは要りません。
Skipbox の無料トライアルを始める(skipbox.dev)
月額固定のランナーの一覧は GitHub Actions のランナーを月額固定で使えるサービス一覧、各社の 1 分あたりの単価は GitHub Actions の料金と高速ランナーの費用比較にあります。ディスクが残るランナーは、GitHub Actions が遅いときの高速化の最後の手でもあります。
あわせて読む
- GitHub Actions の料金(2026 年 11 月):1 分の単価、プランの無料枠、1 か月の計算
- Blacksmith の料金と代替サービス:課金の方式で比較
- プライベートリポジトリの GitHub Actions の無料枠とリセットの日時
よくある質問
セルフホストランナーとは何ですか?
GitHub Actions のジョブを動かすために、自分で用意して GitHub に登録するマシンです。GitHub のドキュメントは "a system that you deploy and manage" と説明しています。GitHub の料金はかからず、プランの無料枠も使いません。代わりに、サーバー代と、更新・掃除・セキュリティの手間が自分の負担になります。運用を任せられるセルフホストランナーもあり、Skipbox はその 1 つです。Skipbox は、Convika と同じ株式会社 Fluxenic が作っています。
セルフホストランナーの構築と運用には、いくらかかりますか?
GitHub の料金は 0 円です。かかるのはサーバー代と自分の時間で、サーバーは、たとえば Hetzner の 4 vCPU・8 GB の CPX32 が "€ 30.49 per month, excl. VAT"(2026 年 11 月 11 日に確認)。時間は、ランナーの更新、ジョブごとの掃除の仕組み、OS とツールの更新、ディスクの空き、順番待ちの調査にかかります。月のコストは、サーバー代に「月にかける時間 × 自分の 1 時間の値段」を足した額です。
セルフホストランナーは、どのくらいの頻度で更新が要りますか?
ランナーのアプリケーションは、何もしなければ自動で更新されます。自動更新を切った場合は、GitHub のドキュメントに "you must update your runner version within 63 days of a newer version being made available" とあり、63 日を過ぎるとジョブが渡されなくなります(2026 年 11 月 11 日に確認)。GitHub Enterprise Cloud では、2026 年 9 月 29 日から 2.329.0 より古いランナーは登録できません。OS とツールの更新は、いつも自分の仕事です。
パブリックリポジトリでセルフホストランナーを使っても安全ですか?
GitHub は、使うべきではないと書いています。"self-hosted runners should almost never be used for public repositories on GitHub, because any user can open pull requests against the repository and compromise the environment."(Secure use reference、2026 年 11 月 11 日に確認)。だれでもプルリクエストを開いて、マシンの上でコードを動かせるからです。プライベートリポジトリでも、GitHub は "be cautious"(注意して使う)としています。
セルフホストランナー 1 つで、複数のジョブを同時に動かせますか?
動かせません。ランナー 1 つが受けるジョブは 1 つで、GitHub は空いているランナーにだけジョブを渡します。同時に動かすには、1 台か複数台にランナーをいくつも登録するか、オートスケールにします。GitHub は、Kubernetes を運用できるチームに Actions Runner Controller をすすめています。
運用を任せられる、定額のセルフホストランナーはありますか?
あります。Skipbox はマシンを運営し、セルフホストランナーとして GitHub のアカウントにつなぎます。GitHub が請求する分数は 0 のままです。料金は 4・8・16 vCPU が月 6,000 円・12,000 円・23,000 円(税込)の定額で、実行時間は無制限。アカウント専用の VM がジョブのあとも残るので Docker のイメージやパッケージのキャッシュが使え、認証情報はジョブごとに消されます。動かせるのはパブリックリポジトリとプライベートリポジトリの Linux x64 のジョブで、書き換えるのは runs-on: skipbox の一行です。
出典(2026 年 11 月 11 日、日本時間に読んだもの)
- GitHub「セルフホステッド ランナー」と英語版「Self-hosted runners」:無料で使えること、マシンの維持費用、更新の責任、ジョブごとのきれいなマシンは不要(2026 年 11 月 11 日に読んだもの)
- GitHub「Self-hosted runners reference」:必要なもの、ジョブの渡し方と 24 時間、エフェメラルランナー、更新と 63 日、Actions Runner Controller(2026 年 11 月 11 日に読んだもの)
- GitHub「Secure use reference」:セルフホストランナーのセキュリティ(2026 年 11 月 11 日に読んだもの)
- GitHub「Actions Runner Controller」「GitHub-hosted runners reference」「Actions limits」(2026 年 11 月 11 日に読んだもの)
- GitHub「GitHub Actions の課金」「Actions runner pricing」:無料のままの使い方、1 分の単価(2026 年 11 月 11 日に読んだもの)
- GitHub の変更履歴「Self-hosted runner minimum version enforcement paused」(2026 年 3 月 17 日の注記にある 30 日)、「Self-hosted runner version enforcement date has moved」(2026 年 9 月 28 日。どちらも 2026 年 11 月 11 日に読んだもの)
- GitHub の変更履歴「Update to GitHub Actions pricing」(2025 年 12 月 16 日の発表と、翌日の見送りの追記。2026 年 11 月 11 日に読んだもの)
- Hetzner「Regular Performance」「General Purpose」「Cost-Optimized」「AX42」(2026 年 11 月 11 日に読んだもの)
- Actuated の料金、RunsOn の料金(2026 年 11 月 11 日に読んだもの)
- Skipbox:プラン、ジョブのあとも残るものと消すもの、ヘルスチェック、フォークからのプルリクエスト、1 ジョブ 6 時間まで、トライアル(2026 年 11 月 11 日に読んだもの)
関連記事
- AI エージェントで PR が増えて CI が遅い・高い:GitHub Actions の分数の計算と対策(Copilot コードレビューの分数も)AI エージェントがプルリクエストを次々に開くと、push のたびに CI が走り、GitHub Actions の待ち時間と請求が増えます。1 日 10・30・100 PR での分数と請求の計算、cancel-in-progress やパスのフィルター、larger runner、月額固定のランナーという対策、Copilot のコードレビューが使う Actions の分数をまとめました(2026 年 11 月 11 日に確認)。
- GitHub Actions のセルフホストランナーは有料? 料金は無料です(2026 年 11 月)GitHub Actions のセルフホストランナーに、GitHub の料金はかかりません(GitHub の課金のドキュメント、2026 年 11 月 11 日に確認)。2025 年 12 月に発表された課金は翌日に見送り。AI が「有料」と答える理由、よくある 2 つの取り違え、代わりにかかるマシン代と運用の手間をまとめました。
- Blacksmith の料金と代替サービス:GitHub Actions のランナーを課金の方式で比較(2026 年 11 月)Blacksmith の料金を料金ページの記載のまま整理し、代わりになる GitHub Actions のランナーを課金の方式(分単位、分数つきの月額プラン、自分のクラウドに置くライセンス、サーバー 1 台ごとの定額、運営も任せる定額)で 1 つの表に並べました。無料枠を超えたあとの請求の実例と、定額の Skipbox・OpenRelay との分岐点の計算つきです(2026 年 11 月 11 日に確認)。