Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub Self-hostedに移行しました。CIが最大55%速くなり、月額300万円削減!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
dangminhduc
July 23, 2025
360
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Self-hostedに移行しました。CIが最大55%速くなり、月額300万円削減!
dangminhduc
July 23, 2025
Featured
See All Featured
Side Projects
sachag
455
43k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Believing is Seeing
oripsolob
1
150
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Why Our Code Smells
bkeepers
PRO
340
58k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
ラッコキーワード サービス紹介資料
rakko
1
3.7M
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
Transcript
2025/07/23 SREチーム DANG MINH DUC GitHub Self-hostedに移行しました。CIが最大 55%速くなり、月額300万円削減!
目次 自己紹介 1 SODAでのGitHub Actions費用 2 GitHub Actions self-hostedへ の移行
3 移行後の課題 4 結果 5
SRE @SODA inc. ◦ 2023年2月に入社 ◦ SREチームに所属 ◦ 役割: ▪
クラウドインフラ運用 ▪ アーキテクチャ改善 ▪ DBA ▪ SLI/SLO策定 ▪ CICD改善 ▪ etc DANG MINH DUC - ドゥック
SODAでのGitHub Actions費用 2
SODAでのGitHub Actions費用 Budgetを$9000を設定しましたが、よく超えています!
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タイプで計算する
Self-hostedへ移行 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 - 🟢無料
モジュールのアーキテクチャ https://philips-labs.github.io/terraform-aws-github-runner/#detailed-design
移行後の課題 4
移行後の課題 1. 試算の通りににコストが安くならなかった 2. スポットインスタンスがAWSから回収されるため、self-hosted ランナーが強制的に 停止してしまう 3. ジョブキューイングの時間が長くて、一部のジョブが「queued」状態で永遠に詰まる 4.
キャッシュバックエンドはS3に変更するのが必要
#1 試算の通りににコストが安くならなかった
#1 試算の通りににコストが安くならなかった
#1 試算の通りににコストが安くならなかった
#2 スポットインスタンスがAWSから回収されるため、self-hosted ランナーが強制的に停止してしまう Spot インスタンス停止回数
#2 スポットインスタンスがAWSから回収されるため、self-hosted ランナーが強制的に停止してしまう 対策: Spotインスタンス取得戦略を変更する - Price capacity optimized →
最良の価格-終了率 - Lowest price → デフォルト - Diversified → 全てのSpotプールから並行に取得 - Capacity optimized → 最低終了率
#3 ジョブキューイングの時間が長くて、一部のジョブが「queued」状態で永遠に詰まる 原因: - 事前準備ステップ(必要なツール、Actions Binary)の実行 - AWSのクオータ - self-hostedからGitHubまでの通信障害(バグ)
https://github.com/actions/runner/issues/3609
#3 ジョブキューイング時間削減の対策 ❖ 事前準備ステップ(必要なツール、Actions Binary)の実行 ➢ カスタムAMIを採用する(Packer) ❖ AWSのクオータ ➢
緩和上限申請 ❖ self-hostedからGitHubまでの通信障害(バグ) ➢ 手動の代わりに自動キャンセル・リトライする
#3 ジョブキューイング時間削減の結果
#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)
最終的なアーキテクチャー
結果 5
コストの比較 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
コスト比較(実際AWSでかかったコスト) 実際にself-hostedは$3000だけかかりました💰 1ヶ月$21000(300万円)📉節約できた!
おまけ: 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%速くなりました。
最後に 7
最後に 結論 - Self-hostedは、オンデマンドインスタンスでもGitHub-hostedよりはるかに安いです💰 - スポットインスタンスを使用する場合、より良い停止率のためにデフォルトのインスタンス取得戦 略を変更することを忘れないでください📝 - CICDパイプラインを最適化するためにself-hostedランナーを積極的にカスタマイズできます👷 -
CI監視ツールは非常に便利です。弊社ではDataDog CI Pipeline Visibilityを採用しています🐶 感想 Self-hostedに移行してから2ヶ月経ちました。最初想定できなかったシナリオが多かったですが、少し づつ潰して、現在だいぶ安定になりました。 運用コストがちょっと増えてきましたが、コストとカスタマイズのメリットはすごく大きい感じまし た。(特にAI開発の時代に) ぜひやってみてください👏 記事: https://zenn.dev/team_soda/articles/270f4cce08b737
None