Blacksmith で手軽に GitHub Actions を高速化&コスト削減
株式会社ベースマキナ / ほとけ
メンバー / フルスタックエンジニア・プロダクトエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
| 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|---|
CI/CD | 10名以下 | 2025年9月 | B to B |
| 利用機能 | CI/CD |
|---|---|
| ツールの利用規模 | 10名以下 |
| ツールの利用開始時期 | 2025年9月 |
| 事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
導入時は CI を GitHub Actions に集約しつつ、ランナーだけ Blacksmith に置き換える構成にしました。これにより既存ワークフローの資産を活かしたまま高速化とコスト削減を両立できます。
その後、用途を広げて、最近では Docker イメージのビルドも Google Cloud Build から Blacksmith に移しました。
Cloud Build はビルドのたびに使い捨ての環境で動くため、前回ビルドのキャッシュが手元に残らず、私たち自身もビルドキャッシュをうまく活用できていませんでした。Blacksmith には sticky disk(ジョブが終わっても中身が消えない永続ディスク)があり、Docker のビルドキャッシュがその場に残ります。これにより、特別な作り込みをしなくても Dockerfile の変わった部分だけを作り直せばよくなり、依存ライブラリのダウンロード結果(go のモジュールなど)も次回ビルドにそのまま使い回せるようになりました。結果として、Docker イメージのビルド時間はおよそ 1/3 に短縮できました。
導入の背景・解決したかった問題
導入背景
CI のテストやLintの実行時間は、致命的というほどではないものの「速くはない」状態でした。差し迫った課題があったというより、少ない手間で高速化できてコストも下がるなら試してみよう、というくらいの温度感で検討を始めました。
比較検討したサービス
- GitHub Actions 標準ランナー(移行前の構成。スペックとコストの比較対象)
比較した軸
- 移行コストの低さ(既存の GitHub Actions ワークフローをほぼそのまま使えるか)
- 同等スペックあたりのコスト
- 実際のジョブ(テスト・Lint)での速度
- 既存の CI 構成を大きく作り替えずに段階的に移行できるか
選定理由
workflow定義のruns-on を書き換えるだけで移行でき、移行ツールも用意されているため、試すコストが極めて低かったことです。実際に試したところ、導入当時は同一スペックの per-minute 単価が GitHub 公式ランナーのおよそ半額で、かつハードウェアが速いぶんテスト・Lintの実行時間も短縮できることを小さく検証できました。問題があればすぐ元に戻せる安心感も大きな後押しになりました。
導入の成果
実行時間はいずれも CI の統計情報から抜粋した平均値です。スペックを変えていないジョブと、Blacksmith 化に合わせてスペックを上げたジョブがあるので、その点も明記します。
- Lint(GitHub・Blacksmith とも 2vCPU の同一スペック比較)は、平均実行時間が 1分38秒から 1分7秒に短縮しました。
- フロントエンドのユニットテストは、GitHub Actions の 2vCPU で平均 3分20秒だったものを、Blacksmith では 4vCPU に上げて平均 1分1秒に短縮しました。これは同一スペック比較ではなく、Blacksmith は上位スペックのランナーも安価に使えるため、スペックを上げて高速化する選択を取った例です。
- 料金面では、導入当時、同一スペックの per-minute 単価が GitHub 公式ランナーのおよそ半額でした。
- CI の待ち時間(平均キュー時間)も短くなり、PR のフィードバックループが速くなりました。
導入時の苦労・悩み
ほとんどありませんが、バックエンドの結合テストでランナー高速化後にテストのflakyさが顕在化しました。もともと潜在していたテストの不安定性が高速化で表面化したものと推測し、テストの並列数を調整することで安定化させました。
導入に向けた社内への説明
上長・チームへの説明
大がかりな稟議や説得というより、「runs-on を変えるだけで試せて、ダメならすぐ戻せる」という手軽さを共有して、まず一部のジョブで試してみるところから始めました。実際に速くなり、当時は同等スペックでコストも下がることが分かったので、そのまま対象を広げていった、という流れです。
活用方法
日々の PR ごとに、テスト・Lint・型チェックなどの CI ジョブと、開発環境向けの Docker イメージビルド/デプロイが Blacksmith ランナー上で自動実行されます。開発者は GitHub の PR 上で結果を待つだけで、ランナーの種類を意識する場面はほとんどありません。
よく使う機能
- Blacksmith Runners(テスト・Lint・型チェックなどの一般的な CI ジョブ)
useblacksmith/build-push-actionによる Docker イメージのビルド/プッシュ- sticky disk によるビルドキャッシュの永続化(前回の Docker レイヤーや依存ライブラリのダウンロード結果を、次回ビルドで作り直さず再利用)
ツールの良い点
- 移行が
runs-onの変更だけで済み、導入のハードルが非常に低いです(移行ツールも用意されています)。 - テスト・Lint の実行時間を短縮でき、高速です。
- 上位スペックのランナーも安価に使えるため、コストを抑えたままジョブのスペックを上げて高速化する、という選択が取りやすいです。
- 導入当時は同一スペックの per-minute 単価が GitHub 公式ランナーのおよそ半額でした(現在は GitHub 側の値下げで差は縮小しています)。
- Docker ビルドのキャッシュがジョブをまたいで残る(sticky disk)ため、特別な作り込みなしでビルドキャッシュが効き、変更箇所だけを作り直せるので速いです。
- GitHub Actions のエコシステムをそのまま使えるため、学習コストが小さいです。
ツールの課題点
- コストは状況次第で評価が変わります。導入当時はコスト優位性が大きかったのですが、その後 GitHub 公式ランナーが値下げ(2026/1)されたため単価差は縮小しました。Blacksmith はジョブが速いぶん同一タスクでも消費分数が少なく、公式ランナーで同じことをやった場合の正確な所要時間が分からないため、両者のコストを単純比較するのは難しいです。コスト目的なら、最新の GitHub 料金と実際の実行時間差を踏まえて自分の環境で評価するのが正確です。
- ビルドキャッシュを保持する sticky disk には、ランナーの実行料金とは別にストレージ料金($0.50/GB/月)がかかります。キャッシュが大きくなるとそれなりの額になるため、コストを見積もるときはランナー料金だけでなく sticky disk 分も含めて考える必要があります。
ツールを検討されている方へ
まずは一部のワークフローの runs-on だけ書き換えて、実際のジョブで速度を計測してみるのがおすすめです。リスクが小さく、効果も計測しやすいので意思決定がしやすいはずです。なお、この領域には Depot・Namespace・WarpBuild といった同種のサービス(高速なランナー+Docker ビルドキャッシュ)もあります。私たちはそれらを突き詰めて比較したわけではなく、移行の手軽さから Blacksmith を選びましたが、要件によっては併せて検討してみるとよいと思います。コスト面は、GitHub 公式ランナーも値下げ(2026/1)が入っている一方で Blacksmith はジョブが速く消費分数が少ないため、単価表だけでも実行時間だけでも判断できません。ご自身のワークロードで「実行時間 × 最新単価」を両環境で計測して比較するのが正確です。価値の中心は移行コストの低さ・速度・キャッシュの効きやすさにあります。
株式会社ベースマキナ / ほとけ
メンバー / フルスタックエンジニア・プロダクトエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
https://linktr.ee/mshaka
株式会社ベースマキナ / ほとけ
メンバー / フルスタックエンジニア・プロダクトエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
https://linktr.ee/ms...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法

