通过阿里云网络型负载均衡(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实例
- 登录网络型负载均衡NLB控制台。
在顶部菜单栏中,选择与目标RDS Custom实例相同的区域。
在实例页面,单击创建网络型负载均衡。
在网络型负载均衡(按量付费)购买页面,完成以下配置。然后单击立即购买并根据控制台提示完成实例开通。
此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建和管理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服务器组
在左侧导航栏,选择
。在服务器组页面,单击创建服务器组。
在创建服务器组对话框中,完成以下配置,然后单击创建。
关键配置信息可参考下表,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建服务器组。
配置
说明
服务器组类型
服务器组挂载的后端服务器类型。本文选择IP类型。
服务器组名称
输入服务器组名称。
VPC
选择与目标RDS Custom实例相同的VPC。
选择后端协议
选择一种后端协议。本文选择TCP。
选择调度算法
选择一种调度算法。本文选择加权轮询。
健康检查
开启健康检查,健康检查保持默认配置。
待服务器组创建成功后,单击其实例ID,然后单击后端服务器页签。
单击添加IP,在添加后端服务器面板,添加RDS Custom实例的私网IP地址,单击下一步。
在配置端口和权重配置向导,配置端口为80,权重默认值为100,然后单击确定。
说明当服务器组开启全端口转发后,添加后端服务器时无需指定端口。NLB将按照前端请求端口转发流量至后端服务器。
步骤三:配置监听
在左侧导航栏,选择 。
在实例页面,单击目标实例右侧的创建监听。
在负载均衡业务配置向导配置以下参数,然后单击下一步。
此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于配置监听的更多操作,请参见添加TCP监听。
参数
描述
选择监听协议
选择监听的协议类型。本文选择TCP。
监听端口
用来接收请求并向后端服务器进行请求转发的监听端口。本文输入80。
监听名称
输入自定义监听名称。
高级配置
本文保持默认,可单击修改进行设置。
在选择服务器组配置向导,选择IP类型及其下的目标服务器组,查看已添加的后端服务器信息,然后单击下一步。
在配置审核配置向导,确认配置信息,然后单击提交。
单击知道了返回监听页签,查看目标监听的健康检查状态列为正常时,表示后端服务器RDS Custom实例可以正常处理NLB实例转发的请求。
步骤四:验证结果
在NLB实例详情页,获取NLB实例的DNS 名称。
可通过CNAME解析将自定义域名指向NLB实例的DNS名称,详情请参见添加解析记录。
通过与RDS Custom同一地域、同一VPC下的ECS实例,执行以下
telnet
命令,验证转发结果。本文将以CentOS 7的ECS为例。说明如果未安装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 '^]'.
通过
curl
命令,访问RDS Custom实例中Nginx服务的默认网页。curl http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com
返回结果:
Hello World ! this is RDS Custom.
(可选)通过公网利用NLB将流量转发至RDS Custom实例
在顶部菜单栏,选择实例所属的地域。
在实例页面,找到目标私网NLB实例,然后单击实例ID。
在实例详情页签,找到基本信息区域,在网络类型的IPv4右侧单击变更网络类型。
在变更网络类型对话框中,选择IP类型为弹性公网IP。
在列表中的分配弹性公网IP下拉框中选择新购弹性公网IP或指定可用的弹性公网IP,然后单击确定变更。
说明列表中的所有可用区都需要分配弹性公网IP。
选择新购弹性公网IP会在释放NLB实例或者公网变更私网时一并释放,选择已有的EIP会在释放NLB实例或者公网变更私网时被保留。
您可以通过弹性公网IP管理控制台查看已购EIP的相关参数信息。
在实例详情页签,查看网络类型。
此变更生效大约需要一分钟,在实例详情页签查看IPv4的网络类型转变为公网后,代表转换成功。
验证结果。
通过浏览器访问
http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com
,可以正常加载网页,并显示Hello World ! this is RDS Custom.
。