重いCIジョブ向けGitHub Larger Runnersの代替
GitHub larger runnersは「自分のbuildにもっとcoreが必要」という問題をネイティブに解決します。代替を探す最も一般的な理由は、ボリューム時の1分あたりのコストです。
GitHub larger runnersは、より多くのcore、RAM、ディスクを備えたマネージドVMで、GitHubのドキュメントによればGitHub TeamおよびEnterprise Cloudプランで利用できます。ファーストパーティのオプションを望み、サードパーティのセットアップをゼロにしたい場合に最適です。重いジョブを頻繁に実行する場合、(GitHubによれば含まれる無料分の割り当てがない)1分あたりの料金が、チームが代替を検討する理由になることが多いです。Latchkeyは、同じジョブサイズをより低い1分あたりの料金で対象とし、自己修復を追加するマネージドrunnerの代替です。GitHubの最新の料金は同社のサイトで確認してください。
ひと目で比較
| 機能 | GitHub larger runners | Latchkey |
|---|---|---|
| 標準runnerより多くのcore | あり | あり |
| 含まれる無料分が適用される | なし(GitHubのドキュメントによる) | 無料枠あり |
| 自己修復CI(一時的な失敗の自動リトライ) | なし | あり |
| セットアップ | Runner group + カスタムlabel | runs-on labelの入れ替え |
| ファーストパーティのGitHub統合 | 最も深い | 標準 |
| 得意分野 | ネイティブな大型マネージドVM | 自己修復 + 低コストのマネージドrunner |
GitHub larger runnersが得意なこと
GitHubにネイティブで、サードパーティのベンダーを必要とせず、runner group、autoscaling、並行実行制御、(Enterprise Cloudでは)静的IPレンジと深く統合します。GitHubのドキュメントによれば、ARM64で最大64 vCPU、x64で最大96 vCPUまでのサイズに加え、GPUおよびARMのオプションもあります。出典: https://docs.github.com/en/actions/reference/runners/larger-runners および https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners。
Latchkeyが追加するもの
Latchkeyは自己修復CIを中心に構築されています。メモリ不足によるkill、ディスクフルのエラー、registryのタイムアウトが自動的に検出・リトライされるため、再実行にお金を払わずに済みます。それをより低い1分あたりのコストのマネージドrunnerと、ドロップインのruns-on入れ替えと組み合わせており、runner groupやlabelの管理の負担もありません。
どちらを選ぶか
- ファーストパーティのオプション、最も深いGitHub統合、またはrunner向けの静的IPレンジのようなEnterprise Cloudの機能が欲しいなら、GitHub larger runnersを選びましょう。
- 重いジョブでより低い1分あたりのコストに加え、不安定な再実行を自動的に取り除く自己修復が欲しいなら、Latchkeyを選びましょう。
結論
たまに実行する重いジョブでネイティブ統合が最も重要な場合、GitHub larger runnersは堅実なファーストパーティの選択肢です。1分あたりのコストと不安定な再実行が積み重なる頻繁で重いbuildには、Latchkeyのほうが適しています。無料で始めて、実際のpipelineで両方をベンチマークしてください。