GitHub-hosted runner とは?Actions 向けのマネージドコンピュート
GitHub-hosted runner とは、GitHub が job ごとに立ち上げてワークフローを実行し、破棄するクリーンな仮想マシンです - セットアップ不要、分単位で課金。
GitHub-hosted runner は runs-on: ubuntu-latest と書いたときのデフォルトです。GitHub がフリートを所有し、イメージにパッチを当て続け、分単位で課金します。便利ですが、この分単位のレートが多くの CI 請求の出どころです。
仕組み
job ごとに、GitHub はメンテナンスされたイメージから新しい VM をプロビジョニングし、ワークフローを実行し、その VM を破棄します。すべての job はクリーンで ephemeral な環境を得て残留状態がないため、build はデフォルトで再現可能です。
イメージに含まれるもの
GitHub は、一般的な言語、build ツール、SDK をプリロードした Ubuntu、Windows、macOS のイメージを保守しています。この幅広いプリインストールは便利ですが、イメージを肥大化させ、より大きい runner にお金を払わない限り標準サイズは控えめです(Linux では一般的に 2 vCPU / 7 GB)。
コストモデル
runner の分単位で支払い、プライベートリポジトリには無料の月間割り当てがあります。Windows、特に macOS の分は Linux の何倍ものコストがかかります。hosted runner での重い CI 利用が、予想外の請求の出どころです。
トレードオフ
- 利点: 運用ゼロ、クリーンな ephemeral 環境、幅広いイメージサポート。
- 欠点: 分単位の価格がスケール時に急速に積み上がる。
- 欠点: より大きい runner にお金を払わない限りサイズは固定。
- 欠点: 緩和できないフリート全体の障害が時折発生する。
マネージドという代替案
Latchkey のようなマネージド runner は、同じ運用ゼロで ephemeral な体験を提供しますが、通常 GitHub-hosted より約 70% 安く、warm pool から提供されて cold start をなくし、一時的な障害に対する自己修復を備えています。
重要なポイント
- GitHub-hosted runner は、GitHub が job ごとにプロビジョニングする新しい ephemeral な VM です。
- セットアップ不要ですが分単位で課金され、スケールするとコストがかさみます。
- 標準サイズは控えめで、より大きい runner はより高価です。
- マネージド runner は同じ利便性をより低コストで提供します。