eBPF の現状

In partnership with

2024 年 1 月

eBPF の現状
Linuxカーネルの����万行のコードは重要な機能を実現しているが、新機能の追加には数年かかることもある。

クラウド ネイティブ ワークロードのニーズと並行して、

eBPFは機能をサポートし、パフォーマンスを向上させ、簡潔さを促進する。

多くのアプリケーションがすでにeBPFを使用し、継続的プロファイリング、
監視サーバー、
可観測性
プラットフォーム、
パフォーマンス監視ツールを実現している。

eBPFのその他の課題には、

パフォーマンスと機能のトレードオフ、ツールの共存や相互運用性、プログラムの記述に必要なカーネルの専門知識などがある。

eBPFは、
パケット フィルタ
リングをはるかに超えて進化し、カーネル内の汎用
コンピューティング
マシン になっている。

eBPFを使用すると、エンジニアはカーネル内
でカスタムｖプログラムを迅速に構築できる。

コミュニティ全体が変更を受け入れる必要はない。

eBPFを使用すると、Linuxシステムの 可観測性、

Google、Meta、Netﬂix

ネットワーキング スタックなどの大手ハイテク企業は何年も前から
データセンターでeBPFを活用している。
Linuxカーネルの����万行のコードは重要な機能を実現しているが、新機能の追加には数年かかることもある。

の一部の書き換えやバイパス、

脆弱性の迅速な修正が可能になる。

イノベーションは
eBPFの中心であり、より高速で安全で柔軟性の高いイテレーション サイクルを作成する。

eBPF Foundationと運営委員会は、技術的な方向性を提供し、テクノロジーの
ロードマップに関する

コラボレーションを最適化する。

検証機とJITコンパイラは、
eBPFの展開において安全性とパフォーマンスの利点を提供する。

eBPFはクラウド ネイティブ イン
フラ スタックの重要な層になりつつあるため、すべてのオペレーティング環境の命令セットを中心とした標準化がeBPFエコシス
テムの課題。

Copyright © 2024 The Linux Foundation | January 2024. This report is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International Public License目次

はじめに........................................................................ 4
eBPF の進化.................................................................. 6
eBPF は「ブラックボックス」を開く............................................. 7
eBPF はクラウド ネイティブとともに成長し、その逆も同様.......... 7
おもなユースケース：可観測性、ネットワーキング、セキュリティ.. 8
可観測性.............................................................................. 8
ネットワーキング.................................................................. 9

セキュリティ....................................................................... 10

eBPF の普及................................................................ 11
私たちのための eBPF.................................................................. 12

直接的および間接的な方法でのイノベーション.............. 14“Fast by Friday”......................................................................... 15
魔法の妖精の粉ではない............................................................ 16

eBPF Foundation の役割............................................................17

結論：eBPF が向かう先................................................ 18

謝辞............................................................................. 19

eBPFの現状

3

はじめにLinux オペレーティング システムは、誕生からわずか 30 年で、普遍的なコンピューティング オペレーティング システムに成長しました。

eBPF のイノベーションはまた、企業がより優れたパフォーマンスを達成するために必要なハードウェアが少なくなり、同じ機能を実行するた

Android OS、世界のトップ 100 万 Web サーバーの 93%、IOT デバイス、 めの消費電力が少なくなることを意味します。これにより、運用のコス
車載システム、テレビ、スマートウォッチ、世界最速のスーパー コンピュー

ト効率、エネルギー効率、持続可能性が向上し、株主、消費者、コミュ

この広範な展開により、最先端の機能よりも安定性を求めるユーザーがeBPF がリリースされてからの 10 年間で、主要なユースケースとして、拡大しているテクノロジーによって、Linux カーネルがプログラム可能に

昨年、Meta は新しい eBPF ベースの中央処理装置スケジューラーによっ

ター トップ 500 など、何十億ものマシンが Linux で動作しています。
カーネルを変更することが難しくなっています。しかし、現在、急速になり、イノベーションのサイクルに革命が起こりました。これは、リスクやコストのかかる変更をカーネルに加えることなく、Linux の動作をリア
ルタイムで変更できることを意味します。
そのテクノロジーは eBPF です。
eBPF を使用すると、ユーザーは Linux カーネル内でカスタムプログラ

ムを実行できます。これにより、カーネルの動作が変更され、私たちのコンピューティング生活を機能させる主要部分の実行が最大 10 倍高速
かつ効率的になります。これには、エンジニアがシステムのどこで問題が発生しているかを確認し、修正を迅速に見つけることを可能にする可ニティの期待に応えるための必要性が高まっています。

可観測性、ネットワーキング、セキュリティが浮上してきました。しかし、て大きな成果を上げ、Meta のいくつかの最大のアプリケーションで5% の CPU 帯域幅の向上を実現しました。
「これは非常に大きな数字です。なぜなら、当社の CPU が 5% 増えるのと基本的に同じことだからです」と、Meta のソフトウェアエ ンジニアリング担当ディレクター

の Dan Kelley は言います。
「eBPF でできることを根本的に増やそうとしています。新しい CPU スケジューラーを使用することで、より迅速に反復処理を行うことができ、生産性とパフォーマンスにおける大きな成果は、コンピューターに費やす必要のないコストになります。これは、Meta が行っているカーネル プロジェクトという意味では、ここ 4、5
年で最もエキサイティングな開発の 1 つです。」

観測性、電子メールの移動速度から計算の実行速度まで、すべてに関係するネットワーキング、デジタルラ イフとインフラストラクチャをサイバー脅威から安全に保つセキュリティが含まれます。

Netflix 時代に eBPF に取り組み始め、現在は Intel のフェローである

Brendan Gregg は、「eBPF は、これまで固定されていたコンピューティ

ングの領域に柔軟性を提供し、可観測性、セキュリティ、およびネットワー
キングの新しいテクノロジーを強化します」と述べています。

新しい eBPF ベースの中央処理装置
スケジューラーによって、Meta の
いくつかの最大級のアプリケーションで5% の CPU 帯域幅の向上を実現しました。

eBPFの現状

4

eBPF は最近まで Linux のみのテクノロジーでした。2021 年、

Microsoft は eBPF プログラムを Windows OS 上で実行できるように誰かが「アイデアを思いついて、(eBPF) プログラムを書けば」それを数日以内に「エンドユーザー（多くの場合は企業や組織）に届けることするために、eBPF for Windows プロジェクトを作成しました。これは、 ができる」と、Thomas Graf（Isovalent の CEO で eBPF エコシステム
eBPF が業界全体のインフラストラクチャ言語として標準化されるための基礎を築いたと Graf は述べています。統一された基盤インフラスト

ラクチャがあれば、企業はいずれかの OS にロックインされるリスクなの先駆者）は、「Unlocking the Kernel」（eBPF の開発と成長を追ったドキュメンタリー）の中で述べています。

しに、その上で好きなようにイノベーションを行うことができます。

また、Microsoft が eBPF エコシステムに加わったことは、「業界を永ブラウザからデータベース、クラウドに至るまで、このベンダーロックストーン」だったと Graf は述べています。

インの欠如は、歴史的にイノベーションの増加、コストとパフォーマン

遠に変える」テクノロジーとして確立するための「最後の大きなマイル

スの面での競争を促進してきました。これは、Linux と eBPF の両方を推進するオープンソースの精神の基盤となる信条です。

さらに、Linux と Windows のどちらの世界の開発者も、カーネル拡張機能を記述することができます。
Microsoft のプリンシパル ソフトウェ

ア デザイン エンジニアである Alan Jowett は次のように述べています。

「これは、より多くのアプリケーションがより早く市場に提供され、より大きな市場に対応できることを意味します。」

eBPFの現状

5

eBPF の進化

eBPF のような「仮想マシン」を Linux カーネルに組み込もうとする試

その後、エンジニアの Alexi Starovoitov は、新しい方法で Daniel

う懸念から常に却下されてきました。

想マシンを挿入しようとするのではなく、彼は既存のものに目を向けまみは以前にも行われていましたが、混乱を招きすぎるのではないかとい
代わりに、開発者は回避策を見つけました。そのほとんどはカーネルモジュールの形で行われましたが、モジュールにバグがあるとカーネル全体がクラッシュする可能性があるため、リスクが高いものでした。

Borkmann と協力し始めました。Linux カーネル内にまったく新しい仮した。それは、BPF (Berkeley Packet Filter) として知られるパケットフィルターを移動する仮想マシンです。彼らは BPF の機能を
「レゴ ブロッ

クを積み上げるように」拡張し、単なるネットワークをはるかに超えて、カーネル内の汎用コンピューティング マシンになるまで拡張しました。

もう 1 つの選択肢は、カーネルに実際の変更を求めることでした。ここのレポートでは、eBPF の進化、eBPF が生み出した革命、現在するまでに数年かかる可能性があります。数十年前のツールを使用した明します。

れは、前述のように、エンド ユーザー環境のサポート リリースに到達

り、カーネルの外部でコンテキストを切り替えたりするには、時間と処

eBPF を使用して構築されているもの、課題、および方向性について説

理能力が必要です。

出典：x.com/breakawaybilly

eBPFの現状

6

eBPF は「ブラックボックス」を開く

Red Hat のシニア プリンシパル カーネル エンジニアである Toke

し、デバイス ドライバーからユーザー アプリケーションまでのマシンす」と述べています。
「eBPF のパワーは、この一般性、つまり関数を

オペレーティング システムのカーネルは、ハードウェアと直接やり取り
コンポーネントと対話するソフトウェアです。カーネルは、アプリケー

ションが行うすべての興味深いことに関与します。アプリケーションがネットワーク メッセージを送信したり、メモリを割り当てたり、その他

Hoiland-Jorgensen は、「eBPF は、これまで非常に困難だった、あるいは事実上不可能だったことを可能にするという意味で、非常に重要で指定しないという事実から来ています。特定の場所に独自の機能を実装することができ、必要なことは何でも実行できます。」

eBPF はクラウド ネイティブとともに成長し、.
ます。Linux カーネルには 3000 万行のコード があり、変更を加えると、その逆も同様
いくつかのことを行う場合、カーネルを経由してハードウェアに関与しそれをマージするだけで数ヶ月から数年かかることもあります。

eBPF は、Linux カーネルの仮想マシンのようなものです。eBPF を使用
すると、開発者は小さな専用プログラムを実行するための eBPF 命令を記述します。それらは eBPF の「検証ツール」に送られ、プログラムがカーネルに追加しても安全であり、バグをもたらしたりカーネルをクラッシュ
させたりしないことをチェックします。プログラムは JIT コンパイルされMeta は現在、eBPF ベースのスケジューラーを運用しています。

Google は 2024 年初頭に独自の eBPF ベースのスケジューラのテストを開始する予定だと Kelley は述べています。これは、eBPF がすでにあらゆる業界の企業で広く使用されているにもかかわらず、その影響の初期段階にあることを強調しています。

てマシン コードになり、実行されてイベント ターゲットにアタッチされま

そして、ますますクラウド ネイティブ化が進む今日のコンピューティン

ブ化されます。

しいデジタル ワークロードの 95% 以上がクラウド ネイティブ プラットす。つまり、プログラムはファイルを開くなどのイベントによってアクティ

eBPF はプラットフォームの機能を拡張し、パフォーマンスを向上させ、複雑さを軽減するため、次世代のクラウドネイティブ ワー
クロードを触媒します。

グの世界にぴったりのタイミングです。Gartner は、2025 年までに「新フォームで展開される」と推定しています。これは 2021 年の 30% から増加しています。

クラウド ネイティブ開発アプローチにより、企業はより効率的かつ信頼性の高いアプリケーションを構築して提供できるようになります。

eBPF は、プラットフォームの機能を拡張し、パフォーマンスを向上させ、複雑さを軽減するため、次世代のクラウド ネイティブ ワークロードを促進します。

Linux と Kubernetes の組み合わせは、事実上のクラウド OS であり、クラウド ネイティブ開発の基盤です。確かな基盤ですが、Kubernetes
は非常に複雑です。また、Linux カーネルに変更を加えるには何年もかかることがあります。ほとんどの組織には時間がありません。これらの要因は、組織のイノベーション能力を低下させます。これが、eBPF
がクラウド ネイティブの世界で広く急速に受け入れられている理由です。

eBPFの現状

7

「企業は自社のソフトウェアをクラウドに移行しようとしており、それを

eBPF の可観測性ツールは電気をつけます。

ルを求めています。eBPF は、これらのツールを作成するための優れた「カーネル開発者でない人にとって、Linux カーネルはブラックボックス

ります」と、eBPF の先駆者である Isovalent のチーフ オープンソース

クボックスを開き、システムがどのように機能しているかについて、以支援する可観測性ツールやネットワーキング ツール、セキュリティ ツー
プラットフォームであり、非常に革新的なインフラストラクチャ技術にな
オフィサーであり、O’ Reilly レポート”What is eBPF” の 著者である

Liz Rice は言います。eBPF がカーネルに組み込まれていることで、「マのようなものです」と、Hoiland-jorgensen は言います。
「eBPF はブラッ
前は得られなかった情報を得ることを可能にします。

シン全体で何が起こっているかを観察し、影響を与えることができる、

こで時間を費やしているか、どこでボトルネックが発生しているか、

eBPF がクラウド ネイティブの世界で離陸した理由です」と Rice は言

度、どこでサイクルが回転しているかをより簡単かつ完全に把握し、どこれらの信じられないほど強力なツールを持つことができます。これがいます。

CPU ( カーネルとアプリケーションを実行する中央処理装置 ) の動作速のコード部分が誤動作している可能性があるかをより迅速に見つけることができます。企業が数百または数千台の巨大なサーバー クラスタをおもなユースケース：可観測性、ネットワーキング、 導入していて、何か問題が発生した場合、問題の原因を特定するのに数日、数週間、場合によっては数か月かかることがあります。
セキュリティ
5 年以上前から、eBPF は世界中の何百万ものデバイスとサーバーで動作しています。ほとんどの人は、企業が eBPF を使用することによってすでに影響を受けていますが、おそらくそれを知らないでしょう。

米国のハイパースケーラーの多く—Meta、Google、Netflix—は、本番
環境で eBPF を使用しています。すべての Android 携帯電話は、トラフィックを監視するために eBPF を使用しています。Meta データセンターを出入りするすべてのパケットは、eBPF によって処理されます。ソフト
ウェア、クラウド サービス、金融サービス、通信、メディアとエンター
テイメント、e コマース、コンサルティング、セキュリティなど、さまざ

まな業界の企業が、eBPF テクノロジーを使用して、より多くのことをより速く、時間とコストを節約し、パフォーマンスを向上させるようになっています。ここでは、これまでのところ、本番環境での eBPF の 3 つの主要なユースケースの内訳を示します。

可観測性

多くの企業にとって、可観測性の分野が eBPF が最初に飛躍し、最大米国のハイパースケール企業の多く(Meta、Google、Netflix) は、
本番環境で eBPF を使用しています。
すべての Android スマートフォンは、
トラフィックを監視するために eBPF を使用しています。Meta データセンターを出入りするすべてのパケットは、
eBPF によって処理されます。

の影響を与えた場所です。Graf はコンピューティングにおける可観測

性を、部屋の電気を消して掃除をすることにたとえます。電気をつけると、掃除がずっと早く進み、良い結果が得られます。

eBPFの現状

8

Gregg は、今日の主要な eBPF ベースの可観測性ツールの多くと、数十の高度な eBPF トレース ツールを作成して、サイクルを数日、数時間、
または数分に短縮し、CPU、メモリ、ディスク、ファイル システム、ネッ
トワーク、言語、アプリケーションなどの分析を含むシステムの動作に関する独自の洞察を提供しています。eBPF プログラムをファイル オープンなどのイベントにアタッチすることで、ユーザーはシステムで何が起こっているかを驚くほど可視化するメトリックを取得できます。

特定のレベルを達成するには、
パフォーマンスやインストルメンテーショ
ンのボトルネックのためにコストがかかりすぎるため、企業は長い間、可観測性に関する選択を行う必要がありました。Gregg の仕事と他の人たちの努力のおかげで、eBPF はより大きな可観測性をより効率的か
つ簡単に追加できるようにし、根本原因となるエラーの可視性を大幅に向上させるツールを構築できるようになりました。

「Brendan の eBPF での作業は可観測性を破壊しました。彼が Netflixで作ったものはすべて主流になり、彼の仕事は私たちに多くのツールをもたらしました」と、Netflix のプラットフォーム ネットワーキングのディレクターである Shweta Saraf は述べています。

現在、Netflix は、クラウド エコシステムを可視化するために、1 時間

Netflix は、毎時数十億の eBPF「フローログ」
を取り込み、充実させることで、そのクラウド エコシステムの可視性を確保しています。この充実したデータにより、
Netflix はネットワークの可用性、パフォーマンス、およびセキュリティを分析し、アプリケーションが世界中に分散したクラウドベースのエコシステムを通じてデータを確実に配信できるようにしています。
ネットワーキング

ネットワーキングの分野は、eBPF が速度とパフォーマンスを向上させる方法の好例です。

あたり数十億の eBPF「フローログ」を取り込み、強化しています。強Linux ネットワーク スタックの多くの部分は、IP とポート範囲がコンテ

ス、セキュリティを分析し、アプリケーションがグローバルに分散した

前に書かれたものです。eBPF を使用すると、プログラマーはネットワー

化されたデータにより、Netflix はネットワークの可用性、パフォーマン
クラウドベースのエコシステム全体にデータを配信できることを確認できます。eBPF はそれを「非常に効率的」にする、と Saraf は付け加えました。

ナごとに変更されるのではなく、スプレッドシートで追跡できた数十年

ク スタックを書き直したり、必要な部分のみを利用したり、完全にスキッ
プして時間と処理能力を節約したりできます。不要なものをバイパスしたり、ソフトウェアを構築する新しい方法に基づいて機能を書き直したりすることで、ネットワークのパフォーマンスが劇的に向上します。

eBPFの現状

9

Cilium のレイヤー 4 ロード バランサー XDP は、Seznam.cz のスルー

eBPF はまた、セキュリティ ポリシーを分散環境に適用し、リアルタイ

2018 年に Katran をオープンソース化しました。データセンターを出入合、カーネル コードを変更することなく eBPF を介して迅速な修正を行

プットを倍増させ、CPU 消費を 72 分の 1 に削減しました。Meta はりするすべてのパケットは、パフォーマンス上の利点から eBPF によって処理されます。2022 年、Walmart は eBPF を使用して Kernel

Function as a Service を提供する L3AF プロジェクトをオープンソース

ムで実装できるようにします。例えば、カーネルに脆弱性が発生した場
うことができ、セキュリティ アップデートをその場で行うことができます。

化し、eBPF プログラムのマーケットプレースを作成しました。ユーザ

これらの機能により、「eBPF はソフトウェア サプライ チェーンのセキュ

eBPF プログラムをダウンロードできます。iptables はカーネル コミュ

付け加えています。

と開発者は自分の署名した eBPF プログラムを共有し、他の人からニティと eBPF によって置き換えられ、ネットワークをほぼライン レートにしています。

セキュリティ

eBPF によって強化された可観測性によって、カーネル内だけでなくKubernetes やクラウド ネイティブ環境全体を含むセキュリティ攻撃を検出して防止する能力が向上します。

「見えないものを安全にすることはできません」と語るのは、クラウド

リティ保護において非常に大きな役割を果たすでしょう」と Gupta は「ソフトウェアが世界を侵食している」と言う人もいるが、私はこう言いたい。
「eBPF がソフトウェアを侵食している」と、グローバル クラウド

プラットフォームである Cloudflare のブログで述べられています。同社
は DDoS 軽減策やその他の製品を構築するために eBPF を使用しています。

eBPF は、同じプログラムを複数のバージョンの Linux カーネルで実行できるように記述することもできます。これは、企業が新しいカーネル

ネイティブなアプリケーションにおけるセキュリティ侵害を防止、検出、 バージョンを採用する割合が異なるため、重要です。eBPF は複数のバー軽減するためのセキュリティ プラットフォームを提供するTigera のチー
フ プロダクト オフィサーである Amit Gupta です。
「セキュアなアーキ

ジョンで実行できるため、企業は新しいセキュリティ機能を採用する可能性が高くなります。なぜなら、古いカーネル バージョンとの相互運用

テクチャの最初のステップは、完全でセキュアな可視性を得ることです。 性があることがわかっているからです。
eBPF はその可視性を生み出すのに役立ちます。eBPF データがユーザー空間に戻ってきたら、発生している他のすべてのものと調整して ... 悪意のあるアクティビティの可能性があるかどうかを判断できます」とGupta は言います。攻撃者を見つけ出すのに何カ月もかかったり、完全に見失ったりする代わりに、eBPF ツールは「数秒以内に」アクションを実行できると Gupta は言います。

たとえば、カーネルに脆弱性が発生した場合、カーネル コードを変更することなくeBPF を介して迅速な修正を行うことができるため、
セキュリティ更新をその場で行うことができます。

eBPFの現状

10

eBPF の普及

当初、eBPF は Linux 開発者だけが利用できる技術でした。非常に複雑で、Linux カーネルの専門知識を持つ人がほとんどいなかったからです。

図1

EBPF FOUNDATION メンバー
プラチナ

その後、Google、Facebook、Netflix などのハイパースケール企業が参入しました。彼らには、この技術を開発するためのエンジニアリング

力と、それを利用し、展開し、改善するためのシステムの専門知識と制御力がありました。彼らはまた、本番環境で eBPF を主導してきました。
これは、おそらく今日のほぼすべてのデジタル消費者の生活に影響を与えていることを意味します。

2017 年以来、Meta はデータセンターに入るすべてのパケットを eBPF
で処理しており、Google もデータセンタートラフィックのほとんどを

eBPF で処理しています。Meta は、CPU スケジューラーの効率性を向上させたことでの成果を文書化しています。Google はセキュリティの監視と実施の両方に eBPF を使用しています。Isovalent の Bill

Mulligan と Daniel Borkman は InfoQ で、Android スマートフォン シ
ステムのすべてのネットワーキング パケットが eBPF にヒットすると報告しています。Netflix のプラットフォーム ネットワーキングのスタッフ ソ

フトウェア エンジニアである Arthur Gonigberg は、2 億人を超える顧シルバー

客から Netflix に送られるすべてのトラフィックとすべてのサーバーが「どこかの eBPF を経由する」と述べています。

出典：eBPF Foundation

eBPFの現状

11

図2

41

アクティブな EBPF
ランドスケープ プロジェクト
（年度別）

36

12

14

17

8

出典：GitHub

2015

5

4

1

2016

2017

2018

2019

2020

2021

2022

2023

私たちのための eBPF

Isovalent が開発のために設立した Cilium は、企業がクラウド ネイティ

ります。それは、ソフトウェア エンジニアのチームです。eBPF をより

クラウド ネイティブになることはありません。さらに、主要なクラウド

ハイパースケール企業や大企業には、ほとんどの企業にはないものがあ多くの企業に普及させるために、このテクノロジーをより利用しやすく、すぐに使えるようにするオープンソース プロジェクトが生まれました。

ブ環境で必要とするソリューションを構築し、Kubernetes を既存のレ

ガシー インフラストラクチャに接続する機能を構築します。その一部はプロバイダーが Kubernetes ソリューションに Cilium を統合し、クラウド ネイティブ エコシステム全体の「デフォルト」にしています。

eBPF を搭載した Cilium は、他のすべてをリードしています。2016 年「AWS はオンプレミスの Kubernetes サービス EKS Anywhere の舞台

eBPF を使用した接続性、可観測性、セキュリティに拡大しました。

使っています。Google Cloud は Google Kubernetes Engine のネットに設立された Cilium は、最初はネットワークに焦点を当てていたが、Cilium は、Kubernetes、Envoy、Prometheus と並んで、Cloud

Native Computing Foundation の中で最も急成長しているプロジェク
トの 1 つです。

100 社以上の企業が Cilium を採用したことを公表しており、このプロ裏でネットワーキングとセキュリティ機能を提供するために Cilium をワーキング コンポーネントを強化するために Cilium を使っている」と

The Stack は報告しています。S&P Global のネットワーク エンジニア
は、Cilium を使った eBPF ベースのネットワーキングを活用して「マルチクラウド接続スーパーハイウェイ」を構築しました。

ジェクトは世界最大の Kubernetes クラスタのいくつかを動かしていま「Goldman Sachs は eBPF を直接使うことはありません。Cilium のよThe New York Times、Bloomberg、Bell Canada などの企業にまでます。

す。エンド ユーザーは、スタートアップから大手金融機関、通信会社、及んでいます。

うな eBPF ベースのソリューションを購入するでしょう」と Graf は言い

eBPFの現状

12

Red Hat は eBPF を早期に採用した企業の1つでもあり、同社のエンター

プライズ Linux ディストリビューションで eBPF を早い段階から実現し、サポートしています。同社の顧客は、さまざまなプラットフォームでRed Hat Enterprise Linux (RHEL) を実行しています。RHEL における

eBPF の初期の用途の 1 つは、高速データパス (XDP) サブシステムです。
これにより、柔軟でプログラマブルなネットワーク パケット処理をLinux カーネル データ パスに直接統合し、非常に高いパフォーマンス
を実現できます。XDP には、サーバーがデータ パケットを処理するとすぐに実行される eBPF フックがあるため、eBPF はパケットを確認して、Linux カーネルが単独で動作している場合よりも高速にパケットを送信• Pixie：eBPF を使用してテレメトリ データを自動的にキャプチャする Kubernetes アプリケーション用のオープンソースの可観測性ツール。

• Calico：コンテナと Kubernetes のためのプラグ可能な eBPF ベースのネットワークとセキュリティ。

• Tetragon：eBPF ベースの透過的なセキュリティ可観測性とリアル
タイムのランタイム エンフォースメントを組み合わせて提供。

eBPF Foundation の Web サイトにリストされているように、他にも約できます。eBPF プログラムは、プログラムされていることは何でも実

30 の新興アプリケーションが開発中です。これらのアプリケーションは、

プすることにすぎないかもしれません。Red Hat は、複数の XDP プロ

検出とフィルタリング、監視サーバー、可観測性プラットフォーム、パ行します。それは単に DDoS 攻撃から保護するためにパケットをドロッ
グラムを順番に実行するためのライブラリも開発しています。したがって、あるベンダーがユーザにファイアウォールを提供し、別のベンダーが同じ顧客にパケット ロガーを提供する場合、顧客はそれらを一緒に実行する方法を知る必要があります。libXDP ライブラリは、それらが一緒に正しく動作することを確認します。

稼働・開発中の eBPF アプリケーション

継続的なプロファイリング、疑わしい動作を検出するためのイベントのフォーマンス監視ツール、クラウド ネイティブ ワークロードのプラット

フォーム、ロードバランサー、Kubernetes リソースのデバッグと検査のためのツール、サービス マップ、強制システムなどを可能にします。

eBPF には、eBPF プログラムのデバッグ、ロード、コンパイルを支援す
る Rust、Go 言語、C++ で記述されたライブラリもあります。

その他の主要な eBPF アプリケーション：• Bcc：効率的な eBPF カーネル トレースのためのツールキットとライブラリ。

• Bpftrace：Linux eBPF の高レベル トレース言語。
• Falco：アプリケーションの異常なアクティビティを検出するように設計された動作アクティビティ モニター。eBPF の助けを借りて、
Falco は「Linux カーネル層でシステムを監査する」。

• Katran：ハイパフォーマンスのレイヤ 4 ロードバランサー。

eBPFの現状

13

直接的および間接的な方法でのイノベーションeBPF は、多くの直接的および間接的な方法で、組織のイノベーション
能力を向上させます。

最も直接的には、たとえば Meta の CPU スケジューリングに関する作業のように、開発ライフサイクルを加速するいくつかのパフォーマンス

向上を提供します。
「eBPF が通常のカーネル開発と比べて非常に魅力的なのは、通常のカーネル開発では、仮説を立て、新しいカーネルを構築し、コンピューターを再起動し、仮説をテストしなければならないことです。遅いですね」と、
Meta の Kelley は説明します。
「アイデアを持ってからテスト結果を得るまでの時間が短いほど、大きなアイデアをどれだけ早く実行できるか、どれだけ大きなアイデアを合理的に追求できるかが決まります。eBPF はそのすべてを縮小しています。イテレーション
サイクルははるかに高速で、より多くの実験を実行できるため、それほど賢くなる必要はありません。短い反復時間で安全に行うことができれば、発見のプロセスを早めることができます。
」

さらに、eBPF が Linux カーネル リリースから切り離されているということは、開発者が必要とする新機能がメジャー ディストリビューション
のリリースに反映されるまで、何か月も何年も待つ必要がないということです。Linux カーネル リリースから切り離されていることは、Linux

カーネル自体の「機能の忍び込み」とそれに伴うパフォーマンスの低下を防ぐのにも役立ちます。

同じように、eBPF は、カーネルにパッチを適用し、変更を段階的にフリートにデプロイするという時間のかかるプロセスをバイパスすること

で、本番環境のフィードバック ループを Linux カーネル自体から切り離します。代わりに、変更を行ってその場でテストすることができます。

eBPF は、ユーザー空間スタックで必要なものを活用することもでき、スタックの大部分を書き換えるのではなく、小さな変更を行うことができます。

これらすべてが、アプリケーションのモノリスの一部をマイクロサービ

スに分割するプロセスによく似ているように聞こえるなら、それは偶然ではありません。実際、eBPF はここ数年の最も重要なコンピューティ
ング パラダイムのいくつかと一致しています。代表的な例 : エッジ コン
ピューティングが計算リソースとデータ ストレージ リソースをデータ生
成のポイントに近づけるのと同じように、eBPF はデータ処理をパケッ

ト レベルから、特定のソケット フックや XDP (eXpress Data Path) などのイベント ソースにできるだけ近い場所に移動します。これにより、リソースの消費が削減され、データ処理の効率が向上します。組織は
eBPF を使用することで、ネットワーク、可観測性、セキュリティの効率とパフォーマンスをさらに向上させることができます。

eBPF が Linux カーネル リリースから切り離されているということは、開発者が必要とする新機能がメジャー
ディストリビューションのリリースに反映されるまで、何か月も何年も待つ必要がないことを意味します。

eBPF は、同じプログラムを複数のバージョンの Linux カーネルで実行できるように記述することもできます。これは、より迅速なイノベーショ
ンにも拍車をかけます。たとえば、Meta、Google、Amazon などの企

業は何百万台ものコンピューターを所有していますが、そのすべてがまっ
たく同じバージョンのカーネルを実行しているわけではありません。コンピューター全体をアップグレードするには長い時間がかかるためです。
そのため、常に複数のバージョンの OS を同時に実行しています。フリー
ト上で実行されている複数のバージョンのソフトウェアにそれぞれの

eBPF プログラムを特化させなければならないとしたら、それは大きな税金になるでしょう。
「異なるバージョンのカーネルで実行できることは、開発のイテレーション速度をスピードアップするもう 1 つの要因です」と Meta の Kelley は説明します。

eBPFの現状

14より間接的には、eBPF が導入するガードレールは、開発者が面倒な ( し従来の Windows ドライバーは、サードパーティによって Windows コー

ンと継続的なイテレーションに集中するのに役立ちます。

に関する深い知識を持っていないことが多いため、ドライバーの安定性

かし重要な ) 管理、可観測性、セキュリティ タスクではなく、イノベーショ
たとえば、開発者がバグを探して修正するのに費やす時間は、収益を向上させるアプリケーションやサービスの構築に費やす時間ではありません。eBPF プログラムを使用してネットワーク パケットやその他のイベントをリアルタイムでトレースすることで、組織はシステムの動作を詳細に把握し、問題に迅速に対応できるようになります。たとえば、それでもパケットが失われた場合は、eBPF ベースのオープンソース ツールである

ドベースの外部で開発されており、Microsoft の開発者ほど Windowsが問題になることがありました。

eBPF はカーネルを保護し、最終的にはイノベーションの強化を促進します。

Pwru（“packet where are you?”）があります。これは、Linux カーネ

eBPF for Windows は、検証ツールを使用することで、これらの問題迅速化するためのものです。

Microsoft の Jowett は次のように述べています。
「Windowsドライバー

ル内のパケットをトレースして、「ネットワーク接続の問題のデバッグ」を最も重要なのは、eBPF がカーネルを保護し、最終的にイノベーションを促進することです。

Linux 用の eBPF 検証ツールは、2 段階のプロセスで eBPF プログラムの安全性を保証します。最初にループやその他の構成検証を禁止する

チェックを行い、次にすべての命令の実行をシミュレートし、レジスタとスタックの状態変化を観察します。

簡単な作業ではありませんが、検証ツールで何かが合格すれば、誰もが
eBPF ベースの新しい製品に自信を持つようになります。スタートアップ

企業は、自社製品が eBPF ベースであれば、Netflix のような大企業に自の一部をキャッチできる別のセキュリティ チェックを提供します。また、やその他のカーネル エクステンションが安全であることを確認すること
で、Windows のエコシステム エクスペリエンスを大幅に向上させることができます。

“Fast by Friday”

テクノロジーは、多くの場合、物事をより速く、より効率的に進めます。
これは、必要なハードウェアが少なく、消費電力が少ない環境に役立ちます。タスクの完了を高速化することで、イノベーションを促進します。
企業がコンピューティング コストを抑制するのに役立ち、Web サイトの読み込みが高速なエンド ユーザーにもメリットがあります。

社製品の使用を説得できる可能性が高くなります。

しかし、新世代のハードウェアとソフトウェアが優れたパフォーマンス

Windows 側でも同じことが言えます。Linux とは異なる検証ツールを使い、と Gregg は 2023 年の eBPF サミットの基調講演で述べました。

用します。Windows の検証ツールは、最初に eBPF コードをオフライン

でチェックし、すべてのコードが証明可能な安全性を備えていることと、を約束しているからといって、その可能性が常に実現されるとは限らな
むしろ、ボトルネックは長い間謎のままであり、物事を遅らせます。新
しいソフトウェアとハードウェアのオプションは、エンジニアに時間がMicrosoft が安全と見なす人物によって署名されていることを要求します。 ないため、常に評価されているわけではありません。コンピューターがこれにより、コードの出所を確認できます。

ますます複雑になるにつれて、すべてのコンピューティングの問題をより迅速に解決できるようにすることが課題となっています。

eBPFの現状

15

「あらゆるパフォーマンスを解決し」、エンジニアがあらゆるソフトウェアのパフォーマンス問題を修正でき、本番環境で「即座に」実行できるよ
うにするには、「eBPF が不可欠だ」と Gregg は言います。

eBPF ツールは、CPU のフレーム グラフを使用して、CPU がブロックされている場所を確認し、レイテンシーの問題を掘り下げ、より効率的なツールを作成し、最終的には 0 インストルメンテーションを可能にします。
彼は業界に対して、コンピューティングの問題を数週間や数か月ではな

く、
5 日以内に修正するための標準を設定するよう求めています。これが、

eBPF 開発コミュニティは、ツールの能力を犠牲にすることなく、
カーネル内の他の形式のコード実行よりも
eBPF を安全にする方法を継続的に学習しています。

彼の造語である「fast by Friday」です。

問題がより早く修正されれば、イノベーションも速く起こります。

魔法の妖精の粉ではない

eBPF には多くの利点がありますが、Red Hat の Hoiland-jorgensen は、
eBPF は「何でもできるようにする魔法の妖精の粉」ではないと言います。

「私たちはまだ物理法則に縛られています。CPU は 1 秒間に特定の数の処理しか実行できません。」

eBPF の最大の課題の 1 つは、ほとんどすべてのソフトウェア プログラ

ムと同様に、セキュリティです。eBPF は可観測性を高めるため、セキュリティを強化できます。しかし、どのようなプログラムでもセキュリティの課題が生じる可能性があります。カーネル空間でコードを実行する場
合、コンピューター上の通常のプログラムでは利用できない多くの機能にアクセスすることになります。そのため、そうすることで潜在的な害がない完全な未来はありません。eBPF 開発コミュニティは、ツールの能力を犠牲にすることなく、カーネル内の他の形式のコード実行よりも
eBPF を安全にする方法を継続的に学習しています。

eBPF のその他の課題は次のとおりです。

• パフォーマンスのトレードオフ：eBPF によって達成される高いパフォーマンスは、特定のユースケースに合わせた最適化の結果です。
eBPF で多くのことを行い過ぎると、利益を失いかねません。ユー

ザーは、パフォーマンスの向上を維持するために有効にする機能のサブセットを選択する必要がある場合があります。

• 共存：カーネルの機能はまた、多くのユースケースをサポートしなけ
ればなりません。つまり、ツールは共存しなければなりません。あるソフトウェアの eBPF 機能は、他のソフトウェアと組み合わせて動作しなければなりません。カーネルに 2 つの eBPF プログラムがあり、両方が同じパケットで動作したい場合、どちらが先に行くかを決める必要があります。現在、これはほとんどが手動で行われていますが、eBPF プログラムがお互いに干渉しないようにするための作業が行われています。

• カーネルの深い専門知識：eBPF は Linux カーネルの内部をアプリ

ケーションに公開します。そうすることで、アプリケーションとカーネルの間の境界のために、アプリケーションが伝統的に保護されてきたカーネルの詳細の多くを公開します。これは、eBPF を効果的にプログラミングするには、カーネルの深い専門知識が必要であることを意味します。これは、eBPF の初期の採用のほとんどが、
カーネル開発者も雇用している組織によって行われている理由の 1
つです。

eBPFの現状

16

Gregg は、ソフトウェア開発者の大多数が eBPF コードを書かないとしても、eBPF は広く展開できると主張します。Netflix に 3, 000 人のエンジニアがいるとすれば、eBPF コードを書くことができるのは約 10人だけです。しかし、誰もがその存在を知り、必要なプログラムを手に入れるためにその 10 人のところに行くだろうと、Gregg は YOW!
Perth で語りました。

「企業が eBPF を最大限に活用するためには、eBPF プログラミングを扱うことができるシニア エンジニアが少なくとも 1 人必要であり、彼らは彼らのニーズに最適なオープンソース、商用、または社内ソリューション

を見つけるために彼らの会社を導くことができます」と Gregg は言います。

「eBPF は難しい技術かもしれません。適切なソリューションがまだ存在しない場合は、制限された環境でカーネル エンジニアリングとアセンブ
リ プログラミングを組み合わせて直接プログラミングする必要があり、その価値を完全に実現するには、オペレーティング システムの内部構造に対する確かな理解と想像力が必要です。
」

プラットフォーム エンジニアも重要な役割を果たすことになります。

eBPF 開発者がオンデマンドで確実かつ安全にコードをデプロイするために必要なハードウェアとソフトウェアをキュレートするだけでなく、Linux カーネルの eBPF 拡張によって、新しい抽象化とビルディング ブ
ロックの作成が可能になります。プラットフォーム エンジニアは、開発者のためにキュレートする標準化されたツールセットに、時間をかけて追加することができます。

• 多すぎるデータ。eBPF 技術のおかげですべてを見ることができれば、「すべてを見ることができます」と、eBPF Summit の基調講演で Postman のプロダクト オブザーバビリティ責任者であるJean Yang は述べました。そのため、システムエンジニアはネット

ワーク データに圧倒される可能性があります。eBPF で収集されたデータをより適切な形式で表示できるようにするには、フィルタリングが必要です。

eBPF がインフラ ソフトウェアの世界で最も影響力のある技術の 1 つになるにつれて、プロジェクト間のコラボレーションを最適化し、「eBPF のコアを適切に維持し、明るい未来に向けた明確なロード
マップとビジョンを備えていることを確認する」ことが重要になります。
• 相互運用性。一部の ISV は eBPF ベースのソフトウェアを出荷し始めています。より多くのソフトウェアベンダーが eBPF を組み込むにつれて、相互運用性はさらに大きな必須事項になります。これには、相互運用性のための技術的ソリューション、コミュニティ規範、および優れた eBPF アプリケーション市民であるためのベストプラク
ティスの組み合わせが必要になります。

eBPF Foundation の役割

eBPF がインフラストラクチャ ソフトウェアの世界で最も影響力のある技術の 1 つになるにつれて、プロジェクト間のコラボレーションを最適化し、「eBPF のコアを適切に維持し、将来の明るい未来に向けた明確なロードマップとビジョンを備えていることを確認する」ことが重要になると、Isovalent の Graf は eBPF Foundation と eBPF の技術的方向性とビジョンを担当する運営委員会を発表するブログで述べています。

eBPF の Windows カーネルへの移植や、その他の新しいプラットフォー
ムへの移植には、移植性とランタイム要件の調整も必要になります。

eBPFの現状17結論：eBPF が向かう先

eBPF はすでに広く展開されていますが、eBPF の専門家によると、こMicrosoft の Jowett は、eBPF プログラムがすべての環境で同じようといいます。

ステムの標準化が鍵になると述べています。これにより、アプリケーショ

れから解き放たれるイノベーションの大きな波はまだ始まったばかりだ
カーネル開発に関して、Meta が CPU スケジューラーで達成した成果は、
eBPF を「根本的に興味深い形で異なるもの」にしていると Meta のKelley 氏は述べています。これは、これまで以上に迅速に「単に起動してテストする」ことができるという勝利の組み合わせを実証したからに機能するようにするためには、命令セットを中心とした eBPF エコシンの相互移植が容易になります。

「これは、eBPF を Linux 固有の技術から業界全体のプラットフォームに移行させるための基本的な部分です」と Jowett は言います。

です。

Gregg は次のように付け加えています。
「Microsoft は、これが LinuxeBPF が新しいクラウド ネイティブ インフラストラクチャ スタックの新には、eBPF はすべてのオペレーティング システムで利用できるようにしいレイヤになることは間違いなく、すべてのアプリケーションの可観
測性、パフォーマンス、信頼性、ネットワーキング、セキュリティに影を超えて成長することを確実にする方法を推し進めています。」最終的なると彼は述べています。

響を与えると支持者は言います。プラットフォーム エンジニアは、

eBPF の成功はどのようなものになるのでしょうか？ Postman の Yang

わせて、開発者がソフトウェアをデプロイできるプラットフォームを作クを支配していた数年前、「Intel Inside」は信頼感を与えるフレーズで

eBPF を利用したインフラストラクチャ ビルディング ブロックを組み合成し、ビジネス ロジックを追加し、今日のデジタル化とクラウド ネイ
ティブ化に対応できない古い Linux カーネル内部を置き換えます。

は、特異なものになるだろう、と言います。ハードウェアが技術スタッ
した。どのチップが何をしているのか詳しく調べようとする人はほとん
どいませんでした。

一方、Microsoft の eBPF への取り組みは、BSD や Apple の OS X な

今日のソフトウェアとクラウド ファーストが定義された世界では、「eBPF

開いていると、Gregg は Yow! Perth conference の基調講演で述べまることを知らないだろうと Yang は言います。それはただ私たちの周り

どの「他のオペレーティング システム」が eBPF を使用するための道をした。Microsoft が行っている作業には、eBPF のための独立した基盤とバイトコード、変更を監視する委員会などが含まれます。

inside」は同じ重要性を持ち、開発者もユーザーも誰もそれが存在すのデジタル世界を動かしているでしょう。

eBPFの現状18謝辞

まず最初に、eBPF Foundation とプロジェクトのすべてのメンテナー、貢献者、メンバーに感謝の意を表します。
以下の方々が本稿の内容に貢献してくださいました。
• Dan Brown, eBPF Foundation• Toke Hoiland Jorgensen, RedHat• Will Ferrier, Intel• Dan Kelley, Meta

• Lisa Caywood, Red Hat• Arthur Gonigberg, Netflix• Thomas Graf, Isovalent• Brendan Gregg, Intel• Amit Gupta, Tigera• Daniel Haney, Microsoft• Alan Jowett, Microsoft• Bill Mulligan, Isovalent• Sridhar Rao, eBPF Foundation• Liz Rice, Isovalent• Shweta Saraf, Netflix• Chris Wright, RedHat

本訳文についてこの日本語文書は、The State of eBPF の参考訳として、The Linux Foundation Japan が便宜上提供するものです。英語版と翻訳版の間で齟齬または矛盾がある場合（翻訳版の提供の遅滞による場合を含むがこれに限らない）、英語版が優先されます。
この日本語文書を引用する際には、下記の一文を記載してください。

引用：The State of eBPF 参考訳（The Linux Foundation Japan 提供）
翻訳協力：木下兼一

eBPFの現状

19

eBPF Foundation は、オープンソース エコシステムにある eBPF 関連プロジェクトのクロスプラット
フォーム コミュニティを 1 つの独立したフォーラムにまとめます。このファウンデーションは、

Kubernetes、オペレーティング システム カーネル、エンタープライズ コミュニティなどの個別のワーク
ストリーム内で適用される共通の技術ビジョン、用語、セキュリティのベスト プラクティス、および一般
的なロードマップについて共同作業するためのフォーラムを提供します。

2021 年に設立された Linux Foundation Research は、拡大するオープン ソース コラボレーションを調査し、新たな技術トレンド、ベストプラクティス、オープンソース プロジェクトのグローバルな影響に関する洞察を提供しています。プロジェクトのデータベースやネットワークを活用し、定量的・定性 的手法のベストプラクティスに取り組むことで、Linux Foundation Research は、世界中の組織にとって有益なオープンソースの知見を提供するライブラリを構築しています。

Copyright © 2024 The Linux Foundation

本レポートは Creative Commons Attribution-NoDerivatives 4.0

International Public License の下でライセンスされています。
この著作物を引用する場合は、以下のように明記してください。
.

The State of eBPF,” The Linux Foundation, January 2024.