【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)

1.要解决的问题

  为了应对大流量,通常会需要一个高配置的Web服务器。这种使用更高配置的设备来提高处理性能的方法称为“纵向扩展”。

  然而这种方法有一些问题。一般来说,高性能服务器的配置越高,每个单元的处理成本就越高。而且大家都知道服务器的规格是有限制的——它的性能不可能无限制地提高。

2.云模式的说明

  这种用多个相同规格的服务器并行处理高流量的方法称为“横向扩展”。

  你可以创建多个虚拟服务器并使用负载均衡器来给每一个虚拟服务器分配负荷。根据不同的系统,流量可能会在几周、几天甚至几小时内剧增。AWS云可以使你很轻松地动态更改虚拟服务器数量,从而能够配合流量的巨大变化。

3.实施

  你可以结合使用这三种服务:负载均衡服务(ELB)、监控工具(CloudWatch)以及自动横向扩展服务(Auto Scaling),来轻松地构建一个可以根据负荷量实现自动纵向扩展的系统。
(步骤)

  • 建立多个在ELB控制下的并行EC2实例(作为Web/AP服务器)。

  • 创建一个用于启动新的EC2实例的AMI。

  • 给定一个用于触发增减EC2实例个数的条件(指标)。通常会采用EC2实例的CPU平均利用率、网络流量值、会话数目、EBS延迟时间这一类的指标。

  • 使用CloudWatch来监测这些指标,并将其设置为一旦系统满足特定条件就发出警告。

  • 将Auto Scaling设置为当收到警告则增加或减少EC2实例数量。

      当完成以上设置,你就能实现自动扩展。例如,当CPU平均利用率持续5分钟超过70%,系统利用之前准备好的AMI启动2个新的EC2实例。当然,你还能根据环境减少EC2实例的数量。

4.配置

图1

5.好处

  • 保证了服务的连续性,因为EC2实例的数量会根据流量的增加而自动增加。

  • 减少了开支,因为在流量较低时可以减少EC2实例数量。

  • 对于管理员来说,降低了工作量,因为EC2实例的数量能根据流量的变化自动增减。

  • 与纵向扩展相比,处理能力的极限变得非常大,因为可以在ELB的控制下并行地提供所需数量的EC2实例。

6.注意事项

  • 它不能应对剧烈的或快速的流量变化,例如几分钟内流量翻倍或增至三倍。事实上,这是因为在确定需要增加EC2实例数量后还需要一些时间才能完成实际数目的增加。在这种情况下,你需要制定一个EC2实例在特定时间增加的计划。先保证有足够多的额外EC2实例来提前应对负荷,然后再删除不需要的EC2实例。

  • 考虑是否要离开对ELB的如HTTP会话管理、SSL过程等,或者是否需要在控制服务器中进行处理。

  • 由于ELB没有提供根据规格来改变负载分配量的机制,所以被控制的EC2实例类型最好都相同。

  • 为了增加容错性能,你可以跨多个AZ来实现横向扩展。参见多数据中心模式。这时,为了让每一个AZ能有一样的分配,实例增加的数量应该是AZ数目的倍数。

  • 当第一次给新启动的EC2实例进行SSH连接时,在某些情况下,为了在登录时验证主机会交互式地执行指纹验证,这时,像这种从外部使用SSH自动处理的功能将被禁用。

  • 当EC2实例需要更新时,你同样需要更新Auto Scaling中用于启动实例的AMI。

7.其他

  • 关于执行纵向扩展时的文件共享问题,请参见克隆服务器模式、NFS共享模式和NFS复制模式。
  • 关于会话管理请参见状态共享模式。
  • 参见预定横向扩展模式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值