众所周知,云计算有着弹性扩容、按需付费的特点,这对于小企业或创业公司来说是非常有利的。在业务初期,用户量较少,只需要购买较少的云计算资源便可以将业务系统搭建起来,后面随着用户量逐步攀升,业务量逐步上涨时,再通过不断的扩容云计算资源,平滑升级系统计算能力,满足业务需求,极大的降低了小企业、创业公司建设IT系统的初期成本。本篇文章我们就来介绍一下如何使用负载均将小网站平滑的升级为具有海量处理能力的门户。
通常来讲业务上线初期,用户量非常小,一个小型的网站,只需要一台ecs(云服务器)加一台rds(云数据库)即可满足基本的业务需求,用户通过ecs的公网ip地址直接访问服务即可。但是随着业务量逐渐攀升,一台ecs已无法承载所有的业务流量,这时系统就需要扩容了。众所周知的原因,网站扩容时,如果需要更换ip是比较麻烦的(涉及到备案的问题),因此在系统扩容时,是否平滑的关键就是如何能够做到对外服务的ip地址不变,在以前这是不可能完成的任务,因为要扩展系统的服务能力必然需要使用到负载均衡slb来分发海量的访问请求,而负载均衡的slb的公网ip是随slb购买时随机分配的,用户无法将原有ecs上的ip地址迁移到slb上。但现在,可以了,ecs的公网ip可以转换为弹性公网ip(即eip)了,使得平滑升级变得有可能。参考阅读《阿里云发布固定公网IP升级为弹性公网IP功能》
大致步骤如下图所示
1、首先我们要在ecs上将固定公网ip转为弹性公网ip
2、我们需要在当前ecs所在的vpc下购买一个私网slb实例(注意,一定是私网slb实例,因为eip只支持挂在私网slb实例),可以与ecs同在一个vswitch也可以跨vswitch,当ecs与slb在同一可用区时,将获得最小的访问延迟
3、在当前ecs所在vpc下购买n台ecs(n由用户具体的业务量来评估),建议用户不要讲所有的ecs都放置在同一可用区,这样可以保证在可用区出现灾情时,仍有ecs可以对外提供工作,保证系统的高可用。参考阅读《再聊负载均衡SLB的主备可用区和高可用部署最佳实践》
4、在用户准备好ecs后(购买、镜像部署、服务部署等),将原有的ecs和新购的ecs加入到新购的slb后端,此时用户可以在vpc内部对业务进行简单验证,验证的方法可以是在vpc中购买几台ecs模拟客户端访问私网slb vip,也可以是新购一个eip绑定到该私网slb上,通过另外的ip地址做公网压测访问。注意,至此,由于原有的ecs并没有与eip解绑,因此用户的业务是不会中断的
5、业务验证OK以后,接下来就要做业务切换了,注意,此步骤会有短暂的业务中断。先将原有ecs上的eip解绑,并重新挂在eip到私网slb上,此过程大约5-10秒以内便可以操作完成,具体操作见下图示
图1:eip解绑后,会在vpc-弹性公网IP控制台看到一个可用状态的eip
图2:点击绑定按钮,在弹出对话框选择slb实例,并选择某一个slb实例(只能是vpc类型的slb)
图3:绑定完成后,eip会变成已分配状态
至此,我们已经将仅仅具备一台ecs的小网站,平滑的扩容到具有海量处理能力、高可靠、可弹性扩容的系统了。