ソフトウェア
上級

Envoy(エンボイ)

Lyft 由来 / CNCF Graduated 2018 のクラウドネイティブ HTTP / TCP / gRPC プロキシ。L7 ロードバランサ + サービスメッシュ + API ゲートウェイで Istio / Linkerd 内部 + Anthos / EKS / AKS の中核プロキシ。

0 回閲覧
0 いいね
2026/5/9 更新
関連タグ
Software
Envoy
CNCF
Proxy
Lyft
2016

概要

Envoy(エンボイ)は、Lyft(米ライドシェア企業、2012 年創業の Uber 競合)社内で 2015 年に Matt Klein(マット・クライン、当時 Lyft プリンシパルエンジニア、現 Lyft Distinguished Engineer + Solo.io Co-Founder)が開発開始、2016 年 9 月にオープンソース公開、2018 年 11 月に CNCF Graduated プロジェクトに昇格したクラウドネイティブ HTTP / TCP / gRPC プロキシです。

開発の背景は、Lyft が 2014-2016 年にモノリシックアプリケーションをマイクロサービスへ分解する大規模リアーキテクチャを実施した際、(1)既存プロキシ(NGINX / HAProxy)は L4-L7 機能 + 動的設定 + 観測性が不足・(2)サービス間通信のレイテンシ + 信頼性 + 観測性が課題に・(3)動的にリロード可能な設定 + サーキットブレーカー + リトライ + 分散トレース統合が必要、という要件から開発されました。

技術仕様は、(1)実装言語: C++14(モダン C++)・(2)アーキテクチャ: イベントドリブン(libevent)+ ノンブロッキング I/O・(3)プロトコル: HTTP/1.1 / HTTP/2 / HTTP/3 / gRPC / WebSocket / TLS / mTLS・(4)動的設定: xDS API(Envoy Discovery Service、CDS / EDS / LDS / RDS / SDS の 5 種類)・(5)機能: L7 ロードバランサ + サーキットブレーカー + リトライ + タイムアウト + 認証 + ログ + メトリクス + 分散トレース・(6)拡張: Lua スクリプト + WebAssembly(WASM)フィルタ + 100+ 公式フィルタ、です。

xDS API(Envoy Discovery Service)は革新的設計で、Envoy 設定をリアルタイムに API 経由で更新できる仕組みです。CDS(Cluster Discovery Service)・EDS(Endpoint Discovery Service)・LDS(Listener Discovery Service)・RDS(Route Discovery Service)・SDS(Secret Discovery Service)の 5 種類のリソースを動的に管理し、Istio / Linkerd / Cilium / AWS App Mesh / Anthos Service Mesh 等のコントロールプレーンが xDS API 経由で Envoy データプレーンを設定する標準アーキテクチャを確立しました。

主な採用は、(1)Istio(Google + IBM + Lyft、2017、Service Mesh の中核データプレーン)・(2)Linkerd 1.x(2017、後年 Rust ベース proxy に置換)・(3)Anthos Service Mesh(Google Cloud)・(4)AWS App Mesh / EKS Service Connect・(5)Microsoft Azure AKS Service Mesh・(6)Tetrate(エンタプライズ Service Mesh ベンダー、2018 創業)・(7)Solo.io Gloo Mesh / Edge(API Gateway + Service Mesh)・(8)Cilium / Cloudflare Service Mesh・(9)Stripe / Square / Pinterest / Spotify(大規模 Web サービスの内部プロキシ)、などです。

派生プロジェクトとして、(1)Envoy Gateway(2024、Kubernetes Gateway API 実装、Ingress Controller の次世代標準)・(2)Envoy Mobile(iOS / Android クライアント側 Envoy、ネットワーク信頼性向上)・(3)Envoy Functions(Serverless 派生)、などが展開され、現代のクラウドネイティブインフラの中核プロキシとして 2018-2026 年に普及拡大中です。

主な特徴・仕組み

  • 公開: Lyft 2016 年 9 月、CNCF Graduated 2018 年 11 月。
  • 開発主導: Matt Klein(Lyft Distinguished Engineer)。
  • 実装言語: C++14、Apache 2.0 ライセンス。
  • アーキテクチャ: イベントドリブン + ノンブロッキング I/O(libevent)。
  • プロトコル: HTTP/1.1 / 2 / 3 + gRPC + WebSocket + TLS / mTLS。
  • xDS API: CDS / EDS / LDS / RDS / SDS 5 種類の動的設定 API。
  • 機能: L7 LB + サーキットブレーカー + リトライ + 認証 + 観測性。
  • 拡張: Lua + WASM フィルタ + 100+ 公式フィルタ。
  • 主要採用: Istio / Linkerd / Anthos / AWS App Mesh / Azure AKS / Cilium / Cloudflare。
  • 派生: Envoy Gateway(2024)+ Envoy Mobile + Envoy Functions。
  • 大規模採用例: Lyft / Stripe / Square / Pinterest / Spotify / Airbnb / Apple。

Envoy / 競合プロキシ比較

プロキシ提供主な用途
EnvoyLyft / CNCFクラウドネイティブ + サービスメッシュ
NGINXF5(旧 NGINX Inc.)Web + LB + Reverse Proxy
HAProxyHAProxy Technologiesエンタプライズ LB
TraefikTraefik LabsKubernetes Ingress
CaddyCaddy Technologies自動 TLS + シンプル
AWS ALB / NLBAWSクラウド LB

自作PCユーザー向けの注意点

Envoy は通常のコンシューマ自作 PC で必要になる技術ではありませんが、ホビーホームラボ + 自宅 Kubernetes 環境 + マイクロサービス開発の上級者には極めて有用です。Docker docker run envoyproxy/envoy:v1.30.0(2024 最新) + 設定ファイル envoy.yaml で簡単起動可能、シングルバイナリ動作で OS 依存性が極小です。

Kubernetes 環境では Istio / Linkerd 経由で間接的に Envoy が動作することが多く、直接 Envoy 設定を扱う機会は少ないですが、Envoy Gateway(2024、Kubernetes Gateway API 実装)が 2025-2026 年に Ingress Controller の標準として広がる見込みで、業務知識習得に重要です。

関連用語との違い

  • Istio: Service Mesh、Envoy をデータプレーンとして利用。
  • Linkerd: Service Mesh、Envoy 競合 + Rust 製 proxy。
  • NGINX: 古典的 Reverse Proxy、Envoy より単純 + 動的設定弱。
  • HAProxy: エンタプライズ LB、Envoy より静的設定主軸。
  • Envoy Gateway: 2024 年公開、Kubernetes Gateway API 実装。

よくある質問(FAQ)

Q1: Envoy と NGINX どちらを選ぶべきですか? A: クラウドネイティブ + マイクロサービス + 動的設定 → Envoy、伝統的 Web サーバ + 静的設定 + シンプル → NGINX です。Kubernetes 環境では Envoy 系(Istio / Envoy Gateway / Cilium)が主流ですが、レガシー LAMP / Web サイト + シンプル Reverse Proxy では NGINX が依然として優位です。

Q2: xDS API は何が革新的ですか? A: 設定ファイルの再起動なしに、API 経由でリアルタイム更新できる仕組みです。Istio / Linkerd 等のサービスメッシュコントロールプレーンが xDS API 経由で Envoy データプレーンを動的管理することで、デプロイ時の設定変更 + サービス追加削除 + ルーティング変更が瞬時に反映されます。

Q3: 自宅で Envoy を試す方法は? A: Docker docker run -d -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml -p 10000:10000 envoyproxy/envoy:v1.30.0 でシンプル起動可能、設定ファイルで HTTP プロキシ + LB + WASM フィルタ等を学習できます。Kubernetes Helm Chart + Istio Tutorial も豊富で、業務知識習得の優れた選択肢です。

まとめ

  • Lyft 2016 年公開 + CNCF Graduated 2018 のプロキシ
  • C++14 + xDS API + WASM フィルタの革新的設計
  • Istio / Linkerd / Anthos / AWS App Mesh の中核
  • Envoy Gateway 2024 で Kubernetes Gateway 標準化
この記事について
カテゴリーソフトウェア
難易度上級
作成日2026/5/9