在滴滴云快速搭建本身的简易服务集群(入门版)

引言

万物互联的时代,各行各业都或多或少的接入线上,做为开发人员,咱们有了小而美的产品或服务方面的想法,就把它她作出来放到线上,让它发展壮大。html

我以滴滴云为例,教你一步一步的搭建本身的服务器集群,包括负载均衡、Web 应用安全防火墙、构建部署等,固然这些都是能够根据你的服务发展拆分的。web

如下小节按部就班,每一节均可以中止,知足你线上服务发展的每一步诉求。算法

名词解释安全

  • 内网互通: 同一帐户下的资源互通,不一样帐户的资源内网彻底隔离。
  • 地域: 指物理的数据中心的地理区域,如北京、广州。不一样地域之间网络彻底隔离,不一样地域之间的云产品默认不能经过内网通讯。
  • 可用区: 是被设计为能够隔离其余可用区的故障的不一样机房位置。如广州一区、广州二区。

更多关于地域和可用区的解释和选择请参考地域与可用区服务器

第一节 搭建简单的服务器

首先,最基本的云服务器资源,在滴滴云对应的是 DC2。网络

下图为云服务器的建立过程,看起来不少选项,但不少使用默认的便可,下面咱们一步一步来建立你的云服务器:app

在这里插入图片描述

  • 选项-付费方式
    一开始选择付费方式,若是只是跟着例子先尝试一把的话能够先买按时长计费的(相比包月能够随时删除,搭建好后也能够转为包月计费),若是已经准备好作什么了,那选择包月付费的能够获得必定的优惠。
  • 选项-可用区
    你但愿你的云服务器放在哪一个地方,选择靠近您客户的地域,可下降网络延迟,提升客户的访问速度,须要注意的是不一样地域的云资源之间内网互不相通。
    这里可能你会疑问为何不放在中部,而广泛在广州、北京这种相对极南靠北的地方?
    机房选址是一个很是复杂的过程,涉及到技术方面、资金方面、投资环境、税收、电力和通讯、基础设施、交通成本、人力成本等,其实就算在中部相对较远的地方也会有延迟问题,对于网络延迟问题,有多机房,CDN 等解决方案,在其余地区布设机房的的状况也在逐渐增多。
  • 选项-服务器类型
    对于服务器类型能够参考云服务器规格族。各个类型都有自身特定场景的优点,根据本身使用场景选择相应的类型,达到适用、够用不浪费就行。这里咱们选择通用型。
  • 选项-镜像
    镜像能够简单的理解为你的服务器的系统。固然你还能够方便的使用一键部署镜像,或其余已有服务器镜像,快速的建立已部署指定应用和环境的服务器。
    下面的云安全和云监控根据须要勾选便可。
    云监控能够时刻可视化观察服务器各项指标的监控图示;主机安全在必定程度上防御服务器免受黑客或病毒侵害。
  • 选项-配置
    配置买多大合适呢?这个问题不用纠结,咱们能够先买低配置的,后面根据须要,好比你的服务作大了,就能够根据业务发展在对应服务器管理界面快速的升级配置,而不用从新建立服务器及其应用和环境。
    这里也提供了 Open API,你能够写脚本根据服务器压力等指标自动的执行升配操做,参考更改 DC2 配置
  • 选项-系统盘
    这里咱们使用高效云盘,[如何选择系统盘]。(https://help.didiyun.com/hc/kb/article/1116241/)
  • 选项-数据盘
    数据盘根据须要配置,也能够后期根据业务须要配置。
  • 选项-网络
    若是只是一台服务器,选择默认的便可,后面第三节会涉及到 VPC 详细的建立及配置。
  • 选项-带宽
    根据服务用户规模选择带宽大小,也能够根据须要选自适合本身的带宽计费方式,固定带宽或按量计费。
    租用带宽会固定分配一个外网 EIP,没有外网 EIP,该服务器不能直接对外提供服务,只能经过 Web 控制台访问;或第2、三节会讲到的同一个 VPC 下的其余服务器间接访问;或 SLB 的外网 EIP 间接访问。
    后面咱们要建立带负载均衡 SLB 的服务集群,所以该项能够不勾选而经过 SLB 的外网 EIP 访问。
  • 选项-安全组
    这里能够先使用默认的,第三节会涉及到安全组详细的建立及配置。
    安全组能够理解为防火墙组,就是管理你的服务器的一套防御墙规则的分组。这里使用的是白名单规则,不在规则内的没法访问。好比默认规则里面添加了 [入方向->TCP->80 端口] 则外网才能够访问你的服务器的 80 端口的应用服务。
  • 选项-登陆方式
    推荐添加 SSH key,方便后面免密登陆服务器操做。
  • 选项-包月时长
    根据须要和当时活动选择。
  • 选项-自动续费
    按时长没有此选项,保持帐户充足余额便可,包月的最好勾选自动续费,防止资源到期忘了续期被停服。
  • 选项-数量和名称
    建立集群的时候能够批量建立服务器及配置,名称回以你输入的名称为前缀自动序号叠加。
  • 选项-添加标签
    对资源的分组标记管理,为便于管理能够添加多个。好比咱们接下来建立的 app1 集群标签 cluster:app1

好了点击确认,咱们的服务器建立完后,若是选择了带宽会分配外网 EIP,经过外网 EIP 用 SSH 远程登进去就能够自由的开始你的操做了。负载均衡

关于其余使用说明能够参考云服务器使用教程-Linuxssh

第二节 搭建简易的服务器集群

首先来看下咱们稍后要搭建的简易服务器集群怎么提供服务的,以下图:svg

在这里插入图片描述

如上图,咱们涉及前面提到的专有网络 VPC,安全组 SG,负载均衡 SLB,及服务器 DC2,从图中能够看到全部资源在同一个 VPC 网段内,由于不一样 VPC 的机器之间网络不通,这样就造成了 cluster:app1 这个集群的私有网络。

从左边开始,首先是配置有公网 EIP 的 SLB,能够经过外网访问这个 IP 下的 SLB 服务,SLB 按必定的均衡规则将请求转发到集群的某一台服务器 DC2,服务器收到请求后再将请求响应给对应请求者,完成一次服务。

这个中间的 DC2 .22.26 服务器是集群的子节点(只有内网 IP,不用购置带宽),并配置同一安全组,不让外界随意访问服务器上的应用。这里只是示意,能够根据须要自定义动态扩展或缩减集群服务器数量。

右边还有一个 Deploy DC2 用来给开发人员经过外网部署代码到集群服务器的跳板机。这里咱们先使用默认的 VPC 和安全组 SG 建立集群涉及的全部资源:DC二、SLB等,下一节再讲 VPC 和 SG 等的自定义配置。

第一步 建立集群所须要的云服务器 DC2

按第一节中的步骤建立 3 台服务器,分别为 DC2.2二、DC2.2六、DeployDC2,前两个做为集群服务器,不用购置外网 EIP 即带宽选项,DeployDC2 做为跳板机须要外网 EIP,其余 VPC 和安全组使用默认便可。

这里先建立 DeployDC2,经过对应的外网 EIP SSH 登陆到该机器后生成该机器的 SSH key,而后在用该机器的 public ssh key 去建立集群的服务器,这样后面就能够经过 DeployDC2 免密操做集群的机器了。

第二步 配置 SLB 服务

负载均衡(Server Load Balancer)是对多台云服务器 DC2 进行流量分发的负载均衡服务。

负载均衡器经过设置虚拟服务地址,将位于同一机房的多台 DC2 实例虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,未来自客户端的网络请求分发到云服务器池中,以此来扩展应用系统对外的服务能力,并消除单点故障的影响进而提高服务系统的可用性。详情参考负载均衡产品简介

在这里插入图片描述

  • 选项-地域
    和服务器同样,子网也有特定的地域供选择,同一集群咱们保持全部资源的地域一致。
  • 选项-付费方式
    同 DC2。
  • 选项-设置名称
    自定义,方便识别管理便可。
  • 选项-网络
    整个集群须要在同一 VPC 专有网络下,这节配置的资源都使用默认便可。
  • 选项-带宽
    若不勾选,负载均衡仅提供滴滴云私网 IP 地址,只能经过滴滴云内部网络访问该负载均衡,Internet 用户没法访问,目前只支持公网负载均衡。
    从上面集群的结构图中也能够看到,SLB 的公网 EIP 是咱们将要搭建的集群的入口,因此勾选并选择合适的带宽。这里的带宽也支持后续弹性伸缩的,因此选择默认的便可,后面根据业务须要动态伸缩。
  • 选项-设置监听
    负载均衡负责接收链接请求,而后根据均衡算法定义的转发策略将请求流量分发至云服务器。
    目前滴滴云的 SLB 是创建在 L4 上的,好比咱们配置监听 TCP 的 80 端口,均衡算法选择加权轮询,而后在选择添加服务器资源的时候给上面建立 DC2.22 和 DC2.26 都是 50% 的权重,用户从 SLB 的公网 EIP 过来的请求理论上将依次交替请求到 DC2.22 和 DC2.26 服务器,达到均衡负载的能力。
    建立完成后也能够方便的添加监听,或者在指定监听下面增减服务器资源。

第三步 经过 DeployDC2 部署代码到集群

经过云服务器 DeployDC2 对应的 EIP,在 Terminal 中 ssh dc2-user@DeployDC2 的 EIP 登陆到 DeployDC2 服务器,而后在经过当前服务器 SSH 使用 DC2.22 或 DC2.26 的内网 IP 分别登陆到集群的两个机器上进行操做。

为了方便,你还能够在 DeployDC2 上编写脚本或者编写一个 Web 部署界面来操做上线部署,回滚等。

第三节 简易搭建安全的服务器集群

以下图,除了前两节中出现的 VPC 和安全组 SG 会在这里看到详细的配置外,还会讲到 HTTPS 的 CA 证书,Web 应用程序防火墙,与自动化构建结合部署集群。后面这些不是必须的,但在安全和便利上收益是很大的。

在这里插入图片描述

第一步 配置 VPC

这里咱们须要搭建一套服务器集群,会涉及到 VPC 配置(Virtual Private Cloud)提供用户安全、隔离、IP 地址可自定义配置的网络环境。

您能够彻底掌控本身的专有网络,包括申请弹性公网 IP、建立子网、设置地址范围、子网段、设置安全组策略,部署云服务器、负载均衡等云服务资源,相似于利用 VPC 搭建你不一样服务的内网环境。

VPC 底层进行了网络隔离,确保不一样 VPC 之间网络流量不可见。 VPC 内部网络资源在隧道内部一跳便可到达目标资源,减小网络传输过程当中可能出现的未知隐患。此外,VPC 内提供 IP 级别安全组,能够指定对虚拟机资源进行网络安全限制,包括针对协议,端口,进出双向限制,确保 VPC 内部安全。详情参考专有网络 VPC

在这里插入图片描述

  • 选项-地域
    和服务器同样,VPC 也有特定的地域供选择,同一集群咱们选择全部资源的地域保持一致,不一样集群也能够经过一些技术使其网络互通,好比:
    1. 使用 EIP,可让 VPC 内一个 IP 与公网链接
    2. 使用 VPC 对等连接,可让 VPC 之间相互打通
    3. 使用 VPN 或专线连通,VPC 能够与用户数据中心链接
    4. … …
  • 选项-名称
    按规则自定义便可。
  • 选项-VPC网段
    这里提供了为私有网络预留的三个 IP 网段 10.0.0.0/八、172.16.0.0.0/十二、192.168.0.0/16, 包含可用的 IP 数依次减小,根据你的集群中服务器等资源的使用场景和规模选择合适够用的 IP 段便可。
  • 选项-子网名称
    按规则自定义便可。
  • 选项-子网可用区
    这里须要和当前集群中的服务器的可用区保持一致,同一应用服务可在不一样可用区部署互做灾备。
  • 选项-子网网段
    VPC 子网网段是 VPC 网段下的子集,能够为不一样的应用服务集群配置不一样的子网网段,以便批量网络管理。

建立好后 VPC 及子网后,咱们来建立集群中的服务器,建立过程同前面小节中的 DC2 建立过程,不一样的是在 选项-网络 这一步选择这里建立的 VPC 及对应子网。固然在 VPC 的管理列表里面也有从对应子网直接以此建立 DC2 的快捷功能。

同理,SLB 的建立在选择 VPC 及子网的时候选择这里建立的同一 VPC 及子网便可。

其余详情参考 VPC 使用教程

第二步 配置应用安全组

安全组规则采用的是白名单方式,容许规则外的流量都会被禁止,滴滴云默认提供了一个基础的安全组,里面配置了基本端口的规则,好比 22,80 等,若是理解并肯定不须要的规则能够修改或删除,或者不使用默认的安全组。

一个安全组对应多个规则,每一个云服务器资源上能够叠加多个安全组,这样有便于你分类管理。详情能够参考安全组使用教程

在这里插入图片描述

  • 选项-地域
    选择你的 VPC 所在的地域。
  • 选项-名称
    自定义便可。
  • 选项-描述
    好比某一服务须要开启一批端口号,为了后面服用,加一个描述便于区别,自定义便可。
  • 选项-VPC
    选择与集群服务器在同一个地域的 VPC。
  • 选项-添加安全组规则
    这里使用的是白名单形式,不指定则没法经过只应用该安全组的云服务器访问外部资源,也不能经过外网访问该云服务器上的服务。非必填项,能够建立后在添加配置。
  • 选项-应用到 DC2
    选择同一 VPC 地域的云服务器 DC2,非必填项,能够建立后在添加配置,也能够在 DC2 的操做页面配置改安全组。

第三步 配置 Web 应用防火墙 WAF

开通 WAF

以下图根据须要按步骤操做,开通后能够配置多个不一样域名:

在这里插入图片描述

配置添加域名

在这里插入图片描述

  • 选项-填写域名
    填写你须要保护的站点的域名,例如:www.example.com
  • 选项-协议
    你的站点使用的协议是 HTTP 仍是 HTTPS,根据须要选择,若是是 HTTPS 的须要配置对应域名的 HTTPS 认证证书。我的站点的话网上提供了一些免费的证书获取方式,企业的话能够在滴滴云上购置证书
  • 选项-源站IP
    这里选择使用 SLB 的外网 EIP 。便可

配置完成后,咱们在 WAF 列表找到对应域名项,复制 CNAME ,而后去购买域名的商家管理页面,将你的域名使用 CNAME 解析方式解析到刚才复制的 CNAME 。

好了,如今总算把本节开头的集群结构图上涉及的云资源配置完了。