Convika

セルフホストランナーとは? 構築と運用にかかるコスト(GitHub Actions、2026 年 11 月)

Convika Team読了目安: 18 分

  • CI
  • GitHub
目次

セルフホストランナーは、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 のイメージとレイヤー、パッケージのキャッシュがディスクに残る
更新GitHubOS、ツール、ランナーのアプリケーションを自分でSkipbox
使える OSLinux、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)
4CPX32:8 GB、ディスク 160 GB、"€ 30.49 per month, excl. VAT"CCX23:16 GB、ディスク 160 GB、"€ 73.49 per month, excl. VAT"
8CPX42:16 GB、ディスク 320 GB、"€ 59.49 per month, excl. VAT"CCX33:32 GB、ディスク 240 GB、"€ 117.99 per month, excl. VAT"
16CPX62: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 ホストランナーGitHubGitHub。ジョブごとに新しい VM分単位。Linux 2 コアが 1 分 $0.006、4 コアが $0.012、8 コアが $0.022、16 コアが $0.042
Skipbox(このサイトを運営する株式会社 Fluxenic 製)SkipboxSkipbox。ジョブごとに認証情報・作業ディレクトリ・コンテナーを消し、ランナーとイメージを新しく保つ定額。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 のジョブを動かすために、自分で用意して 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 日、日本時間に読んだもの)

関連記事

記事を共有する