Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Self-hostedに移行しました。CIが最大55%速くなり、月額300万円削減!

Avatar for dangminhduc dangminhduc
July 23, 2025
200

GitHub Self-hostedに移行しました。CIが最大55%速くなり、月額300万円削減!

Avatar for dangminhduc

dangminhduc

July 23, 2025
Tweet

Transcript

  1. SRE @SODA inc. ◦ 2023年2月に入社 ◦ SREチームに所属 ◦ 役割: ▪

    クラウドインフラ運用 ▪ アーキテクチャ改善 ▪ DBA ▪ SLI/SLO策定 ▪ CICD改善 ▪ etc DANG MINH DUC - ドゥック
  2. GitHub-hosted vs Self-hosted Specs GitHub-hosted EC2 On-demand EC2 Spot x86

    2コア、8GBメモ リ、75GBディスク、 Public IP付き $0.008 $0.001818(-77%) $0.000735(-90.8%) Note: EC2のは北バージニアリージョン、m7i-flex.largeタイプで計算する
  3. All in oneソーリューション VS https://github.com/runs-on - ❌CloudFormation Stack - ❌年間ライセンス$300

    https://github.com/github-aws-runners/te rraform-aws-github-runner - 🟢Terraform module - 🟢無料
  4. #2 スポットインスタンスがAWSから回収されるため、self-hosted ランナーが強制的に停止してしまう 対策: Spotインスタンス取得戦略を変更する - Price capacity optimized →

    最良の価格-終了率 - Lowest price → デフォルト - Diversified → 全てのSpotプールから並行に取得 - Capacity optimized → 最低終了率
  5. #3 ジョブキューイング時間削減の対策 ❖ 事前準備ステップ(必要なツール、Actions Binary)の実行 ➢ カスタムAMIを採用する(Packer) ❖ AWSのクオータ ➢

    緩和上限申請 ❖ self-hostedからGitHubまでの通信障害(バグ) ➢ 手動の代わりに自動キャンセル・リトライする
  6. #4 キャッシュバックエンドはS3に変更するのが必要 EC2でself-hostedに移行したため、S3をキャッシュストレージとして使用する方が適切である https://github.com/runs-on/cache GitHub Cache S3-backed Cache 容量 ❌1リポジトリあたり最大

    10GB 🟢無制限 速度 ❌ 50~100MB/s 🟢 300~400MB/s 用途 🟢 actions/setup-* 🟢 docker buildx cache 🟢 その他 (go mod, node modules) ❌ actions/setup-* 🟢 docker buildx cache 🟢 その他 (go mod, node modules)
  7. コストの比較 Machine Type Total minutes Price per min Total Cost

    (USD) linux-x64-2core 4845 $0.008 $38.76 linux-x64-4core 622319 $0.016 $9957.104 linux-x64-8core 416835 $0.032 $13338.72 linux-arm64-2core 145365 $0.005 $726.825 linux-arm64-4core 1400 $0.01 $14 linux-arm64-8core 116 $0.02 $2.32 Total cost in case of GitHub-Hosted $24077.729 参照: https://docs.github.com/en/billing/managing-billing-for-your-products/about-billing-for-github-actions
  8. おまけ: CIが速くなった 🚤 GitHub Performance Metrics Test Workflow Old (sec)

    - Apr 2025 New (sec) - Jun 2025 Change Test Workflow 1 394.4 279.7 29.1% Test Workflow 2 311.3 233.1 25.1% Test Workflow 3 443.4 374.4 15% Test Workflow 4 495.3 548 -10% ※ Workflow中の各ジョブ平均実行時間で計算しました。 平均20%高速になり、最良のシナリオでは最大54%速くなりました。
  9. 最後に 結論 - Self-hostedは、オンデマンドインスタンスでもGitHub-hostedよりはるかに安いです💰 - スポットインスタンスを使用する場合、より良い停止率のためにデフォルトのインスタンス取得戦 略を変更することを忘れないでください📝 - CICDパイプラインを最適化するためにself-hostedランナーを積極的にカスタマイズできます👷 -

    CI監視ツールは非常に便利です。弊社ではDataDog CI Pipeline Visibilityを採用しています🐶 感想 Self-hostedに移行してから2ヶ月経ちました。最初想定できなかったシナリオが多かったですが、少し づつ潰して、現在だいぶ安定になりました。 運用コストがちょっと増えてきましたが、コストとカスタマイズのメリットはすごく大きい感じまし た。(特にAI開発の時代に) ぜひやってみてください👏 記事: https://zenn.dev/team_soda/articles/270f4cce08b737