【エンボイ】

Envoy とは?

最終更新:
💡 入口やサービス間の通信を中継するプロキシ

Lyftで生まれたオープンソースのプロキシ。外部からの入口やサービス間の通信を仲介し、設定に応じて負荷分散・リトライ・TLS・監視などを担う。

📌 このページのポイント
Envoy:サイドカーで中継する例 Pod A サービスA Envoy 通信を中継 Pod B サービスB Envoy 通信を中継 mTLS 設定時 Istiod 設定・証明書の管理 コントロールプレーン xDSで設定を配信
IstioのサイドカーモードでmTLSを設定した例。青い実線はAからBへの通信、橙の破線は設定の配信です。Envoyは外部からの入口にも使えます。
ひよこ ひよこ
Envoyは何をしてくれるの?
ペンギン先生 ペンギン先生
通信を受けて、設定に従って接続先へ中継するプロキシだよ。外部からの入口にも、サービス同士の通信にも使える。負荷分散やリトライ、通信の記録などをアプリの外側で担えるんだ。
ひよこ ひよこ
サイドカーってどう置くの?
ペンギン先生 ペンギン先生
アプリの横で別のプロセスとして動かす配置だよ。Istioのサイドカーモードでは、各サービスにEnvoyを配置して通信を経由させる。Envoyの使い方が全部この配置というわけではないんだ。
ひよこ ひよこ
Istioもプロキシなの?
ペンギン先生 ペンギン先生
Istioはサービスメッシュを構成する仕組みだよ。サイドカーモードではIstiodが設定や証明書を管理し、Envoyが実際の通信を処理する。設定を管理する側と、通信を中継する側を分けて考えるとわかりやすいね。
ひよこ ひよこ
置くだけで全部暗号化される?
ペンギン先生 ペンギン先生
TLSや相互認証を使うmTLSを扱えるけど、証明書や通信ルールなどの設定が必要だよ。負荷分散やリトライも設定と構成に応じて働くので、導入しただけで全ての機能が自動で有効になるとは限らないんだ。
ひよこ ひよこ
xDSだと何でもすぐ変えられるの?
ペンギン先生 ペンギン先生
外部の設定配信APIから、接続先やルートなど対応する設定を更新できるよ。たとえばRDSはHTTPのルート設定を動的に差し替える。更新できる項目や反映には条件があり、静的な設定で運用する選択肢もあるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Envoy」って出てきたら「マイクロサービスの通信を賢く仲介するプロキシ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Envoy」 = 使節・特使
💬 英語のenvoyは使節や代表者を指すよ。製品はLyftで生まれたプロキシで、通信を仲介する役割と結び付けると覚えやすいね。

参考資料

← 用語集にもどる