App Mesh + GRPC + new server discovery

0

Hi, I'm testing out App Mesh as a potential replacement of current setup with Consul. I have several services communicating over GRPC and there is the usual challenge on how to discover new instances (e.g. ASG scale out).

Currently we have two methods in Prod, one where the servers periodically terminate connections, to allow clients to discover new servers. Another one with GRPC Client side load balancing where we call DNS Consul agent locally to get the list of instances and discover new ones.

With App Mesh (Envoy), how can I do that? Ideally I'm thinking on leveraging xDS APIs for that, but I can't find any doc on how to have my clients connecting to it. Any insights?

Cheers

Nico
asked a year ago618 views
2 Answers
1
Accepted Answer

Thanks Ashish for your answer. Not sure this Github issue really covers the use case I shared, let me clarify. By default GRPC will open X channels / connections to servers, once done, as long as the connections remain alive it won't try to open any new one.

Let's assume the following case:

We have 1 client and 10 servers Client opened connections to the 10 servers and keep them alive as long as the servers exist Then traffic increases and we auto-scale-out to 2 clients and 12 servers. What happens is that the 2 new servers will receive only very little traffic coming only from the new client. Because the initial client still has all its connections opened. First 10 servers will probably dislike the too big load and problems will start.

Browsing the web a bit more the last days, I think I found what I need: https://github.com/aws-samples/aws-cloudmap-grpc-name-resolver This way, GRPC client load balancing will automatically discover the new servers and open new connections accordingly to properly balance the load.

Probably mixed up things talking about xDS in my initial message, how that worked wasn't so clear at time of writing. Thanks

Nico
answered a year ago
0

In case of App Mesh, We are configuring round-robin load balancing and this is not yet configurable in App Mesh API.

This read should really help to get info about how to have my clients connecting to it. https://github.com/aws/aws-app-mesh-roadmap/issues/70

AWS
SUPPORT ENGINEER
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions