GitHub Actions の課金体系は、主に「ジョブの実行時間(Minutes)」と「ストレージ使用量(Storage)」の2つの軸による従量課金モデルを採用している。
GitHub Enterprise Cloud プラン には大規模な無料利用枠があらかじめ付帯しており、標準的な利用であれば基本料金内で運用可能。
結論
よっぽどネットワークに厳しいとか実行数が多い場合でない限り、hosted-runnerにしておいた方がいい。インフラの管理がめんどくさいので。
早見表
| 項目 | Hosted Runner | Self-hosted Runner |
|---|---|---|
| 実行場所 | GitHub上の VM | 自社のサーバー(EKS, オンプレVM等) |
| 環境の状態 | 毎回、新しくRunnerが立ち上がる | 基本は「使い回し」なのでRunnerが常時稼働 |
| ネットワーク | パブリックインターネット | |
| ※vaultだけ考慮すればいい | 閉域ネットワーク内で完結 | |
| 管理の手間 | 不要(OS更新等はGitHubが実施) | あり(OS、Docker、Runnerの更新が必要) |
| セキュリティ | OIDCを利用 | OIDCを利用 |
| 主なコスト | 実行時間に応じた従量課金。ただし、無料枠が多いため、基本的にはコスト不要の想定 | インフラ費用(AWS代/電気代)+ 人的管理コスト |
コスト(hosted runnerの場合)
| 項目 | 無料枠 | 備考 | コスト |
|---|---|---|---|
| 実行時間 | 50,000 分 / 月※enterpriseアカウント全体で | Linux ランナー換算で約 833 時間分。※WindowsやmacOSを使うと3~6倍の消費 | 0.006💲/分 |
| ストレージ | 50 GB / 月 | ビルド成果物やパッケージの保存容量。Artifacts, Caches, Packages の合算。 | |
| キャッシュ | 10 GB / リポジトリ | 依存関係(npm node_modules等)のキャッシュ容量。これを超えると課金対象になる |
コスト(self-hosted runnerの場合)
| 項目 | 内容 | 月額コスト (目安) |
|---|---|---|
| Compute | EC2 (インスタンスタイプによる) | 約 ~円 |
| Storage | EBS (50GB) | 約 600円 |
| Network | データ転送 (キャッシュ利用で激減) | 数百円 (誤差) |
| 人的コスト | OSの更新など手動対応必須 | |
| 実行時間 | ※2026から有料になる予定だったため、もしかしたら有料になる可能性もある | ※0.002💲/分 |
| ※有料になった場合はhostedと同じ無料枠がある |
基本となる無料利用枠(Included Quotas)
Enterprise プランを契約している Organization(または Enterprise アカウント全体)に対して、毎月以下のリソース枠が無料で割り当てられます。
実行時間(Minutes): 50,000 分 / 月
Linux の標準ランナー(2 vCPU, 7〜8 GB RAM)で実行した場合、月間約 833 時間分 に相当します。
ストレージ容量(Storage): 50 GB / 月
ワークフローの成果物(Artifacts)、依存関係のキャッシュ(Caches)、および GitHub Packages に保存されたデータの合計容量です。
キャッシュ専用枠: 10 GB / リポジトリ
各リポジトリにおいて、actions/cache などで利用されるキャッシュの基本上限です。これを超過すると、古いキャッシュから自動的に退避(Evict)されるか、ストレージ容量として合算されます。
GitHub Hosted Runner(マネージド環境)の実行時間課金
GitHub がインフラを提供するマネージドなランナー(Hosted Runner)を利用した場合の課金仕様です。
実行時間の消費倍率(Multiplier)
OS の種類によって、実際の実行時間が無料枠の「分」を消費する倍率が異なります。
Linux ランナー: 1倍(1分の実行 = 1分消費)。最もコスト効率が高い標準環境です。
Windows / macOS ランナー: Linux に比べて 3〜6 倍のレートで実行時間が消費されます(※本プロジェクトの Terraform 運用では Linux を使用するため影響は受けません)。
無料枠超過時の従量課金単価
50,000 分 / 月 の枠を超過した場合は、Linux ランナー基準で $0.006 / 分 の従量課金が発生します。
Larger Runner(高性能ランナー)の利用
メモリ不足などを解消するために、Enterprise プランで利用可能な Larger Runner(最大 96 vCPU, 384 GB RAM など)に変更して垂直スケールを行った場合、割り当てるマシンスペックに応じて分あたりの消費単価が高く設定されています。そのため、無闇なスケールアップは利用枠の早期枯渇を招く点に注意が必要です。
Self-hosted Runner(自社ホスト環境)の課金仕様
自社の AWS 環境(EC2 や EKS)やオンプレミスネットワーク内に Runner サーバーを構築し、そこに GitHub Actions のジョブを割り当てる方式です。
現在の課金体系
GitHub 側への支払い: 現状、Self-hosted Runner で実行したジョブの実行時間(Minutes)に対しては 課金されていません(無料)。
自社負担のインフラコスト: ランナーを稼働させるための AWS 利用料(EC2 のコンピューティング費用、EBS ストレージ、データ転送費用)が直接発生します。
人的管理コスト: OS のアップデート、Docker エンジンの保守、Runner エージェントの定期更新など、マネージド環境では不要だった維持管理の工数が発生します。
将来的な課金改定のリスク(コントロールプレーン課金)
GitHub は将来的に Self-hosted Runner の利用に対しても課金を導入する検討を行っています。
課金の背景: 実際に計算処理を行うサーバー(データプレーン)は自社持ちであっても、ジョブのスケジューリングやログの収集・表示を担う GitHub 側のシステム(コントロールプレーン)のリソースを消費しているため、その対価として課金するというロジックです。
想定される単価: 実行時間に対して $0.002 / 分 程度の課金が一時予定されていました(※現在はユーザーからのフィードバックにより再検討中となっています)。仮に有料化された場合でも、Hosted Runner と同様に月間 50,000 分の無料枠は適用される見込みです。
データプレーン(実行環境): 実際にビルドやテストの計算処理を行うサーバー(これが Self-hosted Runner)。
コントロールプレーン(管理環境): 上記のサーバーに「指示」を出し、「結果」を受け取ってユーザーに見せる GitHub のシステム。
ストレージとネットワークトラフィックの制約
ストレージ容量の超過
ビルド成果物(Terraform の Plan 結果ファイルなど)やパッケージ群が Enterprise 全体の 50 GB / 月 の枠を超過した場合、追加のストレージ料金が発生します。
対策: actions/upload-artifact などを利用する場合、不要なログやアーティファクトの保存期間(Retention Period)をデフォルトの 90 日から 14 日などに短縮する設定を行い、意図しない課金を防ぎます。