I am looking to use gRPC for microservice communication. The services are deployed on AWS ec2 instances. As I figured out ELB does not really able to balance the load for Http 2.0 traffic. I looked for alternatives and stumbled upon Service mesh. As AWS supports App mesh using envoy proxy for service discovery and load balancing among micro-services, I thought this would be the correct solution to achieve load-balanced communication. However, we are not using containers, I was wondering how we can deploy a proxy in a sidecar pattern to achieve a service mesh? Is there any other way apart from service mesh through which I can have a load-balanced grpc communication between services?
2 Answers
You can acive App Mesh one of these AWS Fargate, Amazon EC2, Amazon ECS, Amazon EKS, and Kubernetes.
App Mesh supports microservice applications that use service discovery naming for their components. To use App Mesh, you must have an existing application running on AWS Fargate, Amazon ECS, Amazon EKS, Kubernetes on AWS, or Amazon EC2.
Prerequisites
App Mesh supports microservice applications that use service discovery naming for their components. To use this getting started guide, you must have a microservice application running on Amazon EC2 instances.
You can further check here
An AppMesh Workshop was just released at ReInvent. It gives examples of using AppMesh for all 3 modes of compute (EC2, ECS and EKS/Kubernetes).
The workshop is here: https://www.appmeshworkshop.com/