英紙Guardian、GitHub Actions「セルフホステッドランナー」に移行 CI/CDコスト削減の教訓とは:iOSアプリの開発コスト、ビルド時間を改善
The Guardianのエンジニアリングチームは、ワークフロー自動化サービス「GitHub Actions」のセルフホステッドランナー(自社環境で用意する実行環境)への移行経験をブログで公開した。
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のランナーイメージ更新で、ビルド時間が悪化
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%以上高速化
月額コストは約400ポンド削減された。マシンに直接ログインしてログを確認しデバッグできることは、GitHubホステッドランナーのブラックボックスと比較して大きな利点だという。また、macOS更新を自分たちで管理できる点も利点として挙げられている。
課題と運用負担
一方で、セルフホステッド移行に伴う課題も明らかになった。
- 並行性
- 現在マシン上に4つの並行ランナーを設定しており、ジョブがキューに入る場合がある
- ただし速度向上により、キューは短く、まれで、ほとんど問題にならない
- メンテナンスのオーバーヘッド
- Xcodeアップグレード後のクリーンアップ、古いシミュレーターの削除、十分な空きディスク容量の確保、ランナーの整理が必要
- 初期の不具合
- 永続的ランナーへの移行により、当初は古いジョブデータが残存する問題があった
- ジョブ失敗時にDerivedDataフォルダが残り、キーチェーンエントリが削除されず、クリーンアップステップで自ら修正する必要があった
- 信頼性
- 物理ハードウェアの維持は、クラッシュ時の物理的な再起動が必要であり、安定した電源供給の確保も必要
GitHub Actionsのセルフホステッドランナー移行で得た教訓
同チームは、GitHub Actionsのセルフホステッドランナー移行から得た知見として次の点を挙げている。
- 複数の小型マシンを管理するより、高性能な1台で複数のランナーを実行する方が運用しやすい
- 常時稼働のための電源確保とリモート管理が不可欠
- アーティファクト管理とディスク容量監視の適切なクリーンアップルーチンを事前に計画する必要がある
セルフホステッドランナーへの移行には障壁がないわけではなかったが、「速度、コスト、制御の向上はその負担を上回る」とGuardianは結論付けている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
開発チームの生産性が一変する「AI駆動開発」 アイレットの事例に学ぶ3つの変革ステップ
ソフトウェア開発において生成AIは、単なる「コード補完」ツールを超え、開発プロセス全体を自動化・最適化する存在となりつつあります。「AI駆動開発」が、開発者の生産性を一変させるだけでなく、開発組織のKPIそのものを変革させる可能性を秘めています。本稿では、アイレットにおけるAI駆動開発の実践事例を基に、AI駆動開発を定着化させるための「3つの変革ステップ」を解説。SIer/CIerの未来の役割を考えます。
VS Codeユーザー待望? 1コマンドでWindowsアプリ開発の“面倒”を一掃する「winapp」発表
Microsoftは、Windowsアプリ開発の環境構築からパッケージ作成までを簡素化する「Windows App Development Command Line Interface」のパブリックプレビュー版を公開した。
エールフランス航空、IaCツールの「Terraform」と「Vault」「Ansible」でクラウドインフラを自動化
エールフランス航空は、TerraformとVaultを活用した自動化基盤を構築した。プロビジョニング時間を数日から数分へ短縮し、エラー率を70%以上削減したという。

