より大きなランナー (larger runner)の概要
GitHub Team プランと GitHub Enterprise Cloud プランのお客様は、標準の GitHub ホステッド ランナーよりも多くのリソースを持つさまざまなマネージド仮想マシンから選択できます。 これらのマシンは "より大きなランナー" と呼ばれます。 これらには、次の高度な機能が用意されています。
- 追加の RAM、CPU、ディスク領域
- 静的 IP アドレス
- Azure プライベート ネットワーク
- ランナーをグループ化する機能
- 同時実行ワークフローをサポートするための自動スケール
- GPU 搭載ランナーと ARM 搭載ランナー
これらの より大きなランナー (larger runner) は、GitHub によってホストされ、ランナー アプリケーションとその他のツールをプレインストールしています。
GitHub は、macOS、Ubuntu、または Windows オペレーティング システムで より大きなランナー (larger runner) を提供し、使用するオペレーティング システムに応じて異なる機能とサイズを使用できます。 詳細については、「より大きなランナー (larger runner) の追加機能」を参照してください。
Ubuntu と Windows の より大きなランナー (larger runner) について
Ubuntu または Windows オペレーティング システムを使用する より大きなランナー は、組織または企業で構成されます。 より大きなランナー を追加する場合は、使用可能なハードウェア仕様とオペレーティング システム イメージから選んだマシンの種類を定義します。 GitHub では、定義した自動スケールの制限に基づき、Organization のジョブの需要に合わせてスケールアップおよびスケールダウンする、このランナーの複数のインスタンスが作成されます。 詳しくは、「より大きなランナーを管理する」を参照してください。
Ubuntu と Windows の より大きなランナー (larger runner) は、自動スケール機能と、ランナーに特定の範囲から静的 IP アドレスを割り当てる機能を提供します。 また、ランナー グループを使用して管理することもできます。これにより、より大きなランナー (larger runner) へのアクセスを制御できます。 詳細については、「より大きなランナー (larger runner) の追加機能」を参照してください。
macOS の より大きなランナー (larger runner) について
macOS オペレーティング システムを使用する より大きなランナーs は、YAML ワークフロー ラベルを目的のランナー イメージに更新することによって使用されます。 macOS の より大きなランナー でワークフローを実行するには、runs-on
キーを更新して、GitHub で定義された macOS より大きなランナー ラベルのうちの一つを使用します。 追加の構成は不要です。 詳しくは、「より大きなランナーでジョブを実行する」を参照してください。
macOS の より大きなランナー (larger runner) では、次のマシン サイズを使用できます。
ランナー サイズ | Architecture | プロセッサ (CPU) | メモリ(RAM) | ストレージ (SSD) | ワークフロー ラベル |
---|---|---|---|---|---|
Large | Intel | 12 | 30 GB | 14 GB | macos-latest-large 、macos-12-large 、macos-13-large [最新]、macos-14-large [ベータ] |
XLarge | arm64 (M1) | 6 (+ 8 GPU ハードウェア アクセラレータ) | 14 GB | 14 GB | macos-latest-xlarge 、 macos-13-xlarge [最新]、macos-14-xlarge [ベータ] |
macOS より大きなランナー (larger runner) での制限
- GitHub によって提供されるすべてのアクションは、arm64 GitHub ホストランナーと互換性があります。 ただし、コミュニティ アクションは arm64 と互換性がない場合があり、実行時に手動でインストールする必要があります。
- Apple の仮想化フレームワークの制限により、入れ子になった仮想化と Metal Performance Shaders (MPS) はサポートされていません。
- 現在、macOS の大規模ランナーでは、Azure プライベート ネットワークや静的 IP の割り当てなどのネットワーク機能は使用できません。
- Apple ではこの機能がサポートされていないため、arm64 macOS ランナーには、静的 UUID/UDID が割り当てされていません。 ただし、Intel MacOS ランナーには、静的 UDID、特に
4203018E-580F-C1B5-9525-B745CECA79EB
が割り当てられます。 ビルドをテストする予定の同じホストでビルドして署名する場合は、開発プロビジョニング プロファイルを使用して署名できます。 静的 UDID が必要な場合は、Intel ランナーを使用して、その UDID を Apple Developer アカウントに追加できます。
より大きなランナー (larger runner) のその他の機能
標準の GitHub ホストランナーと比較すると、より大きなランナー (larger runner) には追加機能があり、その可用性は より大きなランナー のオペレーティング システムによって異なります。
Ubuntu | Windows | macOS | |
---|---|---|---|
静的 IP アドレス | |||
Azure プライベート ネットワーク | |||
自動スケール | |||
ランナー グループ |
これらの機能は、次の方法で CI/CD パイプラインを強化できます。
- より大きなランナー (larger runner) には特定の範囲からの静的 IP アドレスを割り当てることにより、この範囲を使ってファイアウォールの許可リストを構成できます。 詳細については、「より大きなランナー (larger runner) のネットワーク」を参照してください。
- 自動スケーリングを使用すると、より大きなランナー (larger runner) をユーザーが設定した上限までスケールアップできるため、複数のワークフローを同時に実行できます。 詳しい情報については「より大きなランナー (larger runner)の自動スケーリング」を参照してください。
- ランナー グループを使用すると、組織、リポジトリ、ワークフローのより大きなランナー (larger runner) へのアクセスを制御できます。 詳しくは、「より大きなランナーへのアクセスの制御」を参照してください。
ランナー イメージ
より大きなランナー は仮想マシン (VM) 上で実行され、GitHub は VM 作成プロセス中にこのマシンにバーチャル ハード ディスク (VHD) をインストールします。 ランナーにインストールするさまざまな VM イメージから選択できます。
GitHub 所有のイメージ: これらのイメージは GitHub によってメンテナンスされ、Linux x64、Windows x64、および macOS (x64 および arm) ランナーで使用できます。 これらのイメージの詳細と、各ランナー オペレーティング システムに含まれるツールの完全なリストについては、GitHub Actions ランナー イメージ リポジトリを参照してください。
パートナー イメージ: パートナー イメージは GitHub によって管理されず、Azure Marketplace からプルされます。 Windows 11 デスクトップ イメージの詳細については、「Microsoft Windows 11 Desktop」を参照してください。 GPU ランナー互換イメージの詳細については、「NVIDIA GPU 最適化 VMI」と「Data Science Virtual Machine - Windows 2019」を参照してください。 ARM 搭載ランナーのイメージの詳細については、actions/partner-runner-images
リポジトリを参照してください。 これは、サード パーティのイメージに関するフィードバックを提供したり、問題を報告したりする場所でもあります。
課金について
注: より大きなランナー は、プライベート リポジトリ上で含まれる分を使用できません。 プライベート リポジトリとパブリックのリポジトリのいずれでも、より大きなランナー (larger runner) が使用されている場合、常に分単位の料金で課金されます。
標準の GitHub ホスト ランナーと比較すると、より大きなランナー (larger runner) は異なる方法で課金されます。 より大きなランナーには、ワークフローが実行された時間に対してのみ、分単位で課金されます。 ワークフローで使われていないより大きなランナーの作成に関連付けられたコストはありません。詳細については、「GitHub Actions の課金について」を参照してください。
より大きなランナー (larger runner) のマシン サイズ
より大きなランナー (larger runner) のためには、いくつかの仕様から選択できます。
一般的な より大きなランナー (larger runner) の仕様
注: arm64 ランナーは現在ベータ版で提供されており、変更される可能性があります。
CPU | メモリ(RAM) | ストレージ (SSD) | Architecture | オペレーティング システム (OS) |
---|---|---|---|---|
6 | 14 GB | 14 GB | arm64 | macOS |
12 | 30 GB | 14 GB | X64 | macOS |
2 | 8 GB | 75 GB | x64、arm64 | Ubuntu |
4 | 16 GB | 150 GB | x64、arm64 | Ubuntu、Windows |
8 | 32 GB | 300 GB | x64、arm64 | Ubuntu、Windows |
16 | 64 GB | 600 GB | x64、arm64 | Ubuntu、Windows |
32 | 128 GB | 1200 GB | x64、arm64 | Ubuntu、Windows |
64 | 208 GB | 2040 GB | arm64 | Ubuntu、Windows |
64 | 256 GB | 2040 GB | X64 | Ubuntu、Windows |
Note
4-vCPU Windows ランナーは、Windows 11 デスクトップ イメージでのみ機能します。
GPU の仕様 より大きなランナー (larger runner)
CPU | GPU | GPU カード | メモリ(RAM) | GPU メモリ (VRAM) | ストレージ (SSD) | オペレーティング システム (OS) |
---|---|---|---|---|---|---|
4 | 1 | Tesla T4 | 28 GB | 16 GB | 176 GB | Ubuntu、Windows |
ランナー グループについて
注: ランナー グループに割り当てることができるのは、Linux または Windows オペレーティング システムでは より大きなランナー (larger runner) のみです。
管理者はランナー グループを使って、組織レベルとエンタープライズ レベルでランナーへのアクセスを制御できます。 ランナー グループを使うと、一連のランナーを収集し、それらのセキュリティ境界を作成できます。 その後、それらのマシン セットでジョブを実行できる Organization またはリポジトリを決定できます。 より大きなランナーの展開プロセス中に、ランナーを既存のグループに追加することも、デフォルトのグループに参加させることもできます。 グループは、「より大きなランナーへのアクセスの制御」の手順に従って作ることができます。
より大きなランナー (larger runner) のアーキテクチャの概要
注: このアーキテクチャ図は、Linux または Windows オペレーティング システムを使用する より大きなランナー (larger runner) にのみ適用されます。
より大きなランナーは組織レベルで管理され、ランナーの複数のインスタンスを含むことができるグループに配置されます。 また、Enterprise レベルで作成し、階層内の Organization と共有することもできます。 グループを作成したら、ランナーをグループに追加し、ワークフローを更新して、より大きなランナーに割り当てられたグループ名またはラベルをターゲットにすることができます。 また、処理のためにグループにジョブを送信できるリポジトリも制御できます。 グループについて詳しくは、「より大きなランナーへのアクセスの制御」をご覧ください。
次の図では、ubuntu-20.04-16core
という名前のホストされたランナーのクラスが、カスタマイズされたハードウェアとオペレーティング システムの構成で定義されています。
- このランナーのインスタンスは自動的に作成され、
grp-ubuntu-20.04-16core
というグループに追加されます。 - ランナーにはラベル
ubuntu-20.04-16core
が割り当てられています。 - ワークフロー ジョブは、
runs-on
キーのubuntu-20.04-16core
ラベルを使用して、ジョブの実行に必要なランナーの種類を示します。 - GitHub Actions は、ランナー グループをチェックして、リポジトリがランナーにジョブを送信する権限があるかどうかを確認します。
- このジョブは、
ubuntu-20.04-16core
ランナーの次に使用可能なインスタンスで実行されます。
より大きなランナー (larger runner) の自動スケーリング
注: 自動スケールは、Linux または Windows オペレーティング システムの より大きなランナー (larger runner) でのみ使用できます。
より大きなランナーはニーズに合わせて自動的にスケーリングできます。 処理対象のジョブが送信されるときに、指定した最大数のジョブを実行するようにマシンをプロビジョニングできます。 各マシンは一度に 1 つのジョブのみを処理するため、これらの設定によって、同時に実行できるジョブの数が効率的に決定されます。
ジョブの最大コンカレンシーを構成できます。これにより、このセットを使って実行できるジョブの最大並列数を設定して、コストを制御できます。 この値を大きくすると、並列処理によってワークフローがブロックされるのを回避できます。 制限の設定方法の詳細については、「より大きなランナーを管理する」を参照してください。 GitHub ホストランナーの最大自動スケーリング制限の詳細については、「使用制限、支払い、管理」を参照してください。
より大きなランナー (larger runner) のネットワーク
注:
- ランナーへの静的 IP アドレスの割り当ては、Linux または Windows オペレーティング システムでの より大きなランナー (larger runner) でのみ使用できます。
- GitHub でホストされたランナーのプライベート ネットワークでは、larger runner の静的 IP アドレスはサポートされていません。GitHub でホストされるランナーのプライベート ネットワークの詳細については、「企業内の GitHub ホストランナー向けの Azure プライベート ネットワークについて」を参照してください。
デフォルトでは、より大きなランナー (larger runner) は、ジョブの実行ごとに変更される動的 IP アドレスを受け取ります。 必要に応じて、GitHub Enterprise Cloudの顧客は、より大きなランナー (larger runner)を構成して、GitHubのIPアドレス・プールから静的IPアドレスを受け取ることができます。 詳しくは、「GitHubのIPアドレスについて」を参照してください。
有効にすると、より大きなランナーのインスタンスは、ランナーに固有の範囲からIP アドレスを受け取り、この範囲を使用してファイアウォール許可リストを構成できます。 すべての より大きなランナー (larger runner)。 詳しくは、「より大きなランナーを管理する」を参照してください。
静的IPアドレス範囲で10以上の大きなランナーを使用したい場合は、GitHub サポート ポータルまでご連絡ください。
注: ランナーが 30 日以上使用されていない場合、その IP アドレス範囲は自動的に削除され、回復することができません。