【えんぼいぷろきし】

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(使節・特使)。サービス間の通信の使節として仲介するよ
← 用語集にもどる