概要 gRPCはHTTP/2プロトコルをベースとしたRPCです。 なのでコネクションが永続化され、その中で複数のストリームがリクエスト・レスポンスを取り扱うため負荷分散に注意する必要があります。 今回はEnvoyというgRPCに向いたproxyを使うことでそれを実現します。 環境 envoy 1.7.0 成果物 今回のソースはこちらにあります。 github.com AWSでの問題点 AWSのロードバランサーは主にCLB、ALB、NLBがあります。 しかしながらそれぞれ NLBはL4のロードバランサであるため、コネクションを分散することはできてもリクエストレベル(ストリーム)で負荷分散ができない CLBのL4モードも同様 ALBはL7だが、HTTP/2の転送がそもそもできない という問題を持つため、gRPCでの負荷分散に向いていません。 そこでgRPCで通信する場合はELBを使わずにEnv
![EnvoyのFrontProxyを用意してgRPCの負荷分散をする - Carpe Diem](https://cdn-ak-scissors.b.st-hatena.com/image/square/3629078d52333cced43e506f38573f84848dfac2/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fq%2Fquoll00%2F20180626%2F20180626161214.png)