Discuz!论坛是全球成熟度最高、覆盖率最大的论坛软件系统之一。用户对论坛的访问可分为高峰期和平峰期,若论坛采用多服务器部署模式且满足高峰时期的负载需求,平峰期必有部分服务器处于闲置状态,增加了不必要的成本,也造成了资源浪费。
弹性伸缩可帮助您解决以上问题。当您在论坛的服务器系统中应用弹性伸缩后,弹性伸缩可以根据您设定的策略,自动地增加或减少服务器的数量,在保证您的网站正常运转的同时节约成本。本实践以搭建可自动伸缩的Discuz!论坛为例,介绍了如何使用弹性伸缩服务搭建一个可自动增加或减少弹性云服务器数量的Web服务。
为了实现创建可自动伸缩的Discuz!论坛,您需要按照表1中的步骤进行网站的搭建,本文重点介绍创建弹性伸缩实现云服务器自动伸缩的过程。当网站的负载增加时云服务器的CPU使用率会增大,负载降低时CPU使用率会降低。我们配置两条监控CPU使用率的告警策略,分别在CPU使用率高于70%时增加一台云服务器,在CPU使用率低于30%时减少一台云服务器,保证Discuz!论坛始终有合适数量的云服务器,实现自动伸缩云服务器的功能。
任务 |
分类 |
子任务描述 |
说明 |
---|---|---|---|
搭建网站 |
申请服务 |
申请虚拟私有云 |
申请为云服务器提供网络服务的虚拟私有云vpc-DISCUZ。 |
购买弹性公网IP |
需申请使云服务器和互联网互通的弹性公网IP。 |
||
创建安全组并添加规则 |
为了保证论坛的网络安全,需要设置安全组对网络访问进行控制。创建的安全组sg-DISCUZ。 |
||
购买弹性云服务器 |
需要购买两台弹性云服务器,云服务器discuz01用于部署论坛数据库,discuz02用于部署论坛业务。购买云服务器discuz01时绑定之前购买的弹性公网IP,discuz02暂不绑定弹性公网IP。 |
||
配置服务器 |
在discuz01上搭建数据库 |
在discuz01上安装MySQL数据库,启动MySQL,设置开机自启动。 |
|
在discuz02上部署网站代码 |
先将discuz01上的弹性公网IP解绑,再绑定至discuz02,在discuz02上部署Web环境和网站代码。 |
||
配置特性 |
释放弹性公网IP |
为了节省弹性公网IP资源,使用负载均衡服务前请先释放discuz02绑定的弹性公网IP。 |
|
创建弹性负载均衡 |
为了在伸缩组中均衡访问网站的流量,需要购买增强型负载均衡监听器elb-DISCUZ。 |
||
制作镜像 |
为了后续增加的云服务器可以自动搭建Web环境和部署网站代码,需要制作discuz02的镜像discuz_centos6.5(40GB),该镜像在创建伸缩配置时作为私有镜像使用。 |
||
创建弹性伸缩 |
- |
创建伸缩配置 |
伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。创建伸缩配置as-config-discuz。 |
创建伸缩组 |
伸缩组是云服务器进行伸缩的基本单位,伸缩活动将会以伸缩组为单位进行。创建弹性伸缩组as-group-discuz。 |
||
创建伸缩策略 |
伸缩策略能够触发伸缩活动,我们配置两条监控CPU使用率的告警策略,在业务负载增加时增加云服务器数量,在业务负载减少时减少云服务器数量。 |
||
手动移入实例 |
为保证discuz02可以和后续移入伸缩组中的服务器共同承载论坛业务,需要将discuz02手动移入伸缩组。 |
||
修改最小实例数 |
最小实例数定义了伸缩组中云服务的最少数量,修改最小实例数为1后,伸缩组至少会保证有一台云服务器。discuz02是手动移入,在实例移除策略中被移出的优先级最低,故修改最小实例数可以保证discuz02在伸缩组中不被移出。 |
||
访问网站 |
验证配置结果 |
验证网站是否可以正常访问 |
获取负载均衡服务的弹性公网IP地址,在浏览器中输入http://弹性公网IP地址/forum.php进行验证。若可以访问则说明各项配置已生效。 |
请您参考《搭建Discuz!论坛网站》完成表1中搭建网站部分的任务。
伸缩配置定义了移入伸缩组的云服务器的规格,为了移入伸缩组的云服务器能自动承载业务,我们使用镜像discuz_centos6.5(40GB),并使伸缩配置中的参数和discuz02保持一致。
参数 |
解释 |
取值样例 |
---|---|---|
配置模板 |
选择“使用新模板”,重新选择云服务器类型、vCPUs、内存、镜像、磁盘等参数信息,创建新的弹性伸缩配置。 |
使用新模板 |
规格 |
可以选择多个规格,避免在伸缩时规格售罄的风险。规格使用优先策略包括“选择优先”和“成本优先”,请根据需要选择。 |
s3.medium.2 s3.large.2 |
镜像 |
为伸缩组中移入的实例提供软件和系统应用配置的模板,选择私有镜像discuz_centos6.5(40GB)。 |
私有镜像 discuz_centos6.5(40GB) |
磁盘 |
为伸缩组中的移入的实例提供存储和存储管理功能。 |
系统盘 普通IO 40GB 数据盘 普通IO 100GB |
安全组 |
安全组是一个逻辑上的分组,用来实现安全组内和组间弹性云服务器的访问控制,加强弹性云服务器的安全保护。选择安全组sg-DISCUZ。 |
sg-DISCUZ |
弹性公网IP |
伸缩组中已经添加了负载均衡后,伸缩配置可以不配置弹性公网IP。系统会自动将加入伸缩组的实例添加到负载均衡上,伸缩组中的实例统一通过负载均衡绑定的弹性公网IP对外提供服务。 |
不使用 |
参数 |
解释 |
取值样例 |
---|---|---|
最大实例数 |
伸缩组中弹性云服务器数量的最大值。 |
50 |
期望实例数 |
伸缩组中期望的云服务器数量,本实践中要将搭建Discuz!论坛的云服务器手动移入,为避免移入前发生伸缩活动,将期望实例数设置为0。 |
0 |
最小实例数 |
伸缩组中弹性云服务器数量的最小值。 |
0 |
虚拟私有云 |
为伸缩组中的实例提供所使用的网络。必须和云服务器discuz02属于同一VPC。 |
VPC-DISCUZ |
子网 |
子网可以方便您管理vpc中的网络。选择中申请虚拟私有云时创建的子网。 |
vpc-test |
负载均衡 |
为伸缩组中的实例均分流量,选择增强型负载均衡器elb-DISCUZ。后端端口配置为需要监听的业务端口,示例中配置为80,权重为1。 |
使用增强型 |
健康检查方式 |
健康检查方式选择“负载均衡健康检查”,负载均衡健康检查是通过系统向后端云服务器发起心跳检查的方式来实现的,推荐使用该方式。 |
负载均衡健康检查 |
为了能实现云服务器的自动伸缩,我们配置两条监控CPU使用率的告警策略,在业务负载上升时增加云服务器数量的策略as-policy-discuz01,在业务负载降低时减少云服务器数量的策略as-policy-discuz02。
为保证discuz02不被伸缩活动移出伸缩组,需修改伸缩组的最小实例数。
若论坛可以正常使用,当伸缩组中的云服务器CPU使用率持续高于70%(在伸缩组的“监控”页签可对监控指标进行观察),伸缩组会自动增加一台云服务器(在伸缩组的“活动历史”页签可对伸缩活动历史进行查看)。当伸缩组中的云服务器CPU使用率持续低于30%,且伸缩组中至少存在两台云服务器时,伸缩组会自动减少一台云服务器,则本次实践是成功的。若不然,请联系技术支持定位伸缩组不能正常进行伸缩活动的原因。
KubeMeet是由云原生基金会 CNCF 与阿里巴巴联合主办的、面向一线开发者的技术交...
虚拟主机 是通过技术处理把一台服务器分割成多个磁盘空间,每个空间都有单独的FT...
本文转载自微信公众号「过往记忆大数据」,作者过往记忆大数据 。转载本文请联系...
1.以后买卫生巾不好意思跟男盆友讲怎么办,说我在给大姨妈买衣服。 2.这世上,...
下面我们详细解释其中涉及到八个方面的指标,分别是:电商总体运营指标、网站流...
云服务器 内存不够了怎么办? 云服务器 内存,是其配置参数之一。内存大小也是影...
【背景说明】 使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和...
在上一章节中已经对数据结构的基本概念有了了解,主要就是数据结构研究的三个方...
C++ 是最重要的编程语言之一。它既可以进行、过程化程序设计,又可以进行使用抽...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...