原点视界创业笔记(25):负载均衡

0 5天 前

老王之前讲过,网站必须要实现集群和负载均衡功能,原因很简单,在aws以及其他大型云服务商那,增加配置付出的成本不是线性的,而是指数增加。原因是很多高大上的配置不仅给你增加CPU,也大幅提升内存以及其他配置,而除了CPU,大多数增加的资源,比如内存,对我们目前这种轻型应用没实际的帮助。

比如我现在使用的是黄金配置双核心CPU 4G内存的lightsail,同等级的服务器在EC2上也有,这个个配置足可以让我用到有收入。但是下一步,如果我想升级配置,我就必须花费4倍的钱,进入到下下个配置,才能把CPU从双核心提升到4核心,因为中间的配置是双核心8G内存,这就显得非常的不划算。

除了成本方面,我还必须考虑到可扩展性,高可用性,横向扩展使用多个双核心4G的服务器,可以保证高并发,享受更多的流量,并且随时根据需要增加/减少服务器节点,这是使用单个高配置服务器所不能比拟的。实现了集群负载均衡,我在未来很久,都不用考虑技术问题,甚至有没有牛人帮我搞技术,也没那么重要,需要的话找懂数据库/PHP常识的朋友帮下忙即可。

前面考虑使用nginx实现负载均衡,简单配置了下,也不难,网上找几个配置文件模型,修改一下,配置一个集群,反向代理到apache即可,不过后面又要添加SSL证书,添加ip hash,再考虑会话,服务器负载,智能分配这些,NND,越来越越复杂了。有什么方法能花点小钱,搞定这些麻烦事的?那必须是amazon的负载均衡器了。

考虑到EC2计费策略模糊,不少人踩过坑,我也实测,感觉lightsail体验更好,尤其是美西俄勒冈区的lightsail,体验十分流畅,所以选择了lightsail的负载均衡器。使用也十分简单,建立一个负载均衡实例,附加到实例上,你需要几个节点,有几个服务器,就附加几次即可。将域名A记录指向负载均衡器,被附加的实例,80端口的请求会自动被拦截代理。当然网站现在都要讲HTTPS,负载均衡器赠送SSL证书,实测使用TLS1.3,验证域名记录即可生成证书,并且自动续费,这真服务体贴,1个月18美金(双核心4G服务器是1个月20美金)的价格贵了点,但是带来了很多方便,尤其是它可以检测节点状态自动分配,自带保持会话功能,我们在节点上不用配置SSL证书,直接配置80端口的http1服务即可。配置简化了很多,同时有负载衡器在前端,服务器隐藏在后端,安全性也更好了。

经过这段时间的折腾,我在测试域名i.im000.com(测试子域名,随时删除)上实现了各种负载均衡方案,最终的架构应该是:

负载均衡器 处理分发前端请求,AWS EFS/S3 存储文件,lightsail/EC2 实例横向扩展,RDS数据库存储数据,这样的架构足够一个大公司的服务用了,可以用到上市………不过考虑到S3要自己写东西,或者用wp插件,EFS和lightsail配合体验也不太好,RDS性价比不高,老王决定自己配置一个共享文件和数据库服务器,就是创建一个共享节点,这个节点当硬盘用,各实例挂载节点NFS到upload目录,然后所有节点访问共享节点的mysql数据库,经实测体验比RDS更好,我也不知道为什么。内网NFS比S3的体验肯定也是更好,备份数据也方便。等我有空弄清楚EC2有什么坑,再考虑要不要转EC2,目前是lightsail更清爽,体验更佳。

搞完又是通宵,不过确定了技术路线,再没什么操心的事了,如果网站有一定的用户和数据量,我就把但节点换成集群,以后志需要增加/删除节点即可,用10个节点,也才200美金,1500一个月的事,如果真用了那么多,赚的钱一定是这点费用的几十倍。如果用三四个节点,这点钱我就当娱乐了。难得有个爱好,以后做成视频,也是非常好的素材。

发表评论