公有云提供了很多免费的高级功能,很多中小用户以为自己用不上。实际上稍微研究一下,就能享受很多便利和节省不少成本。

本方案就是利用弹性伸缩(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 以启动配置为模板创建机器,因此我们事先通过启动配置指定地域、机型、镜像。

  1. 登录 弹性伸缩控制台,点击导航条中的【启动配置】。

  2. 选择项目和地域,这里要注意选择 Web 应用 所在的项目和地域。

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

step 3. 为机器创建伸缩组

在弹性伸缩控制台,点击【新建】,按如下填写集群的管理信息:

  • 名称:按需起一个名字。比如这里填“应用服务器集群”

  • 最小伸缩数:集群服务器数量的下限。示例这里填 0 即可。

  • 起始实例数:伸缩组刚创建时,自动创建的机器数量。一般不会刚创建伸缩组就自动创建机器,建议这里填 0。

  • 最大伸缩数:集群服务器数量的上限,这里按需填写。这里以 5 为例,即伸缩组最多有 5 台机器。

  • 启动配置:选择刚才您创建的启动配置。

  • 支持网络:会话服务器的网络环境,一般选“基础网络”即可。

  • 支持可用区:即选择机扩容器落在哪个可用区里,此处按会话服务器所在的可用区勾选即可。

  • 移出策略:选择默认。

  • 负载均衡:选择集群的负载均衡。

最后点击【确定】,完成创建。

step 4. 添加现有机器进伸缩组

  1. 在 控制台点击伸缩组名字,进入管理页,在页面下方点击【添加云主机】。

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

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

step 5. 设置扩缩容策略(重点!)

AS 支持定时扩容或者基于告警动态扩容,也支持您接收扩缩容通知,以及翻看历史扩缩容详情。一切尽在您的掌控中。

  • 先设置一个20:00的定时扩容任务

    注:
    腾讯云的CVM需要1分钟左右创建,如果自定义镜像较大,可能需要更多时间。您可以将执行开始时间提早5分钟。

  • 然后再设置一个24:00的定时缩容任务

至此大功告成!

网站的后台集群变为“1台固定应用服务器+1台高峰时定时创建的应用服务器”。

没加入伸缩组的其他集群机器,大部分时间未充分利用,可以退还掉节约成本。

云服务利用Auto Scaling节省30%成本的更多相关文章

  1. 利用VisualVM监测Azure云服务中的Java应用

    在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...

  2. Python利用Twilio(国际)以及腾讯云服务做一些事情

    短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: www.t ...

  3. Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_152 短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务 ...

  4. frp服务利用云主机实现Windows远程连接

    frp服务利用云主机实现Windows远程连接 1.下载所需要的安装包 https://github.com/fatedier/frp/releases 下载 frp_0.44.0_linux_amd ...

  5. [转]在 Azure 云服务上设计大规模服务的最佳实践

    本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...

  6. 在线公开课 | 5G时代的视频云服务关键技术与实践

    5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...

  7. 云计算 云服务 hadoop

    云:是一种虚拟化的技术,重在资源管理. 云服务是云计算的一种商业模式,有三个层次: Iaas:场外服务器,存储和网络硬件:节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用 Paas ...

  8. 基于AWS的云服务架构最佳实践

    ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...

  9. Microsoft Azure 在北美 TechEd 大会上发布令人振奋的更新,帮助客户开始使用云服务

    云计算因其速度.规模和成本节省等优势而备受众多企业青睐.但企业需帮助,才能以安全可靠的方式使用云,同时还要利用企业的现有投资, 才能实现这些优势.因此,在TechEd 大会上,我们推出了一些新的服务, ...

随机推荐

  1. spring的事物回滚

    //默认spring只能在捕获到runtimeException时才会回滚, throw new RuntimeException("出现runtime异常"); } catch ...

  2. SQL索引工作原理

    SQL 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机保存,当一个8K用完的时候, SQLS指针会自动分配一个8K的空间.这里,每 ...

  3. 啥是ETL、ELT

    ETL就是Extract.Transfrom.Load即抽取.转换.加载三个英文单词首字母的集合.抽取:就是从源系统抽取需要的数据,这些源系统可以是同构也可以是异构的:比如源系统可能是Excel电子表 ...

  4. Rest Web Api Controller 返回JSON格式大小写

    public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Ro ...

  5. 机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别

    1.什么是回归?  是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据. 2.线性回归  于一个一般的线性模型而言,其 ...

  6. 解决: PyInstaller打包后exe文件打开时出现failed to execute script

    def resource_path(self, relative): if hasattr(sys, "_MEIPASS"): return os.path.join(sys._M ...

  7. 为mac编写swift脚本

    代码示例: #!/usr/bin/env xcrun swift print("Hello World") 可以用Sublime Text编写,安装Swift包后有语法着色功能.然 ...

  8. 算法练习4---冒泡排序java版

    冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反 ...

  9. C#中的线程(三)多线程

    C#中的线程(三)多线程   Keywords:C# 线程Source:http://www.albahari.com/threading/Author: Joe AlbahariTranslator ...

  10. 二叉排序树的应用(java)

    package com.tree.find; public class TestSearchBST { private static class BiNode{ int data; BiNode lc ...