【えんぼいぷろきし】

Envoy Proxy とは?

💡 サービスメッシュの「通信エンジン」
📌 このページのポイント
Envoy Proxy(サイドカーパターン) Pod A サービスA Envoy Pod B サービスB Envoy mTLS / ロードバランス / リトライ トラフィック制御 可観測性 セキュリティ
Envoy Proxyのイメージ
ひよこ ひよこ

Nginxと何が違うの?

ペンギン先生 ペンギン先生

Nginxは静的な設定ファイルベース。EnvoyはxDS APIで動的に設定を変更できる。Kubernetesでは Podが頻繁に作成・削除されるから、設定を動的に更新できるのが重要。Envoyマイクロサービス時代のプロキシとして設計されていて、サービスディスカバリヘルスチェックサーキットブレーカーが組み込みだよ

ひよこ ひよこ

Envoyをサイドカーとして使うとどうなる?

ペンギン先生 ペンギン先生

PodEnvoyが入ることで、①全通信のメトリクスレイテンシ、エラー率)を自動取得、②mTLSでサービス間暗号化、③リトライ・タイムアウトポリシーの一括適用、④トラフィック重み付きルーティング。アプリは localhost:port に通信するだけで、Envoyが全てを透過的に処理するんだよ

ひよこ ひよこ

単体で使うこともある?

ペンギン先生 ペンギン先生

あるよ。API Gatewayとして(Envoy Gateway プロジェクト)、エッジプロキシとして(Contour)、ロードバランサーとして使える。Netflix、Slack、Airbnbなどの大規模サービスがフロントプロキシとしてEnvoyを採用している。Istioを使わずEnvoy単体で運用する方がシンプルなケースも多いよ

ひよこ ひよこ

WASM拡張って何?

ペンギン先生 ペンギン先生

EnvoyWebAssembly(WASM)で拡張機能を書ける。C++Envoy本体を改造しなくても、RustやGoで書いたフィルタをWASMにコンパイルしてEnvoyにロードできる。認証ロジックやカスタムメトリクスなど、ビジネス固有の処理をプロキシレイヤーで実行できる。これがEnvoyの拡張性の高さの秘密だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Envoy Proxy」って出てきたら「サービスメッシュで使われる高性能プロキシ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Envoy Proxy」 = 使節プロキシ
💬 Envoy(使節・特使)。サービス間の通信の使節として仲介するよ
← 用語集にもどる