GitHub Larger RunnerからLatchkeyへの移行
GitHub larger runnerは重いジョブにネイティブでより多くのコアを与えます。痛みが分単価の請求なら、それらのジョブをLatchkeyに移すのはほぼruns-onの変更だけです。
GitHub larger runnerは、標準runnerより多くのコア、RAM、ディスクを備えたファーストパーティのマネージドVMです。GitHubのドキュメントによれば、分単価で課金され、含まれる無料分はそれには使えません。Latchkeyは同じジョブをruns-onの変更でアクセスできるマネージドrunnerで、通常はより低い分単価で実行し、一時的な失敗が自動的に再試行される自己修復を加えます。移行がどのようなものか、そしてそれぞれのオプションがどこで強いかを示します。ベンダー価格は変わるため、GitHubのサイトで現在の価格を確認してください。
移行すると何が変わるか
| GitHub larger runner | Latchkey | |
|---|---|---|
| runnerモデル | ファーストパーティのマネージドVM | サードパーティのマネージドrunner |
| 指定方法 | runnerグループ + カスタムラベル | runs-onラベルの入れ替え |
| 含まれる/無料分が適用される | 非適用(GitHubドキュメントによる) | 無料枠を含む |
| 一時的な失敗の自己修復 | 非対応 | 対応(自動検出/修正/再試行) |
| runnerグループ / ラベルの管理 | 自分で管理 | 不要 |
| GitHubネイティブ統合 | 最も深い(組み込み) | 標準的なrunner統合 |
何が同じままか
workflowのYAML、actions、secrets、ジョブグラフは変わりません。あなたは引き続きGitHub Actionsを実行しており、重いジョブがどのrunnerに乗るかを変えているだけです。
何が変わるか
- 指定: runnerグループ名とカスタムのlarger runnerラベルの代わりに、runs-onをLatchkeyのラベルに向けます。
- 課金: larger runnerは含まれる分の枠なしで分単価課金です(GitHubドキュメントによる)。Latchkeyは無料枠を含む独自の価格を適用します。
- 信頼性: 一時的および機械的な失敗(OOMによるkill、ディスク満杯、registryのタイムアウト)はLatchkeyで自己修復して再試行され、実行を落としません。
GitHub larger runnerの方が強い場合
サードパーティの関与をゼロにしたい、最も深いGitHub統合が欲しい、あるいはlarger runner用の静的IP範囲などGitHub Enterprise Cloudに紐づく機能が欲しいなら、ファーストパーティのlarger runnerに留まるのは正当な選択です。トレードオフはより高い分単価と自己修復がないことです。
安全な移行パス
- 現在larger runnerで動いている重いworkflowを1つ選びます。
- それを複製し、コピー側でruns-onをLatchkeyのラベルに入れ替えます。
- 両方を1週間実行し、実時間、分単価コスト、再実行回数を比較します。
- 実際のビルドで数値が持続したら残りを展開します。
結論
重いジョブが頻繁に実行され、larger runnerの分単価の請求が痛みなら、それらのジョブをLatchkeyに移すと通常コストが下がり、workflowをそのままに保ちながら不安定な再実行がなくなります。ネイティブ統合とファーストパーティの課金が分単価より重要なら、GitHub larger runnerは留まるのに妥当な場所です。無料で始めて、実際のビルドと比較してください。