弹性伸缩的网站部署实践
资源准备
虚拟私有云准备
步骤 1 登录华为云,选择产品>网络>虚拟私有云。
步骤 2 单击访问控制台。
步骤 3 单击创建虚拟私有云。
步骤 4 更改虚拟私有云名称为 vpc-as,创建两个子网,子网名称分别为 subnet-web 和 subnet-db,其它保存默认。单击立即创建。
步骤 5 单击返回虚拟私有云列表。
步骤 6 查看已经创建成功的 VPC 的网络拓扑图,可以查看到 VPC 内有两个子网。
安全组准备
设置数据库的安全组
步骤 1 返回华为云网络控制台,单击访问控制。
步骤 2 单击创建安全组。输入安全组的名称 sg-db 后确认。
步骤 3 进入已创建的安全组,单击入方向规则,然后单击快速添加规则。添加 22 和 3306 端 口后单击确定。
设置网络安全组
步骤 4 单击左上角的<按钮返回安全组页面。
步骤 5 单击创建安全组。
步骤 6 输入安全组的名称 sg-web,单击确定。
步骤 7 单击入方向规则。放通 80 和 8080 端口。
搭建论坛
数据库搭建
步骤 1 选择服务列表>计算>弹性云服务器 ECS。
步骤 2 单击购买弹性云服务器,用于搭建数据库。
步骤 3 配置 ECS-MySQL 参数,然后单击立即购买。
步骤 4 确认参数,单击提交。
步骤 5 等待 ECS-MySQL 状态为运行中。
步骤 6 单击远程登录,打开 CloudShell 控制台。
步骤 7 输入用户名和密码:root/Huawei123!。
执行以下命令,防止超时退出。
TMOUT=0
步骤 8 输入以下指令,下载 mysql 源安装包。
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
步骤 9 输入以下指令,安装 mysql 源。
yum localinstall mysql57-community-release-el7-8.noarch.rpm
步骤 10 输入以下指令,检查 mysql 源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
步骤 11 输入以下指令,安装 MySQL。(安装过程需 5-10min,跟 ECS 使用带宽有关。)
yum install mysql-community-server
步骤 12 输入以下指令,启动 MySQL 服务。
systemctl start mysqld
步骤 13 输入以下指令,查看 MySQL 启动状态。
systemctl status mysqld
步骤 14 输入以下指令,配置 Mysql 开机启动。
systemctl enable mysqld
systemctl daemon-reload
步骤 15 查看 root 并记录默认密码,用于后续登陆,例如:p/s.eCsFs8,j。
grep 'temporary password' /var/log/mysqld.log
步骤 16 输入以下指令,登录 MySQL。
mysql -u root -p
步骤 17 输入以下命令,修改 MySQL root 的密码为 Huawei123!
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei123!';
步骤 18 输入以下命令,将 MySQL 切换到 mysql 数据库表。
use mysql;
步骤 19 输入以下命令,设置任意主机可以通过 root 登录。
update user set host = '%' where user = 'root';
步骤 20 输入以下命令,查看信息配置是否正确。
select host,user from user;
步骤 21 输入以下命令,刷新权限,保证配置立即生效。
flush privileges;
网站搭建
步骤 1 返回华为云云服务器控制台。单击购买弹性云服务器。用于搭建 discuz 网站。
步骤 2 填写弹性云服务器购买参数后,单击立即购买。
步骤 3 确认购买信息,单击提交。
步骤 4 单击返回弹性云服务器列表。等待 ECS-web001 状态为运行中后,单击远程登录。
步骤 5 在弹出的 CloudShell 的窗口,输入用户名和密码。
步骤 6 执行以下命令,安装 Apache 服务器、PHPFastCGI 管理器。
yum install -y httpd php php-fpm php-server php-mysql
步骤 7 分别执行以下命令,启动 httpd 和 php-fpm 服务。
systemctl start httpd
systemctl start php-fpm
步骤 8 分别执行以下命令,配置服务开机启动。
systemctl enable httpd
systemctl enable php-fpm
步骤 9 浏览器中输入 http://ECS 的弹性 IP 地址 ,即可访问服务器的默认主页。
步骤 10 执行以下命令,下载部署 Discuz 的代码压缩包。
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
步骤 11 分别执行以下命令,解压 Discuz 部署代码压缩包,并进行查看。
unzip Discuz_X3.2_SC_UTF8.zip
ls
步骤 12 执行以下命令,把解压后的 upload 文件夹下的所有文件复制到/var/www/html/。
cp -r upload/* /var/www/html/
步骤 13 执行以下命令,给 html 文件及子文件赋权限。
chmod -R 777 /var/www/html
步骤 14 执行以下命令,重启 Apache 服务
systemctl restart httpd
步骤 15 在浏览器里输入地址 http://弹性 IP 地址/install 进入安装界面,单击“我同意”。
步骤 16 确认检查页面选项无问题,单击下一步。
步骤 17 选择“全新安装”,单击“下一步”。
步骤 18 输入数据库连接参数,单击“下一步”。
步骤 19 安装成功后,单击登录。
创建私有镜像
步骤 1 返回华为云云服务器控制台,选择已经搭建好 discuz 网站的 ECS-web001,进行关机 操作。
步骤 2 关机后进入 ECS-web001 详情页,单击弹性公网 IP,完成解绑 EIP。
步骤 3 返回云服务器控制台。选择已关机的 ECS-web001,单击“更多”,选择镜像/磁盘 ->创建镜像。
步骤 4 选择镜像源为系统盘镜像>云服务器>ECS-web001。
步骤 5 输入镜像的名称为 image-discuz。
步骤 6 勾选我已阅读,单击提交申请。
步骤 7 单击返回镜像列表。
步骤 8 等待镜像状态为正常
ELB 创建和配置
步骤 1 返回华为云控制台,单击服务列表>网络>弹性负载均衡 ELB。
步骤 2 单击购买共享型负载均衡。
步骤 3 填写以下 ELB 参数,单击立即购买。
步骤 4 点击提交。
步骤 5 单击返回弹性负载均衡列表。单击 ELB 实例名称:elb-as。
步骤 6 单击监听器。
步骤 7 单击添加监听器。
步骤 8 参考下图片修改监听器名称和端口,单击下一步。
步骤 9 参考下图进行配置后端服务器组,单击完成。
弹性伸缩创建与配置
步骤 1 返回华为云云服务器控制台,单击服务列表>计算>弹性伸缩。
步骤 2 点击右上角的“创建伸缩配置”。
步骤 3 单击创建弹性伸缩组。
步骤 4 参照下图配置服务选项参数,然后点击“立即创建”。
步骤 5 单击添加伸缩策略:as-pllicy-add,单击确定。
步骤 6 单击添加伸缩策略:as-policy-delete,单击确定。
步骤 7 策略如下所示。
步骤 8 单击伸缩组名称,查看伸缩组目前的实例数量和状态。
步骤 9 单击服务列表>网络>弹性负载均衡 ELB。
步骤 10 单击 ELB 实例名称:elb-as。
步骤 11 单击后端服务器组。
步骤 12 单击添加。
步骤 13 将 ECS-web001 开机后添加到后端服务器组,业务端口设置为 80,单击确定(若 ECS-web001 显示异常,需根据设置的监听时间等待一段时间,其状态会变为正 常)。
步骤 14 查看 ELB 实例的基本信息中的 EIP,浏览器中输入 EIP:8080 端口,查看论坛能否正常 打开。
弹性触发模拟
步骤 1 返回华为云控制台,单击服务列表>计算>弹性云服务器 ECS。
步骤 2 选择任意一台 as-config-discuz 的弹性云服务器,单击远程登录。
步骤 3 在弹出的 VNC 窗口中,输入用户名和密码。
步骤 4 执行以下命令将 CPU 使用率提升至 100%,然后查看 AS 实例数。(CPU 提升到 100%需等待一段时间,实验中可点击“立即执行”即可观察实验结果。)
for i in `seq 1 10`; do dd if=/dev/zero of=/dev/null & done
步骤 5 查看伸缩的活动历史。