gRPC streaming through ALB using ECS

0

I have a gRPC server running on an ECS cluster, and I've put an ALB in front of it (using protocolVersion gRPC). When trying to connect to the server, I'm able to run a method that uses a unary connection. However, once I try a bidirectional streaming endpoint, the server blocks on trying to receive the stream coming from the client. After the timeout it ends with a "Broken pipe" error. This applications runs without any problems on a docker locally, so it seems that I'm missing some network configuration. All components are in the same VPC, I have two security groups, one for the ALB allowing 443 traffic from everywhere and all outgoing traffic, the second security group is for the ECS cluster and allows all traffic from the ALB, and all outgoing traffic. I have tried to allow all traffic from the ECS cluster to the VPC as well, without any success.

Does anyone have any idea why there is this difference between unary and bidirectional streaming and how to solve this?

  • I've narrowed it down. I can connect do a stream using grpcurl, however, when using our client (both client and server written in rust using tonic/hyper/rustls/...) it blocks. Obviously, our code works running on a local docker and connecting with our client. The issue seems to be caused by some combination of our libraries and the ALB -> ECS setup. Anyone encountered something similar?

답변 없음

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠