使用应用型负载均衡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。测试结果