通过NLB转发流量到RDS Custom实例

通过阿里云网络型负载均衡(NLB,Network Load Balancer),可以将访问流量高效地转发至RDS Custom,确保流量的均衡分配。此外,该方案还支持RDS Custom实例与外部公网的连接,有效保护了内部网络的安全性,同时提升了服务的可用性和扩展性。

数据准备

已在目标RDS Custom中成功部署应用服务。本文将以Nginx服务为例进行说明,请在目标RDS Custom中执行以下命令:

yum install -y nginx
systemctl start nginx.service
cd /usr/share/nginx/html/
echo "Hello World ! this is RDS Custom." > index.html

步骤一:创建NLB实例

  1. 登录网络型负载均衡NLB控制台
  2. 在顶部菜单栏中,选择与目标RDS Custom实例相同的区域。

  3. 实例页面,单击创建网络型负载均衡

  4. 网络型负载均衡(按量付费)购买页面,完成以下配置。然后单击立即购买并根据控制台提示完成实例开通。

    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建和管理NLB实例

    配置

    说明

    地域

    选择与目标RDS Custom实例相同的区域。

    实例网络类型

    选择实例网络类型,系统会根据您的选择分配私网或公网服务地址。本文选择私网

    • 私网:每个可用区提供一个私网IP,只能通过阿里云内部网络访问NLB,无法从互联网访问。例如,从同一VPC内的ECS访问NLB。

    • 公网:每个可用区提供一个公网IP和一个私网IP。公网NLB默认通过弹性公网IP(Elastic IP Address,简称EIP)提供公网能力,选择公网将会收取弹性公网IP实例费、带宽或流量费用。

    VPC

    选择与目标RDS Custom实例相同的VPC。

    可用区

    至少选择2个可用区。例如,当RDS Custom实例在上海地域时,可以选择上海 可用区E及该可用区下的交换机,上海 可用区L及该可用区下的交换机。

    协议版本

    选择实例的协议版本。本文选择IPv4

    服务关联角色

    首次创建NLB实例时,需要单击创建服务关联角色,创建一个名称为AliyunServiceRoleForNlb的服务关联角色。系统会为该角色添加名称为AliyunServiceRolePolicyForNlb的权限策略,授予NLB拥有访问其他云产品实例的权限。更多操作,请参见网络型负载均衡NLB系统权限策略参考

    实例名称

    自定义实例名称。

    资源组

    选择所属的资源组。

步骤二:创建NLB服务器组

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 服务器组

  2. 服务器组页面,单击创建服务器组

  3. 创建服务器组对话框中,完成以下配置,然后单击创建

    关键配置信息可参考下表,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建服务器组

    配置

    说明

    服务器组类型

    服务器组挂载的后端服务器类型。本文选择IP类型

    服务器组名称

    输入服务器组名称。

    VPC

    选择与目标RDS Custom实例相同的VPC。

    选择后端协议

    选择一种后端协议。本文选择TCP

    选择调度算法

    选择一种调度算法。本文选择加权轮询

    健康检查

    开启健康检查,健康检查保持默认配置。

  4. 待服务器组创建成功后,单击其实例ID,然后单击后端服务器页签。

  5. 单击添加IP,在添加后端服务器面板,添加RDS Custom实例的私网IP地址,单击下一步

  6. 在配置端口和权重配置向导,配置端口为80,权重默认值为100,然后单击确定

    说明

    当服务器组开启全端口转发后,添加后端服务器时无需指定端口。NLB将按照前端请求端口转发流量至后端服务器。

步骤三:配置监听

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 实例

  2. 实例页面,单击目标实例右侧的创建监听

  3. 负载均衡业务配置向导配置以下参数,然后单击下一步

    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于配置监听的更多操作,请参见添加TCP监听

    参数

    描述

    选择监听协议

    选择监听的协议类型。本文选择TCP

    监听端口

    用来接收请求并向后端服务器进行请求转发的监听端口。本文输入80

    监听名称

    输入自定义监听名称。

    高级配置

    本文保持默认,可单击修改进行设置。

  4. 选择服务器组配置向导,选择IP类型及其下的目标服务器组,查看已添加的后端服务器信息,然后单击下一步

  5. 配置审核配置向导,确认配置信息,然后单击提交

  6. 单击知道了返回监听页签,查看目标监听的健康检查状态列为正常时,表示后端服务器RDS Custom实例可以正常处理NLB实例转发的请求。

步骤四:验证结果

  1. NLB实例详情页,获取NLB实例的DNS 名称

    image

    可通过CNAME解析将自定义域名指向NLB实例的DNS名称,详情请参见添加解析记录

  2. 通过与RDS Custom同一地域、同一VPC下的ECS实例,执行以下telnet命令,验证转发结果。本文将以CentOS 7ECS为例。

    说明

    如果未安装telnet,请执行yum install -y telnet安装telnet。

    telnet <目标地址> <监听端口>
    • 目标地址:NLB实例的DNS名称或RDS Custom的私网IP地址。本文以NLB实例的DNS名称为例。

    • 监听端口:NLB中配置的监听端口,本文以80为例。

    示例:

    telnet nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com 80

    收到如下的回复报文,则表示NLB可以将请求转发至后端服务器。

    Trying 47.116.XXX.XXX...
    Connected to nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com.
    Escape character is '^]'.
  3. 通过curl命令,访问RDS Custom实例中Nginx服务的默认网页。

    curl http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com

    返回结果:

    Hello World ! this is RDS Custom.

(可选)通过公网利用NLB将流量转发至RDS Custom实例

  1. 登录网络型负载均衡NLB控制台

  2. 在顶部菜单栏,选择实例所属的地域。

  3. 实例页面,找到目标私网NLB实例,然后单击实例ID。

  4. 实例详情页签,找到基本信息区域,在网络类型IPv4右侧单击变更网络类型

  5. 变更网络类型对话框中,选择IP类型弹性公网IP

  6. 在列表中的分配弹性公网IP下拉框中选择新购弹性公网IP或指定可用的弹性公网IP,然后单击确定变更

    说明

    列表中的所有可用区都需要分配弹性公网IP。

    选择新购弹性公网IP会在释放NLB实例或者公网变更私网时一并释放,选择已有的EIP会在释放NLB实例或者公网变更私网时被保留。

    您可以通过弹性公网IP管理控制台查看已购EIP的相关参数信息。

  7. 实例详情页签,查看网络类型

    此变更生效大约需要一分钟,在实例详情页签查看IPv4网络类型转变为公网后,代表转换成功。

  8. 验证结果。

    通过浏览器访问http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com,可以正常加载网页,并显示Hello World ! this is RDS Custom.

相关文档