
はじめに
こんにちは!レバレジーズ株式会社テクノロジー戦略室SREチームの竹村です。
テクノロジー戦略室のSREチームでは、全社のエンジニアの開発生産性の向上やシステムの信頼性向上に取り組んでいます。
エンジニアの生産性向上や工数削減を叶えるため、2024年にレバレジーズの開発組織全体で、GitHub Enterprise Cloud(GHEC) への移行を行いました。
今回は、複数の施策を積み上げることで、コスト増を上回るメリットを示し、導入に至った経緯を赤裸々に皆さんにお届けできればと思います!GHEC以外のサービス導入検討の参考にもなると思うので、何か新しいサービスやプランアップを検討されているかたもご一読いただけると幸いです。
苦労したポイント!
GHEC への移行・導入にあたっての一番苦労したポイントはやはり、大幅なコスト増をまわりに理解してもらうことでした。多くの高度な機能が利用可能になる点は魅力的でしたが、コストが約5倍に増加するため、コストに見合う価値があるかを理解してもらう必要がありました。
当初注目していたいくつかの機能だけでは費用対効果を説明できず、GHECで利用可能な機能を網羅的に調査し、それぞれがもたらす具体的なメリットと効果を洗い出すことにしました。結果的に20項目以上のメリットを特定し、可能な範囲で効果を試算・積み上げることで、総合的に費用対効果がプラスになることを示し、導入することができました。下記より詳細に記していきます!
GitHub Enterprise Cloud(GHEC)の紹介
そもそもGitHub Enterprise Cloud(GHEC)とは
GitHub Enterprise Cloud(GHEC)は、GitHubが提供するエンタープライズ向けのクラウドベースのサービスで、企業や大規模なチームがソフトウェア開発を効率的かつ安全に行うための高度な機能を備えています。
プランによる大まかな機能違いについては、GitHubプラン紹介ページで確認できます。
導入背景
レバレジーズの事業運営とコスト意識
レバレジーズでは多くの事業を展開しており、事業部ごとに独立してP/L(損益計算書)を管理し、運営しています。そのため、各事業部やチームでは、日々のコストに対して比較的高い意識を持つことが多く、ツール導入や運用コストについても慎重に検討する傾向があります。GitHub の利用プランがこれまで Free プランや Team プラン混在だったのも、こうした背景のひとつでした。
GitHub利用の経緯と課題
背景
レバレジーズでは、もともと事業部やチームごとに GitHub の Organization を作って利用しており、Free プランや Team プランが混在していました。これは先ほどのコストに対する考え方もあり、コストを考慮しながら必要な機能に応じてプランを選んでいた、という経緯があります。
しかし、会社全体の成長や開発の規模が大きくなるにつれて、セキュリティルールの統一、ライセンス管理の効率化、そしてチーム同士がもっと連携しやすくする必要性などを感じるようになりました。そこで、会社全体での開発ツール基盤を見直すために、GHEC の導入を検討し、進めていくことになりました。
課題(実質的なコストとなっていた点)
非効率な協業・隠れた運用コスト・煩雑なアカウント管理・セキュリティリスク・ガバナンスの欠如 などの課題があり、単なる不便さに留まらず「実質的な工数、機会損失、セキュリティリスク」といった形で、無視できないコストとなっていました。GHEC へ移行し、運用体制を整備することで、これらの「見えにくいコスト」を解消できる可能性が高いと判断しました。
各課題とその詳細は下記の通りです!
- 非効率な協業
- 他チームに参画する際、Organization が異なることによる権限管理やライセンス費用発生の問題で、スムーズな支援や共同作業に入れないことがありました。(機会損失コスト)
- 隠れた運用コスト
- コストを抑えるために Free プランを利用しているチームでは、本来 Team プラン以上で容易に実現できる管理・セキュリティ機能を、不足分を補うために自前でツールを作成・運用するなど、見えにくい人件費や工数が発生していました。(管理・開発工数コスト)
- 煩雑なアカウント管理
- 開発メンバーの人数の増減が毎月発生する中で、手動でのアカウント棚卸しや権限付与・削除に管理者の工数が割かれがちでした。(管理工数コスト)
- セキュリティリスク
- 手動管理に依存していたため、GitHub アカウントの削除漏れなどが発生するリスクを抱えていました。(インシデントリスクコスト)
- ガバナンスの欠如
- 各 Organization が個別のポリシーで運用されていたため、全社的な GitHub 利用のガバナンスを効かせることが難しく、標準化が進まない、統制が取れない状態でした。(非効率・統制コスト)
導入に至るまでのプロセス
レバレジーズでは、当時40近くの Organization が存在し、それぞれ別々のポリシーで運用されていました。GHEC 移行は、単なるツール変更ではなく、これらの運用プロセスの標準化や変更を伴うため、開発者や管理者の皆さんにも協力をお願いする必要がありました。そのプロセスについて、少し詳しくお話しします。
検討フェーズ - コストに見合う価値はあるのか?(苦労ポイント!!!)
GHEC 導入を考える上で、特に気になったのはコスト面でした。それまでの Free/Team プラン混在状態と比べると、GHEC では 1ライセンスあたりの費用が、単純に計算しても約5倍になります。先ほどお話ししたように、コストを意識する文化の中では、このコスト増は、導入を考える上で乗り越えるべき大きな壁でした。
そこで、この「目に見えるコスト増」に対して、導入することでどんなメリットがあるのか、特に「見えにくいコスト」がどれだけ減らせるのか、費用対効果を詳しく調査し、試算を行いました。
はじめに使いたいと考えた機能としては、以下の2つでした。
- GitHub Environments(GitHub Actions の実行承認機能など)
- Rulesets(ブランチ保護ルールの一律適用機能など)
しかしながら、これらの機能だけでは、ライセンス増加に見合う効果が得られないため、GHEC でどのような機能が使えるようになるのか調査して、それぞれどういったメリットが得られそうか「開発メンバー」「開発リーダー(管理者)」「システム管理者」のおおよその単価から試算していきました!また、GHEC で一元管理できる点についても管理工数の面からメリットとして試算しました!
検討時に想定した主な機能とメリット
- SAML
- 機能概要
- SAML を利用した Single Sign On(SSO)が利用可能
- Organization 単位だけの設定であれば、System for Cross-domain Identity Management(SCIM)によるプロビジョニング可能
- 想定したメリット
- 退職など不要になったアカウントの権限をSAML Identity Provider(IdP)側で担保できる
- 機能概要
- GitHub Enterprise Cloud - Managed Users(GHEC EMU)
- 機能概要
- 企業個別のクローズドな環境
- SCIM による アカウントのプロビジョニングが可能
- 想定したメリット
- ユーザー管理の徹底やパブリックに秘密鍵を公開することが防止できる
- ※ 後の検証によりこの機能は利用しません
- 機能概要
- Internal リポジトリ
- 機能概要
- Enterprise 内の Organization に共有される Public と Private の間の権限リポジトリ
- 想定したメリット
- 社内向けのツール作成や企業内のソースコードを参照
- 機能概要
- Environments
- 機能概要
- 環境を作成して、デプロイの保護ルールが設定できる
- 想定したメリット
- デプロイ対象ブランチの制限による誤ったデプロイが防止できる
- Actions でのデプロイ時に承認フローを挟むことで安全なデプロイ作業ができる
- 環境固有のシークレットを設定でき柔軟な Actions ワークフローを組むことができる
- 機能概要
- Rulesets
- 機能概要
- Repository や Organization レベル(検討時)でブランチ・タグに対する操作ルールを一元的に定義・適用できる
- 想定したメリット
- 個々のリポジトリで設定していたブランチ保護ルールが不要になる
- 機能概要
- 監査ログ
- 機能概要
- 監査ログの確認、API が利用可能、外部ストレージへのエクスポートが可能
- 想定したメリット
- インシデント時の調査用記録保管
- 機能概要
- Insights(Teamプラン以上からも可)
- 機能概要
- Actions のワークフロー/Job 別の実行時間や成功/失敗確率の確認が可能
- 依存関係の状態と脆弱性レベルの確認が可能(dependabot 設定が必要)
- 想定したメリット
- Actions の実行時間が長い Job が簡単に特定できる
- 依存状態と Critical な脆弱性の依存を簡単に特定できる
- 機能概要
- GitHub Pages Private
- 機能概要
- Private な GitHub Pages を作成できる
- 想定したメリット
- 公開範囲を限定したいドキュメントなどをリポジトリと一元管理できる
- 機能概要
- Actions の無料枠
- 機能概要
- 無料枠の拡張
- 想定したメリット
- 無料枠拡張分の従量課金料金の減少
- 機能概要
機能以外のメリット(一元管理など)
- Organization の一元管理
- 他チームへのヘルプ時参画時に重複してライセンス費用が発生しないことによるコミュニケーションや時間、コストが削減できる
- Free プラン利用をしているチームが Team プラン以上で利用できる機能を使えることで工数削減やセキュリティリスク低減
- アカウント、支払の一元管理
- 各 Organization 管理者で行っていたアカウントの権限作業を一元管理することによる工数削減ができる
検討時に見送った機能と理由
- Advanced Security(GHAS)(Teamプラン以上から可)
- 機能概要
- シフトレフトセキュリティな機能が使える
- コードスキャン、シークレットスキャン、依存関係管理
- シフトレフトセキュリティな機能が使える
- 見送った理由
- リポジトリへのアクティブなコミッターに対してへの従量課金であり、費用予測がつかないこと、また、この機能で得られる効果が不透明であった
- GHEC 導入と同時に検証する工数が取れなかった
- 機能概要
これらの面でメリットが得られそうだとわかり、可能な範囲で定量化しようと試みました。特に定量化しやすい管理工数削減に焦点を当て、それぞれのおおよその発生頻度や想定される作業時間から、年間の見込み工数を算出し、GHEC 導入によってこれらの作業がどれだけ自動化・効率化され、工数が削減できるかを試算しました。(もちろん、これはあくまで「概算」であり、全ての効果を事前に正確に数値化することは難しいですが、判断材料の一つとしました)

こうした機能面からの定性的なメリット評価と、工数削減を中心とした定量的な効果試算を総合的に検討した結果、ライセンス費用の増加を考慮しても、それを上回る価値が期待できると判断し、次の検証フェーズに進むことを決定しました。
検証フェーズ − 各機能は組織の運用プロセスに沿うか
メリットを享受するために利用できる機能の検証と現在の環境からの移行にかかる影響・コストの検証として、以下の項目に絞って検証を進めました。
検証には、Enterprise プランの無料期間1ヶ月を利用して実施するため事前に項目を整理&準備を行うとともに、移行時に気になる点があったため GitHub 社へ依頼していくつか機能を開放してもらい検証に取り組みました。
検証内容
GitHub Enterprise Cloud - Enterprise Managed Users(GHEC - EMU)
- 概要
- SCIMが利用可能なサービス
- 組織の環境に閉じるためより安全な運用が可能
- ただし、完全にクローズドなため通常の環境からの完全なリポジトリ移行はできず、コピーに近い形になる。
- GHEC - EMUについて
- 検証事項と結果
- Organization 移行時の挙動
→ 上記にも書きましたが、EMU の環境が完全にクローズドな環境のため完全なリポジトリ移行ができず、得たいメリットと比較して、開発者の移行コストが大きいことがわかりました。- GitHub Enterprise Importer というツールを使って移行を行うことになりますが、移行後に欠落するデータが多くレバレジーズでは採用できませんでした。
- 移行されないデータ
- ユーザーの作成削除の挙動
→ 上記の検証結果からこちらの検証は不要なためスキップしました。
- Organization 移行時の挙動
- 概要
SAML SSO ログイン
- 概要
- Enterprise での接続か Organization での接続が選択できる
- Organization での接続だとIdP側でユーザーの管理をすることも可能(SCIMを使って)
- Enterprise での接続について
- Organization での接続について
- 検証事項と結果
- GHEC での SAML 挙動の確認
→ 設定可能なIdP環境が限られており、当初利用している Google Workspace か IDaaS による設定を想定していましたが、Microsoft Entra ID による設定で行うこととしました。
幸運にも、Entra ID の外部 ID(無料利用可能)でも設定が行えたため追加の費用が発生せずスムーズに進めることができました。- SAML 無しから有りにしたときの挙動の確認(移行による開発者への手順書作成も兼ねてどういった遷移が行われるか)
→ 検証時には特に問題が発生しそうな箇所はなく手順書作成のみとなりました。
※ 移行時にシステム上の問題で、少しだけ問題が発生しました。
- SAML 無しから有りにしたときの挙動の確認(移行による開発者への手順書作成も兼ねてどういった遷移が行われるか)
- GHEC で SAML 設定を行って、Organization で SCIM 設定可能かどうかの確認
→ 問題はありませんでした。
- GHEC での SAML 挙動の確認
- 概要
Rulesets
- 概要
- ブランチ保護ルールを全体に適用できるようにしたもの(個人的な理解)
- ブランチやタグなど柔軟にブランチ保護ルールで設定する項目と同等のものが設定可能
- Enterprise プランからのみ利用可能
- ブランチ保護ルールについて
- ルールセットについて
- 検証事項と結果
- メインブランチへの直 Push の禁止 や マージに1人以上の Approve・Actions によるCIテスト通過が必要なこと を設定して意図したとおりに動作するか
→ 基本的には意図したとおりに設定が行えました。
既存のブランチ保護ルールで CI テスト通過を必須にしていたものと同様の設定をルールセットで試みたところ、常に NG 扱いになってしまったため、ルールセットでの一律適用は見送りました。 - Enterprise 全体で設定を反映・強制可能かどうか
→ 検証/導入時(2024年6月頃)には、Organization 単位でしか設定できませんでしたが、その後 Enterprise 全体で設定を反映・強制できる機能が追加されました(2025年4月現在)。当時は、どのように一律な設定を行うか運用面でのカバーが必要でした。
また、チームによって運用が異なっていたため強制有効化したときの影響範囲が大きいことがわかりました。
- メインブランチへの直 Push の禁止 や マージに1人以上の Approve・Actions によるCIテスト通過が必要なこと を設定して意図したとおりに動作するか
- 概要
システムアカウント・Personal Access Token(PAT) の排除
- 概要
- システム上で動作させるためのトークン発行先として、一部のサービスではシステムアカウントを作成し、そのアカウントで PAT を発行し利用していました。
- 主な PAT の利用先
- Terraform モジュール - SRE チームで作成している社内向けのモジュール
- 社内向け Packages - 同上の社内向け Package
- 外部ツールとの認証 - CircleCI など
- システム上で動作させるためのトークン発行先として、一部のサービスではシステムアカウントを作成し、そのアカウントで PAT を発行し利用していました。
- 検証事項と結果
- PAT による Organization を跨ぐ認証処理から GitHub Apps を利用したものへの変更
→ 従量課金サービスの開放は、検証環境段階では不可能ということで完全な検証はできませんでした。
疑似的に再現するため、検証用の Organization を別途作成し、GitHub Apps で問題なく動くことを確認しました。- Terraform モジュールは問題なく動作させることが可能でしたが、一部外部ツールでは GitHub Apps による連携ができないことや GitHub Packages が仕様上 Apps での利用ができないことがあり、PAT の完全排除とはなりませんでした。
ただし、いくつかのシステムアカウントでは問題なく Apps への移行ができたため、完了次第アカウントの削除対応が可能なことがわかりました。
- Terraform モジュールは問題なく動作させることが可能でしたが、一部外部ツールでは GitHub Apps による連携ができないことや GitHub Packages が仕様上 Apps での利用ができないことがあり、PAT の完全排除とはなりませんでした。
- PAT による Organization を跨ぐ認証処理から GitHub Apps を利用したものへの変更
- 概要
導入・切り替えフェーズ - いよいよ本番移行!段階的アプローチと予期せぬトラブル
Enterprise への切り替えは、当面のゴールとして、大きく2つのステップに分けて切り替えを行いました。
ステップ1:Organization の Enterprise への参加
検証項目で整理したドキュメントや切り替えの手順を管理者や開発者に周知して、1ヶ月程度の期間で段階的に切り替えを行いました。
基本的な動作に影響が無いことは確認が取れていましたが、網羅できていない項目などがないか段階的に切り替えを行うことで確認と対応ができるようにこの方法で切り替えを進めました。
ここは、個人的に周知の方法や事前準備など不慣れなこともあり多少の混乱を招いてしまいましたが、段階的に進めたことで開発自体の大きなインシデントなどは発生させずに進めることができました。
ステップ2:SAML SSO の Enterprise レベルでの適用
全 Organization の参加後、Enterprise 全体で SAML SSO を有効化しました。この SAML の適用と GitHub の連携では、2つ問題が発生しました。
① Entra ID で設定している特殊な漢字の名前が GitHub 側で利用できず SAML SSO ログインができない
② SAML SSO を設定後、既存の連携システムでエラーが発生
それぞれ以下のように対応しました。
① Entra ID と GitHub の情報連携において、Entra ID の表示名も含めて連携しており、この項目がオプションであったため連携項目から除外することで解決しました。
② SAML SSO 設定後の認証された OAuth Apps との認証情報が利用できなくなっており、一度認証を解除して再設定を行うことで解決できました。また、どのようなアプリが連携されているのか把握できていなかったため、追加で設定解除の手順を作成して展開することで解決しました。
※ 連携アプリの一覧は、https://github.com/settings/applications で確認できます。
運用安定化フェーズ - 運用ルールの整備と自動化へ向けて
GHEC 環境のライセンスは前払いのため、未使用ライセンスの費用発生を防ぐことが重要でした。そこで、まずは Organization の Enterprise への参加を優先し、全体ルールの適用などの細かな設定は後回しにしました。安定化フェーズでは、これらの後回しにした設定の反映や、アカウント発行・削除などを自動化するフローの整備を進めました。(これにより、ライセンス費用の最適化も図っています。なお、ライセンス体系も変化しており、移行当時は年間契約のみでしたが、現在は従量課金プランも提供されているようです)
利用側から見て一部不明瞭な点もあったため、質問対応やドキュメント修正などを随時行い、大きな問題を発生させることなく現在まで運用を進められています。また、運用を巻き取れたことで楽になったといった声をもらうこともあり、進めてきて良かったと感じています。
まとめ
結果的に当初予定していたいくつかの項目については完全な適用はできませんでしたが、ルールの徹底や運用の自動化によってカバーできる内容であったため、GitHub Enterprise Cloud(GHEC)への移行で得たいメリットは享受できたと考えています。 いくつか完全な自動化ができていないものがあるので、今後はそれらの自動化や運用フローを整備したり、ブランチの保護ルールを徹底していくことで、生産性向上やコスト削減、セキュリティの担保をより進めていきたいと思います。
弊社にご興味のある方へ
レバレジーズでは、一緒に働く仲間を募集しています! 少しでも興味を持っていただけたら、ぜひカジュアル面談にご応募ください! hrmos.co

















































