GitHub

Blacksmithとは?GitHub Actions向け高速・低コストな代替ランナーについて徹底解説

目次

Blacksmithとは?GitHub Actions向け高速・低コストな代替ランナーについて徹底解説

Blacksmith(ブラックスミス)とは、GitHub Actions用の高速かつ低コストな外部ランナーサービスです。GitHub公式のホストランナーと置き換えて使用できる「ドロップイン」型の代替として設計されており、既存のワークフローを大幅に高速化しつつコスト削減を実現します。具体的には、GitHubの公式ランナーと比較してビルドやテストの実行を最大で2倍速く処理でき、費用は半分程度(最大75%減)に抑えられることを謳っています。Blacksmithは高性能なベアメタルサーバー上の「ゲーミング級」CPUや最適化されたキャッシュ機構を用いてCIジョブの処理時間を短縮し、無駄な待ち時間を削減します。GitHubリポジトリと連携することで、YAMLワークフロー上の設定をわずか1行変更するだけで導入できる手軽さも特徴です。すでに世界中の800以上の開発チームがBlacksmithを導入しており、月間で1,200万件以上のCIジョブをBlacksmith上で実行しています。

BlacksmithランナーでCIがなぜ速く・安くなるのか?高速化とコスト削減の理由とメリットを解説

Blacksmithを用いることでCIパイプラインが高速化・低コスト化できるのは、主に以下の理由によります:

高速化の理由

  • 高性能ハードウェアと即時実行: Blacksmithのランナーは単一コア性能の高い最新鋭の物理サーバー上で動作し、ジョブ開始時の待機時間も極力抑えられています。これにより、ビルドやテストの処理が純粋に高速化され、GitHub公式ランナーにありがちな「ランナーの空きを待機中…」という遅延も発生しません。
  • キャッシュの局所化: ワークフロー中で利用する依存ファイルのキャッシュをBlacksmith側のデータセンター内に保存し、ネットワーク遅延を大幅に減らしています。その結果、依存ライブラリのダウンロードやビルド成果物の復元が最大4倍速く完了します。
  • Dockerレイヤーの永続化: Blacksmithでは「Sticky Disk(スティッキーディスク)」という仕組みにより、Dockerのビルドイメージのレイヤーを高速なNVMeストレージ上に継続的に保存できます。これにより、変更のないレイヤーは再利用されるため、Dockerイメージのビルドが最大で40倍高速化された事例も報告されています。
  • 無制限の並列実行: Blacksmithはジョブの同時実行数(並列度)に制限がなく、必要に応じて多数のジョブを一斉に走らせることができます。そのため、大規模なモノレポなどでもジョブの順番待ちが発生せず、CI全体の完了時間を短縮できます(※大量の並列実行時にも追加料金は発生せず、使った分の分単位課金のみです)。

コスト削減の理由とメリット

  • 実行時間短縮による利用分の減少: 上記の高速化により各ジョブの実行時間が短くなるため、消費するアクション分数が減ります。例えば、GitHub公式で10分かかっていたジョブがBlacksmithでは5分で完了すれば、それだけで消費時間が半減します。
  • 低廉な従量課金単価: Blacksmithの分単位料金はLinuxランナーの場合約$0.004/分と、GitHub公式の$0.008/分の半額に設定されています。実行時間の短縮と合わせると、トータルのCIコストを大幅に削減でき、理論上は従来比で75%程度のコスト削減も可能です(実際にBlacksmith自身も「最大75%安価」と謳っています)。
  • 大規模利用時のコストメリット: GitHub Actionsではプライベートリポジトリの場合、月2,000分を超えると従量課金が発生しますが、Blacksmithでは月3,000分の無料枠が用意されています。また、BlacksmithではCI環境の運用・管理コスト(マシンのセットアップやメンテナンス等)も不要なため、内製の自前ランナーを管理する場合に比べ隠れた費用を抑えることができます。

以上の理由から、Blacksmithに切り替えることでCIのフィードバックが飛躍的に高速化し、ランナー費用も削減できます。例えば、ある導入企業ではBlacksmithランナーに移行した結果、ビルドとテストの所要時間が平均22%短縮され、月間のCI利用料金が45%削減されたという報告があります。別のケースでは、Blacksmith導入によってGitHub Actionsのコストを75%も削減し、デプロイ頻度を2倍に高めた例もあります。このように、Blacksmithは開発者に「より速いCIパイプライン」と「より少ないコスト負担」という二重のメリットをもたらします。

Blacksmithランナーの主な特徴とメリットを詳しく解説(高速化・キャッシュ・観測性などの利点)

  • 高性能な実行環境: BlacksmithはCI実行用に特化した高性能なインフラを提供します。ベアメタルの強力なCPU(シングルスレッド性能に優れたゲーミングクラスのプロセッサ)上でジョブが実行され、GitHub公式と比べてビルドやテスト処理が約2倍高速に完了します。また各ジョブは軽量な仮想マシン(microVM)として即座にプロビジョニングされ、ジョブ開始待ちの待機時間も最小限です。ディスクもジョブごとに最大64GBと大容量が割り当てられるため、大規模ビルドでもディスク不足に陥りにくくなっています。さらに、Blacksmithは同時実行するジョブ数に制限を設けておらず、大量のジョブを並列に走らせてもキュー待ちが発生しません。
  • キャッシュ機能の強化: GitHub公式のキャッシュ機能(actions/cacheなど)とシームレスに連携しつつ、Blacksmith側でキャッシュ用ストレージを高速化しています。キャッシュデータはワークフローが実行されるのと同じデータセンター内に保持されるため、依存関係の復元やビルド成果物の取得が高速です。また、1リポジトリ当たり25GBものキャッシュ容量が毎週無料で提供され(GitHub公式の2.5倍に相当)、大きな依存ファイルも余裕を持って保存できます。
  • Dockerビルドの高速化: コンテナイメージのビルドを多用するCIでは、BlacksmithのDockerレイヤーキャッシュ機能(StickyDisk)とレジストリミラーが威力を発揮します。Blacksmith提供の専用アクションを利用することで、ビルド済みのDockerレイヤーをランナーのローカル高速ストレージに保持し、次回以降のワークフローで再利用できます。これにより、変更のない部分はビルドをスキップできるため、ケースによってはDockerビルド時間が従来比で10倍以上短縮されます。さらに、Docker Hubからのイメージ取得もBlacksmith側の「プルスルーキャッシュ(レジストリミラー)」経由で行われます。よく使われるベースイメージはBlacksmith内に一度取り込まれれば以降はキャッシュから提供されるため、イメージのダウンロードが高速化すると同時にDocker Hubのレート制限エラーも防止できます。
  • 優れた可観測性(オブザーバビリティ): Blacksmithは独自のWebコンソールを通じてCIパイプラインの詳細な観測機能を提供します。過去のワークフロー実行履歴を検索・フィルタして失敗の傾向を分析したり、全ジョブ横断でログを全文検索して共通のエラー箇所を素早く特定できます。必要に応じて実行中のランナーにSSHで接続し、その場でコンテナ内部を調査・デバッグすることも可能です。さらに、テストごとの成功・失敗や所要時間を集計して不安定なテスト(フレーク)の洗い出しやボトルネック分析を行うテスト分析機能、チーム全体のCI利用状況やパフォーマンスを可視化するダッシュボード機能も備わっており、CI/CDの問題発見と継続的な改善に役立ちます。

これらの特徴により、Blacksmithランナーは単にジョブを速く安く実行できるだけでなく、開発チームがCI環境を深く観測し最適化するためのツールとしても機能します。従来のGitHub公式ランナーでは得られなかった詳細なメトリクスや検索性が提供される点は、大規模なプロジェクトや複雑なパイプラインを運用する上で大きなメリットと言えるでしょう。

GitHub ActionsをBlacksmithランナーに移行する手順を解説(ワークフロー変更のポイント)

  1. Blacksmithアカウントの作成・GitHub連携: まずBlacksmithのサイト(app.blacksmith.sh)でGitHub OAuth経由でサインアップし、自分のGitHub組織にBlacksmithアプリをインストールします。BlacksmithはGitHubの「Organization(組織)」に対してのみ導入可能で、個人アカウントのリポジトリには使用できない点に注意してください。組織へのインストール時に、ワークフロー実行やリポジトリへの読み取り権限など必要な許可を付与します。
  2. ワークフローファイルのランナー指定を変更: 次に、各リポジトリのGitHub Actionsワークフローファイル(YAML)内で、runs-on: の指定をGitHubホストランナーからBlacksmithのランナーラベルに置き換えます。例えば従来 runs-on: ubuntu-latest と書かれていた箇所は、Blacksmith提供のマシンタイプを指定する形に変更します(例:runs-on: blacksmith-2vcpu-ubuntu-22.04 等)。BlacksmithではCPU数やイメージ種別ごとにラベルが用意されており、プロジェクトの規模に合わせて2vCPUや4vCPUのランナーを選択できます。ワークフロー内に複数ジョブがある場合は、すべてのジョブについてこのruns-onを変更してください。
  3. キャッシュ設定の確認(任意): 依存関係のキャッシュ(actions/cache)を利用している場合でも、Blacksmithランナー上では特別な変更なしにそのまま利用可能です。Blacksmith側でキャッシュ保存先が自動的に切り替わり、既存のキャッシュアクションは透過的にBlacksmithの高速なキャッシュストレージを使うようになります。そのため、多くの場合ワークフローYAML中のキャッシュ設定は変更不要ですが、もしBlacksmith公式のキャッシュアクション(useblacksmith/cache@v5)を利用したい場合は置き換えても構いません。
  4. Dockerビルドステップの変更(必要に応じて): CIでDockerイメージをビルドしてプッシュしている場合、BlacksmithのDockerレイヤーキャッシュ機能を有効にするためワークフローに専用のアクションを追加します。具体的には、Docker Buildxのセットアップ部分で docker/setup-buildx-action@v3 に続けて useblacksmith/setup-docker-builder@v1 を実行し、またDockerビルド&プッシュ部分では docker/build-push-action@v3 を Blacksmith提供の useblacksmith/build-push-action@v2 に置き換えます。Blacksmith版のアクションを使うことで、先述のStickyDiskによるレイヤーキャッシュが自動的に適用されます。なお、直接docker buildコマンドを用いている場合でも、ジョブ実行前に useblacksmith/setup-docker-builder を実行すれば同様にキャッシュが有効になります。
  5. 変更内容の反映: 修正したワークフローファイルをリポジトリにコミットし、プッシュします。以降、そのワークフローのジョブ実行はGitHubではなくBlacksmithのランナー上で行われるようになります。初回の実行時にはBlacksmith側で必要なセットアップ(初回キャッシュの作成など)が行われるため、場合によっては最初の1〜2回の実行は通常と同程度の時間がかかることがあります。しかし、キャッシュが温まれば以降の実行は格段に高速化されるでしょう。Blacksmithの管理画面からジョブの進行状況やログを確認し、問題なく動作していることを検証してください。

以上が基本的な移行手順です。要点は、runs-onの指定をBlacksmithランナーに変えることと、可能であればDockerビルドのステップをBlacksmith推奨の形に変更してキャッシュ効果を最大化することです。これらの変更により、今までのワークフローを大きく書き換えることなくBlacksmithの高速なCI環境へ移行できます。

Migration Wizardを使ったランナー設定の自動変換方法を詳しく解説(移行ウィザードの活用)

Blacksmithの「Migration Wizard(移行ウィザード)」機能を使うと、上記のようなワークフロー修正を自動かつ一括で行うことができます。Migration WizardはBlacksmithダッシュボード上で利用できるツールで、選択したリポジトリ内のすべてのワークフローファイルを解析し、GitHub公式ランナーからBlacksmithランナーへの移行に必要な変更をまとめて提案・適用してくれます。

具体的な使い方としては、BlacksmithにGitHub組織を連携後、ダッシュボードの対象リポジトリ画面から「Migration Wizard」を起動します。ウィザードは各ワークフローのruns-onやキャッシュ設定を自動的に書き換え、変更差分をプレビューします。その上でユーザーの確認を経てGitHub上にプルリクエストを作成し、変更を反映する仕組みです。実際にBlacksmith利用者からは「数クリックで複数のワークフローを一気に移行できた」という声もあり、このウィザードはBlacksmithの人気機能となっています。

Migration Wizardは多くのパターンをカバーしますが、完全ではない点には注意が必要です。例えば、.githubディレクトリ配下の標準的なワークフローファイルは検出して変換してくれますが、リポジトリ内で独自に定義した再利用可能ワークフローやCompositeアクション用のYAMLファイルなど、特殊な場所にある設定はウィザードが見落とす場合があります。実際、ある事例ではワークフローファイル中のruns-onやキャッシュ設定は自動変換できたものの、別ファイルに定義していたCompositeアクション内の設定はウィザードが検出できず手動で修正を行ったと報告されています。そのため、ウィザード実行後はプルリクエストの内容をよく確認し、置換漏れがないか(特にカスタムアクションや隠れた設定ファイルなど)をチェックすることが重要です。

以上のように、Migration Wizardを活用すれば移行作業を大幅に簡略化できます。手動のミスを防ぎつつ素早くBlacksmithへの切り替えを行えるため、対象プロジェクトのワークフロー数が多い場合や変更に自信がない場合は、積極的にこのウィザードを利用するとよいでしょう。

Blacksmithランナーを導入するための準備と前提条件を詳しく解説(必要な環境設定と事前準備のポイント)

Blacksmith導入にあたって、事前に確認・準備しておくべきポイントをまとめます。

  • GitHub組織と権限の用意: 前述のように、BlacksmithはGitHubの「Organization(組織)」単位で利用するサービスであり、個人アカウントのリポジトリでは使用できません。そのため、利用したいリポジトリが所属するGitHub組織で管理者権限を持っていること、またその組織にBlacksmithアプリをインストールできることが前提となります。組織にSSO(シングルサインオン)が有効な場合は、Blacksmithダッシュボードから該当組織を閲覧する際にGitHub上でのSSO認証が求められるので、事前に認証を済ませておきます。また、組織へBlacksmithをインストールする際に必要な権限(Actionsの実行権やリポジトリの内容読み取り権限など)を付与する必要があるため、セキュリティポリシー上問題がないか確認しておきましょう。
  • 対応プラットフォームの確認: Blacksmithランナーは現時点でLinux(Ubuntu)環境のジョブ実行に対応しています。Windows用やmacOS用のGitHub Actionsランナーはサポートされていないため、ワークフローにこれらのOS向けジョブが含まれている場合、それらは引き続きGitHub公式ランナーを使う必要があります(macOSジョブなどはBlacksmithには使用不可)。ARMアーキテクチャについてはBlacksmithはARM対応のランナーも提供しています。自分のワークフローがBlacksmithで実行可能な環境か、事前に確認してください。
  • ネットワークとセキュリティ: CIジョブ中で社内ネットワーク上のリソースにアクセスする場合や特定IPアドレスのみ許可された外部サービスを利用する場合、Blacksmithランナーの外部送信元IPアドレスを許可リストに追加する必要が生じることがあります。そのようなケースに備え、Blacksmithでは固定IPアドレスの提供(要問い合わせの有料オプション)にも対応しています。また、Blacksmithのランナーはクラウド上(主に欧州地域のデータセンター)で稼働するため、自社データの所在地や機密性に関するポリシーにも留意が必要です。Blacksmith自体はSOC 2 Type II認証を取得しており、信頼性・セキュリティ対策について一定の基準を満たしていますが、自社のセキュリティ部門とも相談のうえ導入を判断するとよいでしょう。GitHub上のシークレット(機密情報)については、Blacksmithランナーでも公式ランナー同様にGitHubから安全に注入されるため、基本的には現行の設定をそのまま利用可能です。
  • 課金と利用計画: Blacksmithには月あたり3,000分の無料利用枠がありますが、それを超えると従量課金($0.004/分)が発生します。一方、GitHub公式ランナーはパブリックリポジトリであれば無制限に無料で利用できます。そのため、オープンソースプロジェクトなど現在CIにコストがかかっていない場合、Blacksmith導入により新たに費用負担が発生する点に注意が必要です。逆に、既にGitHub Actionsの分数超過で課金が発生しているようなケースでは、Blacksmithへの移行によって大幅なコスト削減が見込めます(前述の通り単価が半額で実行も高速なため)。自プロジェクトのCI利用状況を踏まえ、Blacksmithの無料枠内に収まるか、超過する見込みの場合そのコストに見合う効果が得られるか、といった点を事前に検討してください。

以上がBlacksmithランナー導入前に確認すべき主なポイントです。適切な権限と環境が整っていれば、あとは前述の移行手順に従って設定を変更するだけで、Blacksmithの利用を開始できます。

Blacksmithランナーで実現できるコスト削減効果を徹底検証・解説:最大でどれだけ節約できるのか?

Blacksmithランナーへの移行によって期待できるコスト削減効果は、プロジェクトの状況によって異なりますが、多くの場合で50%以上、条件が揃えば最大で75%程度の削減が可能だとされています。この「75%削減」という数字は、GitHub公式ランナー比で実行時間が約半分に短縮され、かつ分単位料金が半額になることで、総コストが0.5×0.5=0.25、すなわち25%(75%減)になることに由来します。実際にBlacksmith公式サイトでも、導入企業がGitHub Actionsコストを4分の1(75%減)に削減できた例や、70%程度の削減効果を得た例が紹介されています。

もっとも、すべてのケースで一律に75%減を実現できるわけではありません。削減率はワークフローの内容や最適化状況によって上下します。例えば、既にGitHub上で大部分のキャッシュ活用など最適化を行っていたプロジェクトでは、Blacksmithに移行しても相対的な高速化が限定的となり、コスト削減も50〜60%程度に留まる可能性があります。一方、CPU負荷の高いビルドやテストがボトルネックとなっていたプロジェクトでは、Blacksmithの高性能CPUによる2倍近い高速化恩恵をフルに受けられ、費用は大幅に圧縮されるでしょう。

実例を挙げると、ある開発チームではBlacksmith導入後にワークフローの平均実行時間が約22%短縮され(1ジョブあたりの所要時間が0.78倍)、結果として月間のCI利用料金が45%減少したと報告されています。別の企業では、Blacksmithへの切り替えによりCIの実行がほぼ2倍高速化し、従量課金額が従来の30%程度(70%削減)になった例もあります。このように削減幅には幅がありますが、GitHub Actionsにかかっていたランナー費用の半分以上を節約できるケースが多いと言えるでしょう。

なお、プロジェクトによってはGitHub Actionsを無料枠内で運用しており、現在コストが発生していない場合もあります。そのようなケースではBlacksmithを導入しても「金銭的な節約」には直結しませんが、CI時間短縮による開発効率向上など別のメリットが得られます(前述の通り、Blacksmithは大幅な時間短縮をもたらすためです)。一方で、既にGitHubで有料分を支払っている場合や、CIが遅く開発効率が落ちている場合には、Blacksmithへの移行で十分なコストメリットと生産性向上が期待できるでしょう。

Blacksmithのキャッシュ機能とDockerビルド高速化の仕組みを解説(キャッシュストレージとStickyDiskによる高速化)

依存関係キャッシュの高速化(キャッシュストレージの局所化)

GitHub Actionsでは、actions/cacheアクションなどを用いて依存ファイルやビルド成果物を保存し、次回以降のワークフローで再利用することが一般的です。しかし、GitHub公式ランナーの場合、このキャッシュはGitHubの共有ストレージに保存されるため、保存・復元にネットワーク経由で比較的時間がかかります。またリポジトリ全体で利用できるキャッシュ容量も上限10GB程度と限定的でした。

Blacksmithではキャッシュストレージが各ランナーの実行環境と同じデータセンター内に配置されており、ネットワーク遅延が大幅に削減されています。その結果、キャッシュのアップロード/ダウンロードが最大4倍速く完了します。具体的には、Blacksmith上でactions/cacheを実行すると、自動的にBlacksmithの高速ストレージ(NVMeベース)にデータが保存され、次回ジョブ実行時にはその近接ストレージから直接データが供給されます。ユーザーが特別な操作をする必要はなく、通常のキャッシュキー機構に従って保存・復元が行われます。

加えて、Blacksmithでは1リポジトリあたり25GBまでのキャッシュデータを無料で保持できます。これはGitHub公式の標準設定と比べ約2.5倍の容量であり、より多くの依存ファイルや大きなビルド成果物をキャッシュしておけます。一定期間アクセスされなかった古いキャッシュは順次消されますが(LRU方式)、通常の開発サイクルで頻繁に使われるキャッシュであれば十分な容量と言えるでしょう。

StickyDiskによるDockerビルド高速化の仕組み

Blacksmith最大の特徴の一つが、Dockerイメージビルドの高速化を可能にする「StickyDisk」と呼ばれる仕組みです。GitHub公式ランナーでは各ジョブがクリーンなVM上で開始するため、Dockerのビルドを行う際、毎回すべてのイメージレイヤーを一から構築するか、あるいはレジストリからキャッシュ用イメージをプルして利用するといった工夫が必要でした。これに対しBlacksmithでは、同一リポジトリ内のジョブ間でDockerのレイヤーキャッシュを自動的に共有できます。

StickyDiskの仕組みでは、Blacksmithランナー上に高速なNVMeディスク領域が割り当てられ、そこにDockerのレイヤーデータ(/var/lib/docker以下のキャッシュ)が永続化されます。ワークフローでBlacksmith提供のDockerビルド用アクション(useblacksmith/setup-docker-builderおよびuseblacksmith/build-push-action)を利用すると、ジョブ開始時に前回までのビルドレイヤーがそのディスクからマウントされ、以降のdocker buildで既存レイヤーがキャッシュとして認識されます。ジョブ終了時には、新たにビルドされたレイヤーがディスクに書き戻され、次の実行に備えて保持されます。この処理はジョブが正常終了した場合にのみ行われ、失敗やキャンセル時にはキャッシュは更新されない設計です。

このStickyDisk方式により、例えば前回と変更のないレイヤーは再ビルドをスキップできるため、Dockerイメージの構築にかかる時間が飛躍的に短縮されます。特にレイヤー数が多い大規模イメージや、パッケージインストール等に時間を要するステップが含まれる場合、その効果は顕著です。Blacksmith利用者からは、このDockerレイヤーキャッシュ導入によりビルド時間が2倍から最大40倍に高速化したとの報告もあります。

さらにBlacksmithでは、Docker Hubからのベースイメージ取得も高速化されています。前述の通りBlacksmithの全ランナー群に共通のレジストリミラー(Pull Through Cache)が設定されており、たとえばdocker pull ubuntu:latestのような公開イメージの取得は一度目のリクエスト時にミラーサーバーにキャッシュされ、二度目以降はそのキャッシュから供給されます。これにより大勢の開発者が同じイメージをpullする場合でもネットワーク帯域の節約と高速化が図られるほか、Docker Hubの厳しいレート制限に引っかかるリスクも低減します。

StickyDiskによるキャッシュはリポジトリ単位で共有されます。同じリポジトリのジョブであれば、別のブランチやワークフローから実行されたDockerビルドであっても共通のキャッシュを参照します。ただし、複数のビルドが並行して走っている場合、キャッシュの更新は最後に完了したジョブの内容が優先される(Last Write Wins)ポリシーとなります。そのため、初回実行直後などキャッシュが十分に行き渡るまでは一部の並列ジョブでキャッシュヒット率が下がる可能性もありますが、数回の実行を経てすべてのレイヤーが蓄積されれば問題は解消します。

以上のように、Blacksmithのキャッシュ機能とStickyDiskは、従来時間のかかっていた依存ファイル取得やDockerビルド処理を劇的に高速化する仕組みです。特にモノレポで多数のパッケージをビルドする場合や、大型のコンテナイメージを頻繁にビルドするCIパイプラインにおいて、その効果は非常に大きいでしょう。

Blacksmithランナーの料金体系とGitHub公式ランナーとの比較(利用料金・無料枠の違いについて)

Blacksmithの料金体系: Blacksmithは基本的に従量課金モデル(使った分だけ支払い)で、Linux標準ランナーの場合は1分あたり約$0.004です。これはGitHub公式の約半額の単価設定です。利用開始時には月3,000分の無料枠が提供され、それを超えた分について課金されます。より大規模なマシン(例: 4vCPU版など)を利用することも可能ですが、その場合は若干高い分単位料金が適用されます(サイズに応じた料金設定)。なお、Blacksmithの高度な機能利用に伴う追加コストも一部存在します。例えば、Dockerレイヤーキャッシュ用のストレージは週あたり25GBまでは無料ですが、極端に大容量のキャッシュが必要な場合は別途ストレージ追加料金($0.50/GB/月程度)が発生する可能性があります。また、特定のオプション(静的IPの割り当てや優先サポートなど)は有料オプションとなっています。ただし通常の利用範囲では、無料枠内および基本の従量課金だけで十分に運用できるでしょう。

GitHub公式ランナーの料金体系: GitHub Actions公式のホストランナーの場合、パブリックリポジトリでの使用は完全に無料ですが、プライベートリポジトリでは各アカウント/組織ごとに月あたり一定の無料分(例: 無料プランで2,000分、チームプランで3,000分、エンタープライズプランで50,000分など)が設定されています。これを超過すると分単位の課金が発生し、Linuxランナーで$0.008/分、Windowsランナーで$0.016/分、macOSランナーでは$0.08/分という高額な料金設定になっています。特にmacOSランナーはLinuxの10倍の単価であり、長時間実行すると大きな費用がかかります。GitHubではこれらの料金は利用分がGitHubプランの請求に加算される形で支払います。

無料枠の違い: 上記のように、Blacksmithは月3,000分の無料枠を提供しています。一方、GitHub公式ではパブリックリポジトリであれば無制限に無料で使用できる点が異なります。ただし、プライベートリポジトリの場合はGitHub公式の無料枠(2,000〜3,000分程度)よりBlacksmithの無料枠(3,000分)の方が多く、また超過時の単価もBlacksmithの方が割安です。したがって、同じLinuxベースのワークロードであれば、Blacksmithを利用する方が無料枠・料金両面で有利になるケースが多いです。

その他の比較ポイント: GitHub公式ランナーはGitHubプラットフォームに標準で統合されている利便性がありますが、並列実行数にソフトリミットがある(プランによって同時実行ジョブ数に上限がある)点や、マシンのスペックが固定(2コアCPUなど)で選択肢が少ない点が存在します。Blacksmithは無制限の並列実行と柔軟なマシンスペック選択が可能であり、高負荷ジョブを多数同時に走らせたい場合や高速マシンが必要な場合に有利です。総合的に見て、プライベートプロジェクトにおいてランナー利用料金を削減したい場合や、高性能なCI環境を必要とする場合に、Blacksmithの料金体系はGitHub公式よりもコストパフォーマンスに優れていると言えるでしょう。

Blacksmithランナーを利用する際の注意点・制限事項について解説(個人リポジトリでは使用不可など)

  • 個人リポジトリでは利用不可: 繰り返しになりますが、BlacksmithはGitHubの組織(Organization)アカウントでのみ利用できます。個人ユーザーのリポジトリに対してはインストールや使用ができません。そのため、個人開発のプロジェクトでBlacksmithを使いたい場合は、リポジトリを所属させるためのGitHub組織を作成する必要があります。
  • サポートする実行環境の限定: 現状、Blacksmithがサポートするランナー環境はLinux(Ubuntu系OS)のみです。WindowsやmacOS用のジョブはBlacksmithには移行できず、引き続きGitHub公式ランナーを使用する必要があります(macOSランナーはBlacksmithでは提供されません)。したがって、iOS/macOS向けのビルドやWindows特有のテストをCIに含めている場合、BlacksmithだけですべてのCIジョブを賄うことはできません。この点はワークフロー設計時に注意が必要です。
  • コードへのアクセス許可: BlacksmithはGitHubアプリとしてリポジトリのコードやシークレットにアクセスする権限を要求します。信頼性の高いサービスではありますが、機密性の高いソースコードを第三者サービスのインフラ上で実行することになるため、自社のセキュリティポリシーやコンプライアンス上の確認が必要です。BlacksmithはSOC2 Type II認証を取得していますが、それでも社外へのコード持ち出しとみなされる場合もあります。事前にリスクとメリットを評価し、必要に応じて社内合意を取ってから導入してください。
  • ワークフローの一部変更が必要: Blacksmithへの移行自体はシンプルですが、Dockerビルドの高速化を最大限活かすにはBlacksmith提供のアクションへの置き換えが必要になるなど、ワークフローYAMLに若干の改変が求められます。具体的には前述のようにruns-onの変更や、一部ステップでBlacksmith専用アクションを使う対応が発生します。これらの変更は比較的自動化されていますが、Migration Wizardが対応しきれない特殊なケースでは手動で修正する必要があります。移行時にはすべてのワークフローが正しくBlacksmith上で動作するか、注意深く検証してください。
  • 初回実行とキャッシュウォームアップ: Blacksmithのキャッシュ機構(依存キャッシュやDockerレイヤーキャッシュ)は初回実行時には空の状態のため、最初の数回のジョブでは劇的な時間短縮が得られない場合があります。キャッシュが「ウォームアップ」して以降、本来の効果が発揮されます。この挙動は設計上のものなので、導入直後に効果が見えにくくても数回運用する中で改善していく点を理解しておきましょう。
  • サービスへの依存: BlacksmithはGitHubと独立したサードパーティサービスであるため、その稼働状況にCIが依存することになります。Blacksmith側に障害が発生した場合、CIパイプラインが一時的に実行できなくなるリスクもゼロではありません(もっとも、Blacksmithは多くの企業で利用されており信頼性は高いと考えられます)。また、現時点でBlacksmithはGitHub.com(クラウド版)と統合して動作します。GitHub Enterprise Server(オンプレミス版)環境とは連携できない点にも注意してください。

以上の点を踏まえ、Blacksmithランナーを利用する際にはその制約と対策を理解しておくことが重要です。特にサポートOSの範囲や権限周りの事項について事前に認識しておくことで、導入後に想定外の問題を防ぐことができます。

資料請求

RELATED POSTS 関連記事