top of page

GitHub Actionsの価格ショックがクラウドの肥大化に対する開発者の反発を煽っている

先月、GitHubはActionsの利用料金を引き上げた。多くのソロ開発者や小規模チームが、変更後数日以内に請求額が急激に上昇したと報告している。

この動きは、拡大する溝を露呈した。クラウドプロバイダーは引き続き弾力的なスケーリングを謳っている一方で、予算に限りがあるユーザーが最初に圧迫を感じている。

本記事では、この反発について検証する。効率性に関する主張が、インディー開発者の日常的なコスト現実と衝突している点に焦点を当てる。

開発者たちは突然のワークフロー調整を余儀なくされている。一部ではGitHubから完全にジョブを移行させた。

価格引き上げの詳細が速やかに明らかになる

GitHubは更新された料金表をブログで公開した。分単位の課金が大型ランナーと同時実行ジョブに対して変更された。変更は標準ランナーの分単価と、多くのプロジェクトが高速なフィードバックループのために採用し始めていた大型インスタンスサイズ向けの高い乗数に影響した。

チームは最初の請求サイクルで違いに気づいた。いくつかのインディープロジェクトでは、利用量が変わらないのにコストが2倍になったと報告された。8つの並列ジョブを持つ控えめなモノレポを追跡していたある開発者は、調整後に月額が18ドルから47ドルに上昇したと述べた。ドキュメント中心のリポジトリを管理する別のメンテナは、スケジュールされた実行に同時実行ジョブ制限が適用された結果、3.2倍の増加を記録した。

同社は継続的なインフラ費用を理由に挙げた。また、有料顧客向けに利用可能な新機能セット(新しい大型ランナークラスや改善されたキャッシュインフラを含む)も指摘した。コミュニティメンバーは直ちに公開リポジトリ間の比較をまとめた。変更前後の実行を一覧にしたスプレッドシートがフォーラムやGitHub Discussionsで回覧され、開発者が新しい料金体系での予想支出をモデル化できるようにした。

生の数字を超えて、価格体系は予測を複雑にする新たな変数を導入した。WindowsまたはmacOSランナーで実行されるジョブにはより高い乗数が適用され、同時実行上限により、開発者がマトリックスを並列化していても順次実行を強いられる。結果として、多くの以前は無料だった設定が請求サイクルの最初の週で有料領域に入るようになった。発表と同時に公開されたドキュメントでは、キャッシュされた依存関係のストレージも一定の閾値を超えると別途課金されることが明記された。

さらに精査したところ、新しい料金は更新された無料枠を超える利用に対して遡及適用されることが判明し、多くのメンテナがサイクル途中で不意を突かれた。たとえば、3つのOSと5つのPythonバージョンにわたるマトリックステストに依存していたPythonツールプロジェクトでは、請求対象時間がゼロから1週間で2,400分超に急増した。分単価の上昇と実効的な無料枠の縮小が組み合わさったことで、コミット頻度のわずかな増加でも、予想よりも早く有料領域に到達するプロジェクトが増えた。

TypeScriptライブラリのメンテナーが14のフィーチャーブランチにわたるメトリクスを追跡した具体例がもう一つある。変更前は、夜間の依存関係スキャンやプルリクエストのマトリックスジョブが無料枠内に収まっていた。変更後は、同じアクティビティパターンで一貫して超過が発生し、特定のラベルがある場合やmainブランチを対象とする場合にのみ完全なマトリックスを実行する条件付きトリガーへの即時切り替えを促した。この1回の調整により、次のサイクルで請求対象の分数が47%削減され、価格ショックがワークフローメタデータを使った迅速な実験を強いたことが示された。

開発者たちはまた、新しいストレージ課金が7日を超えるアーティファクト保持にも適用されることを発見し、クリーンアップポリシーに関する追加の決定を迫られた。あるチームはGitHub APIを使ってアーティファクトの有効期限スクリプトを自動化し、しきい値内に収めようとしたが、メンテナンスのオーバーヘッドが増加し、ホスト型ランナーの本来の利便性が損なわれた。こうした段階的な制約は時間の経過とともに蓄積し、かつては摩擦のないサービスだったものが、分単位の使用パターンを常に監視する必要があるシステムへと変わっていった。

インディー開発者が即時の圧力にさらされる

ソロのビルダーや小規模なオープンソースメンテナーは、狭いマージンで運営している。多くの場合、無料枠の分数に依存しているが、新たな構造下ではより早く使い果たされる。この変更は、プッシュのたびにワークフローをトリガーし、さらに依存関係の更新やセキュリティスキャン用の夜間スケジュールジョブを抱えるプロジェクトに不均衡な影響を与える。

あるメンテナーは、非クリティカルなブランチでの自動テストを一時停止したと述べた。すべてのフィーチャーブランチで完全なマトリックスを実行する代わりに、CIを実行する前に明示的なラベルを必要とするようになった。別のメンテナーは、夜間ジョブを以前はアイドル状態だった予備のVPS上で一晩中実行するセルフホスト型ハードウェアに移行した。これらの対応は孤立したものではない。複数のプラットフォームでの議論では、マトリックス次元の削減、WindowsおよびmacOSジョブの削除、時には不安定さを招くキャッシュ戦略への依存など、繰り返し見られる削減パターンが示されている。

大規模な組織は既存の予算を通じて変更を吸収する。小規模なグループにはそのような緩衝材がなく、カバレッジの削減、個人的な金銭的負担の増加、またはプラットフォームからの移行のいずれかを選択しなければならない。いくつかのプロジェクトでは、テストスイートを実行するコストが追加のレビューオーバーヘッドに見合わなくなったため、貢献者がパッチの提出を取りやめたと報告されている。文書化された事例の1つでは、人気のCLIツールが、メンテナーが「追加のマトリックスジョブはすべて測定可能な個人的な費用を表す」と説明するメモを投稿した後、3人の常連貢献者を失った。

この圧力は貢献パターンも変えた。新規貢献者は、すべての反復でCI検証を期待せずにコードを提出するようになり、最終検証の負担がメンテナーに戻るようになった。これによりマージの速度が低下し、微妙なプラットフォーム固有のバグが本番環境に到達する可能性が高まる。一部のメンテナーは、ホスト型マトリックスのサブセットを模倣する軽量なローカルテストハーネスを作成して対応しているが、これらのツールが完全な同等性を達成することは稀で、継続的な同期作業が必要となる。

クラウドのスケーラビリティという約束と予算の限界

GitHubはActionsを統合プラットフォームの主要な利点として宣伝している。このサービスは、ローカルハードウェアの管理なしにシンプルなスケーリングを約束する。当初の価値提案は、高速でオンデマンドの実行を提供しつつ、専用ビルドサーバーの必要性を排除することにあった。

しかし最近の調整はミスマッチを浮き彫りにした。弾力的な価格設定は、ポケットマネーで支払う人々よりも安定した資金を持つチームに有利に働く。週を通じて安定したコミットアクティビティを持つプロジェクトはコストが予測しやすい一方で、issueの急増に対応するオープンソースプロジェクトに多い突発的なワークロードは、より高いペナルティを被るようになった。

批評家たちは、このモデルが大量顧客を優遇し、断続的な利用を罰していると主張する。無料枠の枯渇がより早く起こり、軽度のユーザーでも有料プランへの移行を促していると指摘する。支持者たちは、セルフホスト型の代替手段にはセキュリティパッチ適用、ランナーの更新、共有ハードウェア上でのnoisy-neighbor干渉のリスクなど、独自のメンテナンスオーバーヘッドが伴うと指摘する。緊張の中心は、インフラ成長のコストを誰が負担するかという点にある。GitHubは拡張されたランナーオプションとストレージを挙げている。開発者たちは、基本的な利用が明らかに高くなったと反論する。この摩擦は、初期の寛大なティアがユーザーの習慣がサービスに依存するようになった後に引き締められるという、以前のプラットフォームシフトを想起させる。

移行オプションへの注目が再び高まる

一部のチームは代替のCIプロバイダーのテストを開始しました。人気の選択肢にはGitLab CI、CircleCIBuildkite、およびセルフマネージドのJenkinsインスタンスが含まれます。各オプションは、同時実行制限、料金の粒度、GitHubリポジトリとの統合深度において異なるトレードオフをもたらします。

他のチームは以前に廃止したローカルランナーを復活させました。セルフホスト型セットアップには継続的なメンテナンスとセキュリティパッチが必要です。また、GitHubの依存関係キャッシュや事前構築済みアクションのマーケットプレイスなど、一部のホスト型利便機能へのアクセスも失われます。移行したチームは、GitHub固有のコンテキストやシークレット管理に依存していたワークフローの書き換えにかかる時間的コストをしばしば文書化しています。

移行の決定はプロジェクトの規模と運用作業への許容度に依存します。経験豊富な開発者の何名かが、3ヶ月間のコストモデルスプレッドシートやステップバイステップのランナープロビジョニングスクリプトを含む切り替えプロセスを公開投稿で文書化しています。この傾向は、最大規模ではなく予測可能な費用を求める広範な動きを示しています。

Technical Limitations of Self-Hosted Runners

セルフホスト型ランナーは分単位の課金を削減しますが、新たな運用面を導入します。管理者は、GitHubが提供する管理された分離なしに、オペレーティングシステムの更新、ランナーバージョンのアップグレード、ネットワーク出力ルール、シークレットのローテーションを処理しなければなりません。1台の侵害されたランナーがリポジトリのシークレットを露出させたり、適切に分離されていない場合にサプライチェーン攻撃の経路となったりする可能性があります。

ハードウェアの制約も重要です。クラウドランナーは自動的にスケールしますが、固定のセルフホスト型プールではピーク時にジョブがキューイングされ、開発者が当初求めていた速度上の利点が失われる場合があります。スポットインスタンスや安価なVPSフリートを試した組織は、ランナーの可用性やジョブ再試行に関する追加の複雑さを報告しています。

Practical Implications for Open-Source Projects

料金変更は個々の開発者以上に影響します。ボランティアが資金提供するGitHubアカウントに依存するオープンソースプロジェクトは、困難なガバナンス上の決定に直面しています。一部のメンテナーはCI費用に明確に充てるためのスポンサーシップティアを追加し始めています。他のプロジェクトでは、スポンサーが使用量を負担しない限り大規模な自動テストマトリックスを推奨しない貢献ガイドラインを導入しています。

下流への影響には、プルリクエストへのフィードバックの遅延や、一般的でないプラットフォームでのテストカバレッジの低下が含まれます。以前は即時のCI検証を享受していた貢献者は、より長い待機時間やジョブの完全なスキップに遭遇する可能性があります。この動態は、十分な資金のあるプロジェクトと最小限のリソースで運営されるプロジェクトの間の格差を拡大するリスクがあります。

Limitations and Long-Term Risks

単一ベンダーの料金推移に依存することはリスクを伴います。GitHubが小規模アカウント向けに的を絞った割引を導入したとしても、将来の調整が再び同じ使用パターンを標的とする可能性があります。セルフホスト型ソリューションはコストを排除するのではなく移行させるものです。組織は従量制の分数ではなく、ハードウェア、電力、エンジニアリング時間に予算を割り当てる必要があります。

もう一つのリスクはツールのロックインにあります。GitHub Actionsの構文やマーケットプレイスアクションに対して書かれたワークフローは、別のプラットフォームへ移行する際に非自明な書き換えを必要とします。現在のホスト型機能に過度に最適化したチームは、後で substantial な移行摩擦に直面する可能性があります。

開発者コミュニティの反応と組織的な抵抗

反発は個別の苦情を超えて、コミュニティによる協調的な取り組みへと広がった。メンテナーは変更前後の正確なコスト表を記録した共有リポジトリを作成し、いくつかのオープンソース財団は非商用プロジェクト向けにより明確な価格帯を求める共同書簡の起草を開始した。

一部のプロジェクトでは、ホスト型ランナー上で最も重要なジョブのみを維持し、それ以外をすべてオフロードするハイブリッドモデルを試みた。他のプロジェクトでは、再利用可能なワークフローや複合アクションをより積極的に活用し、個々のジョブが消費する分数を全体的に削減する方法を模索した。これらの回避策は創造的ではあったものの、シンプルさを犠牲にしてコスト管理を実現することが多く、新たな障害点を生むことになった。

代替CI/CDプラットフォームとの比較

GitLab CI はパブリックリポジトリ向けにより generous な無料枠を提供し、ジョブのタイムアウトを細かく制御できるため、無駄な分数の削減につながる。CircleCI はクレジットベースのプランに明示的な月間無料枠を設けており、多くのチームが予測しやすいと評価している。Buildkite はセルフホストエージェントとホスト型コントロールプレーンの組み合わせを重視しており、完全なクラウド課金にさらされずに管理されたオーケストレーションを求める組織に適している。

Jenkins をセルフマネージドインフラで運用することは、最大限のカスタマイズを必要とするプロジェクトで依然として人気がある。しかし、どの代替手段も統合に伴うオーバーヘッドが発生する。GitHub エコシステムに深く組み込まれたリポジトリの場合、ワークフローの移行にはアクション参照の書き換え、シークレットストアの再設定、以前は既存のマーケットプレイス統合を再構築する必要がある。

依然として有効なコスト最適化戦略

開発者たちは、完全な移行をせずに影響を軽減するための実践的な戦術をいくつか提示している。キャッシュ戦略は、actions/cache を明示的なキーの階層構造で使用することで、より精密に調整可能になり、不必要な再ダウンロードを防げる。大規模なマトリックスをより小さく、条件付きでトリガーされるジョブに分割することで、同時実行の乗数を削減できる。夜間の依存関係更新ジョブは、以前の実行から成果物を再利用する単一のスケジュール済みワークフローに統合できる。

一部のチームは、高コストのオペレーティングシステムに手動承認ゲートを付けたり、リリースブランチのみに制限したりするようになった。また、リポジトリルールセットを通じて最小ランナーサイズを強制し、軽量ジョブが誤って oversized インスタンスを消費しないようにする動きもある。

影響を受けたエコシステムからのケーススタディ

Python および JavaScript ツール関連プロジェクトは、広範なマトリックステスト要件のため、最も深刻な打撃を受けたカテゴリの 2 つである。ある人気の Python リンターは、コストがプロジェクトの控えめなスポンサー収入を超えたため、テスト対象を 3 つのオペレーティングシステム上の 7 つの Python バージョンから、Linux のみの 5 バージョンに削減した。JavaScript エコシステムでも同様の圧縮が見られ、いくつかのフレームワークリポジトリが Windows ジョブを完全に削除した。

今後の注目点

GitHubの四半期利用レポートを監視して、アクティブなリポジトリの変化を追跡する。小規模プロジェクトの参加減少は、価格圧力の主張を強めるだろう。競合の無料ティア拡大の発表を追跡する。競合サービスからの重大な変更は移行数を加速させる可能性がある。オープンソースプロジェクトが共有するセルフホストランナーの採用指標を監視する。ローカル実行に関するドキュメントとツールの増加は、ホスト型Actionsからの持続的な移行を示すだろう。

これら3つのシグナルは、現在の反発が短期的な反応なのか、CIの嗜好における永続的な変化なのかを示すだろう。

FAQ

最近のGitHub Actionsの価格変更を引き起こしたものは何ですか?

GitHubは標準および大規模ランナーの分単位料金を調整し、同時実行ルールと無料ティアの閾値を厳しくしたため、並列ジョブやスケジュールされたワークフローを持つプロジェクトの請求額が上昇した。

インディー開発者はCIコストの上昇にどのように対応しているか?

多くの開発者がマトリックス次元を削減し、手動承認ゲートを追加し、条件付きトリガーに切り替え、または一部のワークロードをセルフホストランナーやGitLab CI、CircleCIなどの代替プラットフォームに移行している。

新しい価格設定はすべてのリポジトリタイプに等しく影響するか?

いいえ。ボランティア資金でバースト的なワークロードを抱える公開オープンソースプロジェクトが最も影響を受けやすい一方で、予測可能な利用量を持つ十分な資金のある商用チームは既存の予算で増加分を吸収する。

セルフホストランナーは完全な解決策か?

分単位課金を排除できるが、継続的なメンテナンス、セキュリティ更新、インフラ管理が必要であり、多くのソロメンテナーはそれを確実に扱う時間や専門知識を欠いている。

急激に変化する技術関連の話題を追うチームは、ソースノート、ミーティングの文脈、フォローアップ質問をまとめて保管する場所を必要とすることが多い。軽量なAIナレッジベースを使えば、ニュースサイクルが変わった後でもそれらの要素を簡単に振り返ることができる。

 
 

無料で始めましょう

ローカルファーストのパーソナル知識管理付きAIアシスタント

より良いAI体験のために、

remio は現在、 Windows 10+ (x64)M-Chip Mac のみをサポートしています。

脳内に検索バーを追加

ただremioに尋ねるだけ

すべてを思い出す

何も整理しない

bottom of page