英紙Guardian、GitHub Actions「セルフホステッドランナー」に移行 CI/CDコスト削減の教訓とはiOSアプリの開発コスト、ビルド時間を改善

The Guardianのエンジニアリングチームは、ワークフロー自動化サービス「GitHub Actions」のセルフホステッドランナー(自社環境で用意する実行環境)への移行経験をブログで公開した。

» 2026年03月09日 13時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 2025年12月22日(英国時間)、英国の新聞「The Guardian」(以下、Guardian)のエンジニアリングチームは、ワークフロー自動化サービス「GitHub Actions」のセルフホステッドランナー(自社環境で用意する実行環境)への移行経験をブログで公開した。

 「iOS」アプリケーション開発におけるCI/CD(継続的インテグレーション/継続的デリバリー)パイプラインの課題を解決したことで、月額約400ポンド(約8万4000円<1ポンド=約210円の為替レートで換算>のコスト削減と、全ワークフローの平均実行時間を120%以上短縮できたという。

セルフホステッドランナー移行前の課題

 Guardianのチームは長年、全ての自動化処理をGitHubホステッドランナー(GitHubが用意する実行環境)で実行していた。iOSアプリケーションのビルドでは割高な「macOS」ランナーが必須であり、可能な部分のみ「Linux」ランナーに分散し、コストを抑制していた。

 GitHubホステッドランナーには幾つかの課題があった。

  • 価格:macOS上でのGitHub Actionsの分単位の課金は、Linuxの約10倍
  • タイムアウトと速度:ビルド遅延や再実行によるコスト増
  • 予測不可能な上流変更:GitHubのランナーイメージ更新で、ビルド時間が悪化

GitHubホステッドランナー使用時の1日当たりの平均実行時間推移(提供:The Guardian)

 2023年から2024年にかけて「Xcode Cloud」(Xcode:Appleが提供しているIDE<統合開発環境>)も使用していたが、2024年3月に突然動作しなくなり、リリースのブロックを解除するためにGitHub Actionsワークフローを復元せざるを得なかった。

 GitHubのDraft Pull Requestでのユニットテストスキップ、Appleのプログラミング言語「Swift」パッケージ用のGitHubキャッシュ最適化、大型ランナーへの移行など、コスト削減の実験も行ったが、月額コストに十分な差は出なかった。

セルフホステッドランナーへの移行

 Guardianのチームは、オフィスに未使用の「Mac mini」があったことから、セルフホステッドランナーの検証を開始した。初期セットアップはGitHubの公式手順に従い、ランナーソフトウェアのインストール、リポジトリ認証、Mac miniで実行するようワークフローを更新した。チームがマシンを管理できるようリモートアクセスも設定した。

 ただし、実際にはプラグ&プレイとはいかず、試行錯誤が多かった。Xcodeビルド用の「DerivedData」フォルダの設定やジョブ間のアーティファクトクリーンアップには追加の注意が必要だった。ローカルランナーはクラウドインスタンスと異なり状態が永続化されるため、以下のようなワークフロー実行をクリーンに保つ仕組みが必要だった。

  • 実行ごとの決定論的なDerivedDataフォルダ名を生成
  • ジョブ後のクリーンアップステップ
  • 古いXcodeバージョンやシミュレーターの定期的な削除
  • デプロイ関連アクション失敗後のパスワード管理システム「キーチェーン」のデータ削除

移行後の成果

 違いは即座に現れた。ビルドははるかに高速になり、タイムアウトが発生しなくなった。移行前後99日間のデータ比較では、以下の改善が確認された。

  • ユニットテストは50%高速化
  • ビルドのアップロードは60%高速化
  • 全ワークフローの平均実行時間は120%以上高速化
移行前後のパフォーマンス比較。セルフホステッドランナー運用時の平均ジョブ実行時間は3分7秒まで短縮された(提供:The Guardian)

 月額コストは約400ポンド削減された。マシンに直接ログインしてログを確認しデバッグできることは、GitHubホステッドランナーのブラックボックスと比較して大きな利点だという。また、macOS更新を自分たちで管理できる点も利点として挙げられている。

課題と運用負担

 一方で、セルフホステッド移行に伴う課題も明らかになった。

  • 並行性
    • 現在マシン上に4つの並行ランナーを設定しており、ジョブがキューに入る場合がある
    • ただし速度向上により、キューは短く、まれで、ほとんど問題にならない
  • メンテナンスのオーバーヘッド
    • Xcodeアップグレード後のクリーンアップ、古いシミュレーターの削除、十分な空きディスク容量の確保、ランナーの整理が必要
  • 初期の不具合
    • 永続的ランナーへの移行により、当初は古いジョブデータが残存する問題があった
    • ジョブ失敗時にDerivedDataフォルダが残り、キーチェーンエントリが削除されず、クリーンアップステップで自ら修正する必要があった
  • 信頼性
    • 物理ハードウェアの維持は、クラッシュ時の物理的な再起動が必要であり、安定した電源供給の確保も必要

GitHub Actionsのセルフホステッドランナー移行で得た教訓

 同チームは、GitHub Actionsのセルフホステッドランナー移行から得た知見として次の点を挙げている。

  • 複数の小型マシンを管理するより、高性能な1台で複数のランナーを実行する方が運用しやすい
  • 常時稼働のための電源確保とリモート管理が不可欠
  • アーティファクト管理とディスク容量監視の適切なクリーンアップルーチンを事前に計画する必要がある

 セルフホステッドランナーへの移行には障壁がないわけではなかったが、「速度、コスト、制御の向上はその負担を上回る」とGuardianは結論付けている。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。