Slide 1

Slide 1 text

高速化&コスト半減!? 
 GitHub Actionsの
 サードパーティマネージドランナーの比較
 Shoichi Ochi (@occhi)
 YAPC::Fukuoka 2025
 2025-11-14


Slide 2

Slide 2 text

2 SmartBank, Inc. 
 Software Engineer 
 越智 翔一
 @ochi11181101
 @sho-work
 おち しょういち
 自己紹介


Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

4 「CI上の自動テスト、高速化したい・・・」
 と思ったことありませんか?


Slide 5

Slide 5 text

5 今回はCI高速化関連の話をします


Slide 6

Slide 6 text

6 突然ですが、今回のYAPCのプロポーザルを見てみると・・・


Slide 7

Slide 7 text

7 引用元: https://fortee.jp/yapc-fukuoka-2025/proposal/5270f104-6619-46ea-989d-6e2008eeee5c


Slide 8

Slide 8 text

8 引用元: https://fortee.jp/yapc-fukuoka-2025/proposal/5270f104-6619-46ea-989d-6e2008eeee5c
 今回の話は・・・


Slide 9

Slide 9 text

9 引用元: https://fortee.jp/yapc-fukuoka-2025/proposal/5270f104-6619-46ea-989d-6e2008eeee5c
 この部分の話


Slide 10

Slide 10 text

10 引用元: https://fortee.jp/yapc-fukuoka-2025/proposal/5270f104-6619-46ea-989d-6e2008eeee5c
 ??


Slide 11

Slide 11 text

11 サードパーティマネージドランナーって何?


Slide 12

Slide 12 text

12 段階的に解説します!


Slide 13

Slide 13 text

13 GitHub Actions、使ってますか?


Slide 14

Slide 14 text

14 GitHub Actions
 GitHubが提供する、ビルドやテスト、デプロイなどのワークフ ローを自動化できる CI/CDプラットフォーム。
 リポジトリへのプッシュなど特定のイベントをトリガーにして、事前 に定義した処理を自動的に実行できる。 


Slide 15

Slide 15 text

15 GitHub Actions Runner
 ワークフローのジョブを実行する実行環境のこと。 
 大きく分けて、以下の 3つのランナーがある。 
 ・GitHub ホステッドランナー: GitHub提供のランナー。
 ・セルフホステッドランナー: ユーザーが自身で用意するランナー。 
 ・サードパーティーマネージドランナー: 外部のベンダーが提供するランナー。 


Slide 16

Slide 16 text

16 GitHub Actions Runner
 ワークフローのジョブを実行する実行環境のこと。 
 大きく分けて、以下の 3つのランナーがある。 
 ・GitHub ホステッドランナー: GitHub提供のランナー。
 ・セルフホステッドランナー: ユーザーが自身で用意するランナー。 
 ・サードパーティーマネージドランナー: 外部のベンダーが提供するランナー。 


Slide 17

Slide 17 text

17 今回のトークテーマ
 サードパーティマネージドランナーの
 比較検討・調査をしたのでその共有


Slide 18

Slide 18 text

18 アジェンダ
 1. サードパーティランナーの例
 2. カタログスペック比較
 3. 実測値の比較
 4. まとめ今後の展望


Slide 19

Slide 19 text

1. サードパーティランナーの例


Slide 20

Slide 20 text

20 BuildJet
 ・「1行変更するだけで、ビルド速度が 2倍、コストも削減できます」が謳い文句 
 ・HPを見ると、有名な海外テック企業から信頼を得ている様子 
 ・日本のテック企業でも導入実績あり 
 引用元: https://buildjet.com/for-github-actions
 1. サードパーティランナーの例 


Slide 21

Slide 21 text

21 BuildJet
 ・同じスペックだと、GitHub ホステッドランナーの半額! 
 1. サードパーティランナーの例 


Slide 22

Slide 22 text

22 BlackSmith
 以下が謳い文句。  
 ・2倍高速なハードウェア 
 ・4倍速いキャッシュダウンロード 
 ・2~40倍高速なDockerビルド
 
 引用元: https://www.blacksmith.sh
 1. サードパーティランナーの例 


Slide 23

Slide 23 text

23 BlackSmith
 2vCPU当たりの価格は、
 先ほどのBuildJetと同様に、0.004$/min
 引用元: https://www.blacksmith.sh/pricing
 1. サードパーティランナーの例 


Slide 24

Slide 24 text

24 その他
 ・WarpBuild
 ・Namespace
 ・etc…
 
 引用元: https://www.warpbuild.com/
 https://namespace.so/
 1. サードパーティランナーの例 


Slide 25

Slide 25 text

25 1. サードパーティランナーの例 
 国内事例だとBuildJetとBlackSmithが多かった!
 
 引用元: https://techblog.ap-com.co.jp/entry/2025/08/23/172050 https://ikesyo.hatenablog.com/entry/github-actions-managed-runners https://tech.basemachina.jp/entry/introduction-to-blacksmith

Slide 26

Slide 26 text

26 この後はBuildJetとBlackSmithをピックアップして比較


Slide 27

Slide 27 text

2. カタログスペック比較


Slide 28

Slide 28 text

28 2. カタログスペック比較 
 ※2vCPUかつ、CPUアーキテクチャはAMDにした場合のものとします
 ※性能は各社が主張しているものです(GH Runnerは基準とするので x1 にします)
 ※速度面以外もストレージ容量での利点もあります。(後日ブログに書く予定)
 
 引用元: https://docs.blacksmith.sh/blacksmith-caching/dependencies-actions https://docs.blacksmith.sh/blacksmith-caching/docker-builds https://buildjet.com/for-github-actions/blog/launch-buildjet-cache

Slide 29

Slide 29 text

29 カタログスペックはいいけど、実際どうなの・・・?
 2. カタログスペック比較 


Slide 30

Slide 30 text

30 実際に計測してみよう!


Slide 31

Slide 31 text

3. 実測値の比較


Slide 32

Slide 32 text

32 計測時の前提を説明


Slide 33

Slide 33 text

33 3. 実測値の比較
 計測するRunner
 ・Github Hostedランナー
 ・BuildJetランナー
 ・BlackSmith
 
 
 ※ 3つともCPUはAMDかつ、ubuntu22.04を使用するものとする


Slide 34

Slide 34 text

34 3. 実測値の比較
 計測する時間
 以下の3つの時間を計測する。 計測回数は それぞれのRunnerにつき5回とし、その平均を取る 。
 ・全体の時間
 ・CPUバウンドな処理のステップの時間 
 ・Docker Imageビルドのステップの時間 


Slide 35

Slide 35 text

35 3. 実測値の比較
 計測する時間
 以下の3つの時間を計測する。 計測回数は それぞれのRunnerにつき5回とし、その平均を取る 。
 ・全体の時間
 ・CPUバウンドな処理のステップの時間 
 ・Docker Imageビルドのステップの時間 


Slide 36

Slide 36 text

36 3. 実測値の比較
 計測するワークフロー
 以下のステップを実行するワークフローを定義する 
 ・CPUバウンドな処理のステップ 
 ・Docker Imageビルドのステップ


Slide 37

Slide 37 text

37 3. 実測値の比較
 計測するワークフロー
 ・CPUバウンドな処理のステップ: OpenSSLのSHA-512ハッシュ関数を繰り返し実行する 
 ・Docker Imageビルドのステップ


Slide 38

Slide 38 text

38 3. 実測値の比較
 計測するワークフロー
 ・CPUバウンドな処理のステップ 
 ・Docker Imageビルドのステップ
 ※ BlackSmithの場合は[useblacksmith/setup-docker-builder@v1], [useblacksmith/build-push-action@v2]を使用する
 引用元: https://docs.blacksmith.sh/blacksmith-caching/docker-builds


Slide 39

Slide 39 text

39 3. 実測値の比較
 計測するワークフロー
 ・CPUバウンドな処理のステップ 
 ・Docker Imageビルドのステップ
 ・使用するDockerfileはこちら
 ※ BlackSmithの場合は[useblacksmith/setup-docker-builder@v1], [useblacksmith/build-push-action@v2]を使用する
 引用元: https://docs.blacksmith.sh/blacksmith-caching/docker-builds


Slide 40

Slide 40 text

40 3. 実測値の比較
 計測条件まとめ
 以下のRunnerを対象とする
 ・GitHub Hosted, BuildJet, BlackSmith
 
 5回計測してその平均を取る。以下の時間を計測する。 
 ・全体の時間
 ・CPUバウンドな処理のステップの時間 
 ・Docker Imageビルドの時間
 ※ 3つともCPUはAMDかつ、ubuntu22.04を使用するものとする


Slide 41

Slide 41 text

41 計測結果


Slide 42

Slide 42 text

42 3. 実測値の比較
 計測結果


Slide 43

Slide 43 text

43 3. 実測値の比較
 計測結果


Slide 44

Slide 44 text

44 3. 実測値の比較
 計測結果
 BlackSmithがGHよりも1mくらい高速!


Slide 45

Slide 45 text

45 3. 実測値の比較
 計測結果


Slide 46

Slide 46 text

46 3. 実測値の比較
 計測結果
 こちらもBlackSmithがGHよりも1mくらい高速!
 BuildJetも30sくらい高速!


Slide 47

Slide 47 text

47 3. 実測値の比較
 計測結果


Slide 48

Slide 48 text

48 3. 実測値の比較
 計測結果
 あれ?GHが一番速い・・・?


Slide 49

Slide 49 text

49 考察してみる🤔


Slide 50

Slide 50 text

50 3. 実測値の比較
 Docker Buildが遅い考察
 Dockerfile を見直してみると・・・ 


Slide 51

Slide 51 text

51 3. 実測値の比較
 Docker Buildが遅い考察


Slide 52

Slide 52 text

52 3. 実測値の比較
 Docker Buildが遅い考察


Slide 53

Slide 53 text

53 3. 実測値の比較
 Docker Buildが遅い考察
 パッケージのインストール時や bundle installのNetwork I/Oが原因の可能性がありそう 🤔
 


Slide 54

Slide 54 text

54 最後に、カタログスペックと実績を比較


Slide 55

Slide 55 text

55 3. 実測値の比較
 カタログスペックと実績を比較


Slide 56

Slide 56 text

56 3. 実測値の比較
 x2ほどではないけど、高速!


Slide 57

Slide 57 text

57 3. 実測値の比較
 Docker Imageのビルドはあまり変わらない(検証方法が悪かったかも)


Slide 58

Slide 58 text

58 3. 実測値の比較
 ひとまずサードパーティランナーはちゃんと速いことがわかった🎉


Slide 59

Slide 59 text

59 オチ(occhiだけに!)


Slide 60

Slide 60 text

60 3. 実測値の比較
 オチ
 スマートバンクでは最終的にこちらを採用😭
 (物理マシンを購入することになったため)


Slide 61

Slide 61 text

61 ちなみに・・・


Slide 62

Slide 62 text

62 引用元: https://fortee.jp/yapc-fukuoka-2025/proposal/5270f104-6619-46ea-989d-6e2008eeee5c
 弊社のテスト高速化事例を網羅的にまとめた記事を、
 近日弊社ブログにて公開予定!!
 


Slide 63

Slide 63 text

4. まとめと今後の展望


Slide 64

Slide 64 text

64 4. まとめと今後の展望 
 ・GitHub ActionsのRunnerには大きく分けて3種類ある
 ・上記の中のサードパーティランナーは速いしコストも削減できる
 ・余談ですが、BlackSmithはContact取った1分後に返信が来たり、管理画面が充実 していたりと、印象がいいです。
 ・デメリットは調べきれなかったので弊社ブログに書く予定!
 ・キャッシュ機能の検証もできなかったのでする予定
 


Slide 65

Slide 65 text

65 4. まとめと今後の展望 
 今回のリポジトリを公開したので、
 良かったら覗いてみてください!
 https://github.com/org-for-3rd-party-runner/gha-3rd-party-runner


Slide 66

Slide 66 text

高速化&コスト半減!? 
 GitHub Actionsの
 サードパーティマネージドランナーの比較
 Shoichi Ochi (@occhi)
 YAPC::Fukuoka 2025
 2025-11-14