バックエンドサーバは機能毎にマイクロサービスとして分割し、サーバ間通信には gRPC を使ってモダンな感じにしたい。 最初のインフラ構想 まず Node.js アプリケーションをコンテナベースにして、Code Pipeline + CodeBuild + ECR + ECS + Fargate で継続的デプロイ&オートスケールする仕組みを作った。 でもバックエンドの gRPC でサーバ間通信を行う部分で Unavailable, transport is closing というエラーになってしまいうまくいかなかった。 この ALB を使って ECS タスクに対して負荷分散させる構成は gRPC を使わずに REST API でならうまくいった。 HTTP/2 の gRPC は ALB と相性が悪い gRPC は HTTP/2 が必須となり、ALB も HTTP/2 に対応しているが、それは