如何在阿里云搭建业务生产ECS服务器?

《推蜜》官方互动养成APP,借力《阿里云》从零到壹的演变

Posted by 李牧牧 on January 30, 2017

本文发布于 李牧牧的博客 转载请保留链接 ;)

提示:

阿里云管理操作界面样式总会变化,但思路不会变,如果您登录的操作界面与文章示例图片不太一致,请谅解。

如何选择生产服务器硬件配置?

只要不是运行在服务器的程序或者网络带宽出现问题,通常如果CPU使用率达到90%以上,内存使用率达到95%左右,任何对服务器发出的请求与指令都得不到回应或者非常缓慢,基本可以确定服务器是因为用户访问量太大而顶不住了。依据这种情况我们知道,能不能支撑起用户的访问量,服务器的CPU、内存、带宽起关键作用。

物尽其用,合理分配,越了解需求,成本越低

其实降低成本的方法就是对用户量与业务本身需求的了解情况而定。

业务服务器只是用来做逻辑运算与核心数据返回,不同业务场景的项目要拆分出来(用户资产项目、支付项目、网页项目、商城项目、运营平台项目),每个项目构建不同的业务ECS服务器集群,每个集群对应着单独的SLB负载均衡并配置独立二级域名(app.domain.com、pay.domain.com、h5.domain.com、op.domain.com), 这样做就会从业务上把流量的压力拆分出来。

静态文件(视频、音频、图片、资源文件)依据文件类型分类单独放到OSS分片云储存中,给OSS配置CDN内容分发网络并配置二级域名(cdn.img.domain.com、cdn.video.domain.com、cdn.static.domain.com),这样做就会把资源请求的压力交给云储存设备与全国各地的CDN设备。

数据库配置RDS主服务器与RDS从服务器,ECS集群写数据找主服务器,ECS集群读数据找从服务器,这样做就是让数据库减轻负担。

尽可能的依赖独立的缓存系统,ECS集群能从缓存系统查询绝不走数据库,缓存系统配置好主从关系,写缓存找主缓存系统,读缓存找从缓存系统,使用缓存系统查询数据,不仅速度快了也分担了业务服务器与数据库的压力。

知己知彼,百战不殆

按照以上方式规划好服务后,根据笔者所在企业数据统计,百万注册用户量,日均PV能达到500万,我们依照计算公式得到服务器的并发量为每秒138次并发,两台或两台以上的 1核1G内存 服务器集群完全可以抵御 。

计算公式: 每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量
单台ECS每秒处理并发数=((80%*500*10000)/(24*60*60*40)) / 1 ≈ 138 

如何计算应用服务器的并发量? - 来源 CSDN

兵马未动,粮草先行

按照阿里云ECS服务器提供价格计算器对比,购买新1核1G内存服务器比升级配置要划算,假如用户数增多并发增大,我们继续横向增加38.25元每月的 1核1G内存服务器 就可以了。

每个ECS业务集群服务器一定要配置独立的SLB负载均衡器,负载均衡设置好带宽峰值为1000M。

设备名称 配置 外网带宽/硬盘 价格(月/年)
ECS服务器 1核1G内存 0M外网带宽,默认40G硬盘,非IO优化 38.25/459
ECS服务器 2核2G内存 0M外网带宽,默认40G硬盘,非IO优化 125.28/1509.6

阿里云ECS服务器租赁价格计算器 - 来源 阿里云

如何初始化配置生产服务器?

工欲利其事,必先利其器

租赁阿里云ECS服务器可以预装操作系统,以下是提供选择的操作系统

FreeBSD 、Debian 、CoreOS 、CentOS 、Window Server 、Aliyun Linux

如何为生产服务器选择操作系统版本关键在于

  • 系统维护人员熟悉的稳定版本系统
  • 市面上使用相对较多的系统
  • 社区、文档、工具比较齐全的系统

综上所述笔者选择 CentOS7.2 64位 版本,而且 CentOS7 对 Docker 服务支持较好,方便部署。

约定优于配置

有次笔者在听盛大的运维来公司讲课时讲到:“很多企业的服务器硬盘里,零零散散各种文件散落在各种角落,以至于由于错乱的文件与文件夹层级关系,导致出一些生产事故,所以一定要提前约定好。”,其实不管是服务器硬盘,还是程序代码,约定优于配置真的是简单而又不失灵活性的好方法。

  ***Wrrning***
  Authorised access only
  This system is the property of www.domain.com
  Disconnect IMMEDIATELY if you are not an authorized user!
  Your IP has been IDS records Don't damage any files!

  ***TIPS***
  Application in app folder /app
  Backup in backup folder /backup
  Soft in soft folder /soft
  Log in data folder /data

这是笔者在 /etc/motd 文件中写入的提醒内容

  • 所有应用程序放在 /app
  • 所有备份文件放在 /backup
  • 所有软件文件放在 /soft
  • 所有日志文件放在 /data

日志文件所在的文件夹,每月将日志数据用 Shell 脚本上传到 OSS 分片存储文件夹。

如何使用 Linux Shell 上传文件到 OSS云存储? - 来源 阿里云

优化服务器参数,将更改默认SSH端口号。

如何优化服务器参数提高并发能力? - 来源 博客教主

如何保障生产环境网络安全性?

程序员逻辑代码漏洞、框架代码漏洞、中间件软件漏洞、开源软件漏洞、操作系统漏洞、病毒与木马。入侵服务器的办法千奇百怪,完全保证安全性需要多方面的配合,这里先假设逻辑代码没有问题并且没有使用有漏洞的框架情况下,如何结合阿里云保证服务器网络安全性。

跳板机

  • 按照最低配置租赁一台ECS服务器作为跳板机,然后单独配置。
  • 新建跳板机网络安全组,内外网入口全部掐断,只允许制定IP访问。
  • 与生产机建立SSH Key免密码登录生产机器。
  • 设置用户登录操作日志。

如何记录所有用户登录和操作的详细日志? - 来源 黄杉

与世隔绝

阿里云安全分组分四种情况:外网入口、外网出口、内网入口、内网出口,我们将所有生产机的外网入与内网入口全部掐断,内网入口只允许跳板机安全组网络访问。