分享几个最佳实践,让你用好云的竞价/SPOT 计算实例来降低成本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wan0573
V2EX    程序员

分享几个最佳实践,让你用好云的竞价/SPOT 计算实例来降低成本

  •  2
     
  •   wan0573 2024-02-18 15:42:23 +08:00 1591 次点击
    这是一个创建于 606 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 应用无状态化: spot 实例本身没有 SLA ,随时会被回收。应用不要将关键元信息持久化到本地磁盘或云盘。无状态的应用可以随时被停止和重新拉起

    • 应用本身做好弹性:如果应用进程的重启会影响业务,那么这种弹性水平是不够的。通过分布式多节点、极速的容灾与恢复做到应用进程重启,业务无感

    • 充分利用 spot 实例的终止信号: 云厂商对 spot 实例被回收的时候,都会提前一小段时间(15 秒到 2 分钟不等)的时间让用户做优雅停止,这个需要好好利用。云本身也有提供一些产品化的能力可以帮助用户方便的处理这个终止信号,例如 asg 生命周期钩子、eks 的容量重平衡能力等。

    • 按需实例与 spot 实例混布:按需和 spot 实例混布可以保证在满足最低服务水平的情况下尽量节约成本。即使最坏情况下所有 spot 实例都同一时刻被回收,仍然可以确保保有一定容量的按需实例

    • spot 实例库存不足时自动回退成按需实例: spot 实例有时候会在某些可用区容量不足导致一直无法新建出 spot 实例,这时候可以利用 asg 这种弹性伸缩组来达成自动回退按需实例的效果

    AutoMQ 是一款开源的云原生 Kafka 解决方案,以上经验都已经在 AutoMQ 中实践并且应用于生产,如果以上内容对大家有帮助,或者想进一步了解 AutoMQ 是如何用好云的,可以给我们开源项目点个赞,加入我们社区群关注第一手信息。关于 spot 实例应用的详细原文可以在 AutoMQ 公众号内查看。

    开源项目 github 地址: https://github.com/AutoMQ/automq-for-kafka

    今天是开年第一天,也预祝各位龙年大吉,事事顺利

    8 条回复    2024-02-20 14:13:47 +08:00
    zhouxinyu
        1
    zhouxinyu  
       2024-02-18 15:57:33 +08:00
    用好 Spot 实例是用云的最佳实践,欢迎大家一起讨论使用 Spot 实例面临的各种问题啊。。。
    ysicing
        2
    ysicing  
       2024-02-18 16:31:13 +08:00
    spot 回收通知时间太短了
    wan0573
        3
    wan0573  
    OP
       2024-02-18 17:19:19 +08:00
    @ysicing 不同云策略不一样,gcp 和 azure 的通知时间确实非常短。如果你用阿里云或者 aws ,预留优雅停止的时间还是比较充足的。aws 有重平衡信号,会大概提前数十分钟就通知,阿里云的话预留 5 分钟时间优雅停止,也比较足够了。当前现状来看,确实不是所有应用都适合 spot 实例的,有些应用没有比较好的弹性能力或者没法做成无状态的话,就不适用了。
    sampeng
        4
    sampeng  
       2024-02-18 18:32:44 +08:00
    spot 我们曾经碰到坑点,反复伸缩。就是弹出来又缩回去。引起集群的极度不稳定。找了 aws 的工程师也没查出个所以然。。
    zhouxinyu
        5
    zhouxinyu  
       2024-02-19 20:24:14 +08:00
    @sampeng 你们是什么场景呀,有混合 on-demand 实例使用吗?
    wan0573
        6
    wan0573  
    OP
       2024-02-20 10:16:50 +08:00
    @sampeng 是不是用了弹性策略?如果是基于 metric 的弹性策略,在集群规模比较小的时候,扩缩策略设置不合理会引发频繁扩缩,我们是在缩的时候额外增加了条件,只有在缩了以后不满足扩的条件才会真正的缩容,避免这种抖动。
    sampeng
        7
    sampeng  
       2024-02-20 10:41:38 +08:00
    @zhouxinyu 一个独立的伸缩组,当时是给大数据做数据分析用,想得挺美好。


    @wan0573 必然不是。横竖就是不定时的机器没了,然后又出来一台。不用弹性伸缩,自己写程序来控制才搞定。。
    wan0573
        8
    wan0573  
    OP
       2024-02-20 14:13:47 +08:00
    @sampeng 如果全部用 spot 实例,集群确实会时不时抖动,这个根据所在 region 和 zone 的机器库存有关。你的情况应该就是机器被回收了,然后为了满足 asg 的容量,会重新创建新的 spot 实例。如果业务没法容忍集群比较多的抖动的话,配合一定比例的 on-demand 实例比较好,兼顾成本与稳定。od 实例还可以套用 saving plan ,更加实惠点。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4207 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:14 PVG 08:14 LAX 17:14 JFK 20:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86