Разверните поддерживающее приложение gRPC на AWS, используя ALB
У меня есть два микросервиса, обменивающихся данными с использованием gRPC. Оба являются приложениями-докерами, развернутыми в ECS. Как настроить их для использования AWS ALB? В документации сказано, что ALB поддерживает HTTP/2, однако я вижу только настройки HTTP1. У моего приложения есть один порт gRPC и один API проверки работоспособности на 8080. Как мне настроить это на ALB?
1 ответ
Я не верю, что ты можешь.
ALBs "поддерживают" HTTP2, но только в той степени, в которой они могут принять HTTP2 и демультиплексировать его перед пересылкой по HTTP1.
Вы можете использовать более новый "NLB" AWS, хотя у этого есть другие морщины. Подробнее об этом https://blog.prefab.cloud/blog/grpc-aws-some-gotchas
По состоянию на 30 октября 2020 года это стало возможным, поскольку в ALB наконец-то была добавлена сквозная поддержка HTTP/2.
Объявление об этом: https://aws.amazon.com/about-aws/whats-new/2020/10/application-load-balancers-enable-grpc-workloads-end-to-end-http-2-support/
Просмотрите эти сообщения в блоге, чтобы понять, как настроить его на ECS:
- Использование типа запуска Fargate: https://aws.amazon.com/blogs/opensource/containerize-and-deploy-a-grpc-application-on-aws-fargate/
- Использование типа запуска EC2: https://dev.to/chaitan94/deploying-a-grpc-service-in-ecs-with-the-ec2-launch-type-2aa