使用应用型负载均衡ALB(Application Load Balancer)可以实现gRPC协议的负载均衡,目前gRPC仅支持前端加密和后端明文的形态。本文指导您如何通过配置ALB实例的gRPC服务器组,配置HTTPS监听并打开HTTP2.0开关,同时配置gRPC协议的健康检查,将客户端的gRPC请求通过ALB实例转发到后端协议为gRPC的服务器组。

场景示例

本文以下图场景为例。某公司在华东1(杭州)地域的专有网络VPC(Virtual Private Cloud)内部署了gRPC服务,在VPC中创建了ALB实例和支持gRPC协议的服务器组,配置HTTPS监听并打开HTTP2.0开关,同时配置gRPC协议的健康检查。现想通过ALB实例来实现同地域的客户端gRPC请求访问VPC中部署的gRPC服务。架构图

前提条件

  • 您已经在华东1(杭州)地域创建了VPC,并且在该地域的VPC对应的可用区H和可用区I分别创建了交换机,具体操作,请参见创建专有网络和交换机
  • 您已经购买证书或者上传第三方证书到SSL服务,并绑定域名。关于创建证书,请参见提交证书申请
  • 您已经在VPC中创建了ECS实例,并在ECS实例中部署了gRPC服务,同时在同地域的客户端创建了ECS实例用于发送请求到后端服务器。具体操作,请参见使用向导创建实例
    说明
    • 关于后端服务器ECS部署gRPC服务,具体可参考gRPC官方文档的部署方法。
    • 确保VPC中ECS实例的地域和ALB实例的地域相同,并且VPC中ECS实例与ALB实例属于同一个VPC。
    • 确保VPC中ECS实例选择的可用区在ALB实例的可用区内。

配置步骤

配置步骤

步骤一:创建ALB实例

  1. 登录应用型负载均衡ALB控制台
  2. 实例页面,单击创建应用型负载均衡
  3. 应用型负载均衡(按量付费)购买页面,完成以下配置,然后单击立即购买根据控制台提示完成实例开通。
    配置 说明
    地域 选择实例所属的地域。本文选择华东1(杭州)
    实例网络类型 选择实例的网络类型。本文选择公网
    VPC 选择ALB实例所属的VPC。
    可用区
    1. 选择至少2个或以上的可用区。本文选择杭州 可用区H杭州 可用区I
    2. 分别在所选可用区内选择交换机。本文选择可用区H下的交换机和可用区I下的交换机。
    IP模式 选择实例的IP地址模式。本文选择固定IP
    功能版本(实例费) 选择实例的功能版本。本文选择基础版
    加入共享带宽 选择是否要加入共享带宽。本文选择不加入。
    公网计费方式 公网计费方式默认为按流量计费
    实例名称 输入自定义实例名称。
    资源组 选择云资源所属的资源组。

步骤二:创建服务器组并添加后端服务器

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择后端服务器组所属的地域。本文选择华东1(杭州)地域。
  3. 在左侧导航栏,选择应用型负载均衡 ALB > 服务器组
  4. 服务器组页面,单击创建服务器组
  5. 创建服务器组对话框中,完成以下配置,然后单击创建
    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建服务器组
    配置 说明
    服务器组类型: 选择一种服务器组类型。本文选择服务器类型
    服务器组名称 输入自定义服务器组名称。
    VPC 从VPC下拉列表中选择已创建的VPC,只有该VPC下的服务器可以加入到该服务器组。
    选择后端协议 选择一种后端协议。本文只支持选择gRPC
    选择调度算法 选择一种调度算法。本文选择加权轮询
    请选择资源组 选择归属的资源组。
    开启会话保持 开启或关闭会话保持。本文保持默认值即不开启会话保持。
    配置健康检查 开启或关闭健康检查。本文只支持选择开启健康检查。
    高级配置 开启健康检查后,您可以单击高级配置后面的修改展开更多配置。
    选择并加载健康检查 选择并加载一个健康检查。本文选择自定义健康检查
    健康检查协议 选择健康检查协议类型。本文只支持选择gRPC
    健康检查方法 选择一种健康检查方法。本文默认选择POST
    健康检查端口 选择健康检查服务访问后端时的端口。本文默认选择后端服务器组端口
    健康状态返回码 选择健康检查正常的状态码。本文输入12
  6. 服务器组页面找到目标服务器组,单击其实例ID。
  7. 单击后端服务器页签,然后单击添加后端服务器
  8. 添加后端服务器面板,选择已创建的ECS实例,然后单击下一步
  9. 配置端口和权重配置向导,设置ECS的端口和权重,然后单击确定
    本文端口配置为9100,权重保持默认值100
    说明 ECS配置的端口必须要与部署的gRPC服务设置的端口保持一致。

步骤三:配置监听

  1. 登录应用型负载均衡ALB控制台
  2. 实例页面,找到目标实例,单击实例ID。
  3. 单击监听页签,然后单击创建监听
  4. 配置监听配置向导,完成以下配置,然后单击下一步
    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于配置监听的更多操作,请参见添加HTTPS监听
    配置 说明
    选择负载均衡协议 选择监听的协议类型。本文选择HTTPS
    说明 服务器组设置后端协议为gRPC时,监听协议类型只支持HTTPS。
    监听端口 用来接收请求并向后端服务器进行请求转发的监听端口。本文输入443
    监听名称 输入自定义监听名称。
    高级配置 本文保持默认,可单击修改进行设置。
    启用HTTP2.0 选择是否开启HTTP2.0。本文需开启HTTP2.0。
    说明 服务器组设置后端协议为gRPC时,HTTPS监听必须开启HTTP2.0。
    WAF安全防护 可为监听开启WAF安全防护。本文默认不开启。
  5. 配置SSL证书配置向导,在选择服务器证书下拉列表中选择已创建的服务器SSL证书,其他保持默认值,然后单击下一步
  6. 选择服务器组配置向导,选择服务器类型服务器类型下的后端服务器组,查看后端服务器信息,然后单击下一步
  7. 配置审核配置向导,确认配置信息,然后单击提交
  8. 单击知道了返回监听页签,查看目标监听的健康检查状态列为正常时,表示后端服务器ECS可以正常处理ALB实例转发的请求。正常

步骤四:验证连通性

完成上述操作后,客户端的ECS可以通过ALB访问部署了gRPC服务的后端服务器ECS,以下内容为您展示如何测试客户端和gRPC服务之间的连通性。
  1. 远程登录客户端的ECS。具体操作,请参见ECS远程连接操作指南
  2. 在客户端的ECS中执行以下命令尝试访问VPC中的ECS实例。
    grpcurl -insecure -v [ALB域名]:[监听端口] helloworld.Greeter/SayHello
    收到如下图所示的回复报文,则表示客户端的ECS可以通过ALB访问部署了gRPC服务的后端服务器ECS。测试结果