ランナー
GitHub Actions向けのヨーロッパのランナー
GitHub Actionsのジョブを、ヨーロッパの企業が運用するヨーロッパのベアメタルインフラ上のCRACIのランナーで実行できます。GitHubホステッドランナーの約2倍の速さで、すべてのビルドが取得したものの記録も残ります。GitHubは引き続きコントロールプレーンです。このページでは、それが正確に何を意味するのかを説明します。
更新日
ヨーロッパのランナーで変わること、変わらないこと
GitHub Actionsのパイプラインには複数の層があり、それぞれが別の場所に置かれることがあります。 CIランナーはそのうちの1つ、ジョブが実行されるマシンにすぎません。よくある3つの構成で、各層を誰がどこで運用しているかを示します。
| 層 | github.com上のGitHubホステッドランナー | EUデータレジデンシー付きのGitHub Enterprise Cloud | CRACIのランナー |
|---|---|---|---|
| リポジトリとソースコードの保存 | GitHub。github.comはデフォルトでデータを米国に保存 | GitHub(EUリージョン内) | 現在の構成と同じくGitHub。CRACIはコードをジョブの仮想マシン内で処理し、保存しない |
| オーケストレーション、ワークフローの実行、ログ、チェックのUI | GitHub | GitHub。ActionsのデータとログはEUリージョン内に保存 | 現在の構成と同じくGitHub |
| シークレットの保存 | GitHub | GitHub | GitHub。ジョブ開始時にCRACIのランナーへ渡される |
| ビルドの実行 | Microsoft Azure上のGitHubホステッドランナー(一部の標準LinuxジョブはAWS)。リージョンは非公表 | Azureプライベートネットワーキングを通じた、EUのAzureリージョン内のホステッドランナー | ヨーロッパのベアメタルインフラ上のCRACIのランナー |
| ビルドが取得したものの記録 | 記録されない | 記録されない | SBOMとネットワークトレース。CRACIが保持し、ヨーロッパでホスト |
actions/upload-artifactによるアーティファクト |
GitHub | GitHub。ActionsのデータはEUリージョン内に保存 | 現在の構成と同じくGitHub |
| 運用者 | Microsoft傘下のGitHub | Microsoft傘下のGitHub | コントロールプレーンはGitHub、ランナーはフィンランド企業のCRACI Corporation Oy |
簡単に言えば、CRACIでは、ビルド中にコードとシークレットに触れるコンピュートがヨーロッパで動作し、ヨーロッパの企業が運用します。ビルドが取り込んだすべてのパッケージの記録も同様です。コードの保持とジョブのオーケストレーションは引き続きGitHubが担います。CRACIが置き換えるのはランナーであり、GitHub Actionsではありません。
データレジデンシーはデジタル主権ではない
データレジデンシーは、データがどこで保存・処理されるかに関するものです。デジタル主権は、さらに2つの問いを加えます。誰がデータを管理しているのか、そしてその事業者にどの法律が適用されるのか(どの管轄が運用者にデータの提出を強制できるのかを含む)です。ヨーロッパ外の企業が運用するヨーロッパのデータセンターで得られるのはデータレジデンシーであり、デジタル主権ではありません。自社のケースでどの管轄が問題になるかは、ランナーのベンダーではなく法務顧問に確認すべき事項です。
監査でも通用する判断のルール:上の表の各層を書き出し、誰が運用し、どこで動いているかを記録して、自社の要件と照らし合わせます。要件がビルドの実行場所とビルドデータの保存場所だけを対象とするなら、ヨーロッパのランナーで満たせます。コントロールプレーンやコードの保存まで対象とするなら、ランナーだけでは満たせません。
ヨーロッパでの選択肢
| 選択肢 | ヨーロッパで動くもの | 運用者 | 制限 |
|---|---|---|---|
| データレジデンシー付きのGitHub Enterprise Cloud(GHE.com) | EUリージョン内のコードとActionsのデータ。Azureプライベートネットワーキングを通じた、EUのAzureリージョン内のホステッドランナー (x64はFrance CentralとSweden Central、arm64はFrance Central) | GitHub | Enterprise Cloudのみ。別のGHE.comエンタープライズが必要 |
| CRACI | ヨーロッパのベアメタルインフラ上のマネージドLinuxランナー。ビルドのエビデンス付き | ヨーロッパの企業、CRACI Corporation Oy | 現在はGitHub ActionsとLinuxのみ |
| Ubicloud | ドイツとフィンランドにある同社のヨーロッパリージョンでのGitHub Actionsランナー | サンフランシスコ、アムステルフェーン、イスタンブールにオフィスを持つUbicloud | Ubuntuランナー |
| Avrea | AvreaはAiven、Google Cloud、OVHcloudなどのホスティングプロバイダーを挙げており、データの所在に関する要件は同社と相談するよう求めている | ヘルシンキで創業したAvrea | データの所在はAvreaとの合意によるもので、リージョンごとには公開されていない |
| Blacksmith | 米国に加えてアムステルダムとフランクフルトにマシンがあり、Organizationは別のリージョンへの移動を依頼できる | コントロールプレーンをAWS上に置くBlacksmith | ヨーロッパの拠点ではあるが、ヨーロッパの運用者ではない |
| ヨーロッパのクラウド上のセルフホストランナー | Actions Runner Controllerまたは通常の仮想マシンを使い、ヨーロッパのプロバイダーのサーバー上で動かす自社のランナー | 自社 | パッチ適用、分離、スケーリングは自社で行う |
| ヨーロッパでホストされた別のCIプラットフォーム | コントロールプレーンを含むすべて。GitLab Self-Managed、またはForgejoやGiteaのインスタンス | 自社またはホスティングパートナー | ランナーの変更ではなく、CIの移行になる |
1対1の詳細はCRACIとUbicloudの比較、 CRACIとAvreaの比較、CRACIとBlacksmithの比較を、より幅広い選択肢はGitHub Actionsランナープロバイダーの比較をご覧ください。ランナーの自社運用を検討している場合は、マネージドランナーとセルフホストランナーの比較をご覧ください。
CRACIがヨーロッパで提供するもの
- ヨーロッパでホストされるマネージドランナー。ビルドは、CRACI Corporation Oyが運用するヨーロッパのベアメタルインフラ上で実行されます。CRACIは現在マネージドランナーを提供しており、顧客ホスト型ランナーはロードマップに掲載されています。
- EnterpriseでのEUデータレジデンシー。Enterpriseプランには、カスタム保持期間とSAML SSOとあわせて、EUデータレジデンシーが含まれています。
- 分離。すべてのジョブは、それぞれ分離された仮想マシンで実行されます。
- CRACIが保持するもの、保持しないもの。CRACIはソースコードをジョブの仮想マシン内で処理し、保存しません。保持するのは、ビルドのメタデータ、パッケージデータ、ネットワークトレース、SBOM、来歴情報、キャッシュ、監査記録です。キャッシュには、ワークフローが保存したものがそのまま入ります。
- 固定のエグレスIPレンジ。ビルドがアクセスする先の許可リストに使えます。
- 認証。CRACI Corporation Oyの情報セキュリティマネジメントシステムは、CRACIプラットフォームの開発と運用を対象に、Into CertificationによるISO/IEC 27001認証を取得しています。CRACIはGDPRに準拠しています。
セキュリティ審査に必要な詳細は、セキュリティ、 Trust Center、CRACIがアクセスできる範囲をご覧ください。
ビルドの層を移す価値がある理由
GitHubを使い続ける場合でも、最初に移す価値があるのはランナーの層です。ここは、シークレットがある状態でコードがコンパイルされる場所であり、サードパーティのパッケージが製品に入り込む場所です。これをヨーロッパのインフラ上で動かせば、その実行と、取得したすべてのパッケージの記録を、米国のハイパースケーラーのコンピュートではなく、ヨーロッパの企業が運用するインフラ上に置けます。
その記録はエビデンスにもなります。CRACIは、フェイルクローズで動作するエグレスポリシーのもとで、各ジョブの依存関係を完全性の状態付きのSBOMとして記録し、新たな脆弱性がないか監視し続けます。 Cyber Resilience Actなどのヨーロッパの規制は、まさにこうした記録をメーカーにますます求めています。
移行はラベルの変更、runs-on: craciだけです。CRACIは、より高速なハードウェア、短いキュー待ち時間、キャッシュにより、GitHubホステッドランナーの約2倍の速さでビルドを実行します。課金はビルド時間のみで、1vCPU分あたり$0.002(デフォルトの2 vCPUランナーでは$0.004)を秒単位で計測し、月額料金はありません。
CRACIのランナー、料金、
ランナープロバイダーの切り替え方をご覧ください。
CRACIが適さない場合
- 要件がコントロールプレーンやコードの保存まで対象とする場合。ヨーロッパのランナーだけでは足りません。ヨーロッパでのGitLab Self-Managedまたはセルフホストのフォージが必要です。GitLabの代替ツールをご覧ください。CRACIは現在GitHub Actionsのみに対応しており、GitLab CIとJenkinsはロードマップに掲載されています。
- ランナーを自社のハードウェアや自社のクラウドテナント内で動かす必要がある場合。顧客ホスト型のCRACIランナーはロードマップに掲載されており、現在は利用できません。
- ヨーロッパでmacOSやWindowsのビルドが必要な場合。CRACIは現在x86-64とARM64でLinuxを実行し、WindowsとmacOSはロードマップに掲載されています。
- 1分あたりの最安値が必要な場合。ほかのヨーロッパの選択肢のほうが定価は安くなっています。
ヨーロッパのGitHub Actionsランナーに関するよくあるご質問
GitHub ActionsのビルドをEU内で実行できますか?
はい。ビルドはランナーがある場所で実行されるため、ヨーロッパのインフラ上のランナーを使えばビルドはヨーロッパで実行されます。ランナーは、CRACIのようなマネージドプロバイダーから、ホステッドランナーをEUのAzureリージョンに配置できるデータレジデンシー付きのGitHub Enterprise Cloudから、あるいはヨーロッパのクラウド上でセルフホストランナーを運用することで用意できます。
ヨーロッパのGitHub Actionsランナープロバイダーはありますか?
はい。CRACIはヨーロッパの企業で、GitHub Actions向けのマネージドランナーはヨーロッパのベアメタルインフラ上で動作します。ほかにもヨーロッパでマシンを運用するプロバイダーはあります。マシンがどこにあるかと、どの企業が運用しているかの両方を確認してください。
ランナーがEU内にあれば、CIはデジタル主権を満たしますか?
それだけでは満たしません。ヨーロッパのランナーで移るのは、ビルドの実行と、ビルドが取得したものの記録です。コード、シークレット、ログ、アーティファクトは引き続きGitHubが保存し、すべてのジョブをオーケストレーションします。GitHubを構成から外すには、ヨーロッパでホストされた別のCIプラットフォームが必要です。
ヨーロッパのランナーを使うと、どのデータがGitHubに残りますか?
リポジトリ、ワークフローファイル、シークレットの保存、ワークフローの実行とログ、チェックのUI、actions/upload-artifactでアップロードしたアーティファクトです。ランナーは、ジョブの実行中にコードとジョブのシークレットを受け取ります。CRACIはコードをジョブの仮想マシン内で処理し、保存しません。
GitHubはActions向けにEUのデータレジデンシーを提供していますか?
GHE.comでホストされるデータレジデンシー付きのGitHub Enterprise Cloudでは、EUリージョンを選択でき、GitHubはリポジトリとActionsのデータおよびログをそこに保存します。ホステッドランナーは、Azureプライベートネットワーキングを通じてEUのAzureリージョンで実行できます。運用者は引き続きGitHubで、提供対象はEnterprise Cloudのお客様に限られます。
EUのデータレジデンシーとデジタル主権の違いは何ですか?
データレジデンシーは、データがどこで保存・処理されるかに関するものです。デジタル主権は、それに加えて誰がデータを管理し、その事業者にどの法律が適用されるかを問います。ヨーロッパ外の企業が運用するヨーロッパのデータセンターで得られるのはデータレジデンシーであり、デジタル主権ではありません。パイプラインの各層について、誰がどこで運用しているかを書き出し、自社の要件と照らし合わせてください。