云服务利用Auto Scaling节省30%成本
公有云提供了很多免费的高级功能,很多中小用户以为自己用不上。实际上稍微研究一下,就能享受很多便利和节省不少成本。
本方案就是利用弹性伸缩(auto-scaling)减少服务器成本,几乎适合所有集群式部署的网站/APP。设置也非常简单。
业务场景:
如果您的业务满足以下条件,花5分钟配置这个方案,可节省20%-30%成本:
网站使用集群的方式,且集群超过1台以上的服务器;
网站有较长时间的空闲。大部分网站的高峰时间不超过 8 个小时,剩下的 16 个小时的时间,完全可以把闲置的服务器作缩容处理。
本文以某休闲类网站为例,该网站 20:00-24:00 是访问高峰时段。
方案简述
按非高峰时段的负载部署固定资源,可采用包年包月 CVM;
高峰时段的不足部分采用按量计费的CVM。通过定时任务在 20:00 扩容1台,24:00 缩容回去。
新旧方案的对比:

收益
假设原方案需要两台 4核4G 的 CVM,改成一台 4核4G 的 CVM + 每天4个小时临时CVM,能节省30%左右开支。
示例中的小网站每年可以节省1800元:

具体操作:以腾讯云为例(其他云服务商操作相仿)
实例的网站结构比较简单,只有应用服务器一个集群。如果复杂的网站,会有应用服务器集群、前端服务器集群、缓存服务器集群等,每个集群都可进行类似操作,每个集群对应一个伸缩组。

step 1. 创建集群机器的自定义镜像
这步非常简单,基于一台现成的集群机器中制作即可。如有疑问可查看 制作自定义镜像 >>
注:您需要提前部署好镜像中的环境,保证镜像里的应用能随操作系统启动,这样扩容出来的机器就能直接工作,无需人工介入。
step 2. 创建启动配置
扩容时 AS 以启动配置为模板创建机器,因此我们事先通过启动配置指定地域、机型、镜像。
登录 弹性伸缩控制台,点击导航条中的【启动配置】。
选择项目和地域,这里要注意选择 Web 应用 所在的项目和地域。

接下来的操作与购买机器类似,您可跟着指引完成启动配置创建。注意自定义镜像中,指定刚才您创建的镜像。

step 3. 为机器创建伸缩组
在弹性伸缩控制台,点击【新建】,按如下填写集群的管理信息:
名称:按需起一个名字。比如这里填“应用服务器集群”
最小伸缩数:集群服务器数量的下限。示例这里填 0 即可。
起始实例数:伸缩组刚创建时,自动创建的机器数量。一般不会刚创建伸缩组就自动创建机器,建议这里填 0。
最大伸缩数:集群服务器数量的上限,这里按需填写。这里以 5 为例,即伸缩组最多有 5 台机器。
启动配置:选择刚才您创建的启动配置。
支持网络:会话服务器的网络环境,一般选“基础网络”即可。
支持可用区:即选择机扩容器落在哪个可用区里,此处按会话服务器所在的可用区勾选即可。
移出策略:选择默认。
负载均衡:选择集群的负载均衡。

最后点击【确定】,完成创建。
step 4. 添加现有机器进伸缩组
在 控制台点击伸缩组名字,进入管理页,在页面下方点击【添加云主机】。

在弹出的对话框中,选择集群已有的服务器加入伸缩组。如果现在是非高峰时期,集群中未充分利用的服务器可以退还,节约成本。

加入后对服务器设置“免于缩容”,这样在缩容活动中,伸缩组不会选择这台服务器缩容。这样集群中这台机器永远在服务,AS 不会更改它。

step 5. 设置扩缩容策略(重点!)
AS 支持定时扩容或者基于告警动态扩容,也支持您接收扩缩容通知,以及翻看历史扩缩容详情。一切尽在您的掌控中。
先设置一个20:00的定时扩容任务

注:
腾讯云的CVM需要1分钟左右创建,如果自定义镜像较大,可能需要更多时间。您可以将执行开始时间提早5分钟。然后再设置一个24:00的定时缩容任务

至此大功告成!
网站的后台集群变为“1台固定应用服务器+1台高峰时定时创建的应用服务器”。
没加入伸缩组的其他集群机器,大部分时间未充分利用,可以退还掉节约成本。
云服务利用Auto Scaling节省30%成本的更多相关文章
- 利用VisualVM监测Azure云服务中的Java应用
在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...
- Python利用Twilio(国际)以及腾讯云服务做一些事情
短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: www.t ...
- Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_152 短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务 ...
- frp服务利用云主机实现Windows远程连接
frp服务利用云主机实现Windows远程连接 1.下载所需要的安装包 https://github.com/fatedier/frp/releases 下载 frp_0.44.0_linux_amd ...
- [转]在 Azure 云服务上设计大规模服务的最佳实践
本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...
- 在线公开课 | 5G时代的视频云服务关键技术与实践
5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...
- 云计算 云服务 hadoop
云:是一种虚拟化的技术,重在资源管理. 云服务是云计算的一种商业模式,有三个层次: Iaas:场外服务器,存储和网络硬件:节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用 Paas ...
- 基于AWS的云服务架构最佳实践
ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...
- Microsoft Azure 在北美 TechEd 大会上发布令人振奋的更新,帮助客户开始使用云服务
云计算因其速度.规模和成本节省等优势而备受众多企业青睐.但企业需帮助,才能以安全可靠的方式使用云,同时还要利用企业的现有投资, 才能实现这些优势.因此,在TechEd 大会上,我们推出了一些新的服务, ...
随机推荐
- ubuntu安装与卸载.dep软件
一般情况下我们都是使用apt-get install进行软件安装,但是有时候也有可直接install的文件例如.deb. 接下来就记录一下.dep软件的安装与卸载 安装: 直接找到软件,双击就可以进行 ...
- Canvas - Web API
<canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染. Mozi ...
- 最实用的 Linux 命令行使用技巧
我们可能每天都会要使用到很多的 Linux 命令行. 我们也会网络上知晓一些使用它们的小技巧,但是如果我们没有时常来进行练习,就有可能会忘掉怎么去使用它们. 所以我就决定把那些你可能会忘记的小提示和小 ...
- fatal: Could not read from remote repository.
fatal: Could not read from remote repository. Please make sure you have the correct access rightsand ...
- deep learning (六)logistic(逻辑斯蒂)回归中L2范数的应用
zaish上一节讲了线性回归中L2范数的应用,这里继续logistic回归L2范数的应用. 先说一下问题:有一堆二维数据点,这些点的标记有的是1,有的是0.我们的任务就是制作一个分界面区分出来这些点. ...
- url参数的编码解码Demo
为了保证在页面传递数据的安全性,我们通常会对Url传递的参数进行编码解码操作.我们写一个Demo剖析URL编码解码过程. 完整Demo下载地址 1. Url参数如何在服务端进行编码和解码. 1.1 U ...
- C#进阶之路(五):Linq初识
关于LINQ的文章,网上有很多,所以这篇文章我主要是总结下我自己的学习心得. 首先需要先了解的相关技术 1.隐式类型.匿名类型.对象初始化器 1)隐式类型,使用var关键字创建,C#编译器会根据用于初 ...
- css3 flex布局/grid布局
1.CSS3 Flexbox 布局完全指南(图解 Flexbox 布局详细教程) 2.CSS Grid 布局完全指南(图解 Grid 详细教程)
- 试用 Eagle 9.1
试用 Eagle 9.1 有推挤功能 原理图可以设置组装变体. 输出的 CAM 可以自定义,没有 Protel 那么死板. 保存的文件是 xml 文件,可以自由解析.
- 反射ORM 三层(for oracle)
sql server and oracle 不同之处只在于: 1·参数@和: 2·自增和序列 3·oracle使用了存储过程以获得当前插入数据的ID DAL层的ORM using Oracle.Dat ...