作者 | Leon Kuperman
译者 | Sambodhi
策划 | 褚杏娟
Pinterest 由于在某个节日期间对云计算使用量的增加,该公司的云计算账单大大超过了原先的预估。Pinterest 必须计划 1.7 亿美元的预留资源上向亚马逊云科技再额外支付 2000 万美元。
云计算的可扩展性是福也是祸。过度配置的情况确实存在,每到季末甚至会让科技巨头的首席财务官们瞠目结舌。解决云计算对成本长远影响的唯一办法就是对云计算实施成本优化。
可能有人会问:值得在优化云计算成本上花费时间吗?可以先看看通信、娱乐、SaaS 和电子商务领域公司报告的优化收益。
可以看出,做云计算的成本优化是值得的。那应该如何避免云计算费用失控呢
从了解你的云账单开始
查看你的云计算账单时,你很有可能会感到困惑。由于每项服务都有确定的收费标准,所以账单变得又长又复杂,难以理解。能够知道自己的使用情况并给能信心十足地作出决策几乎是不可能的。
这还只是在一个云和一个团队的费用,多个团队或者多云来结算就更麻烦了。
费用分摊就是要显示出谁在利用什么资源,否则无法知道应该是谁来承担这笔费用。但 在 Kubernetes 上运行的动态基础设施中,费用分摊颇具挑战性。
对云计算账单进行核对并分摊费用 ,能够帮助企业更好地预测需求,并且保证有足够的资源,并且避免过度配置。但是,估算将来需要的资源并 不是一件容易的事情。以下可供参考的一系列示例:
上述任务并非一劳永逸,必须定期实施,才能达到理想效果。
在这里了解更多关于如何分析你的云计算账单:《为你的云计算账单而大吃一惊?五个常见问题及解决方法》(Surprised by your cloud bill? 5 common issues & how to deal with them)
选择最佳的计算资源
如果你的应用程序对计算资源依赖性强,那么合适虚拟机的选择会对费用产生很大影响。但是亚马逊云科技有 近 400 种不同的实例。相似的实例类型在不同的云厂商里提供不同的性能,甚至在相同的云计算环境下,更昂贵的实例并不等同于更高的性能。
具体如何选择最佳的计算资源呢?
定义最低要求
确保在所有计算维度包括 CPU(架构、计数、处理器选择)、内存、固态硬盘和网络连接性上都进行此操作。
选择正确的实例类型
你可以从不同的 CPU、内存、存储和网络能力组合中选择,并将其封装到实例类型中,以便对这种能力进行优化。
设置实例的大小
请记住,实例必须有足够的容量来适应工作负载,必要时还需要包含一些选项,如突发事件。
检查不同的定价模式
三大云计算供应商提供了不同的收费标准:按需(即付即用)、保留容量、Spot 实例和专用主机。这些选项都各有利弊。这份指南对它们进行了详细的介绍:《如何为工作选择最佳的虚拟机类型,并节省你的云计算费用》(How to choose the best VM type for the job and save on your cloud bill)。
用 Spot 实例实现更大的节约
向亚马逊云科技和其他大型云计算供应商购买闲置容量是非常明智的,因为 Spot 实例比按需购买要便宜 90%。但这也存在一个问题:供应商有权随时收回这些资源。你必须确定你的应用已经做好了准备,然后才能加入 Spot 行列。
以下是使用 Spot 实例的一些方法:
检查你的工作负载,看其是否为 Spot 实例准备就绪
能否经受中断?完成工作需要多长时间?是否是一项重要的工作负载?这些问题和其他一些问题可以帮助确定 Spot 实例的工作负载。
检查云厂商的服务
查看不太流行的实例是一个好主意,因为它们不太可能被中断,并且可以运行更长的时间。在解决一个实例之前,检查它的中断频率。先检查其中断的频率,然后再决定一个实例。
是时候投标了
设置你要为你所选的 Spot 实例支付的最大数额。请注意,它只会在市场价格符合你的报价 (或更低) 情况下运行。我们的经验是把最高价格设定在按需定价的水平。
分组管理 Spot 实例
通过这种方式,你就能够同时请求多个实例类型,从而提高获取 Spot 实例的几率。为使上述所有功能正常工作,请准备好在配置、设置和维护任务上花费大量时间(除非你决定将其自动化)。
想了解更多关于现货实例的信息?这里有一份完整的指南:《Spot 实例:如何将亚马逊云科技、Azure 和 GCP 的成本降低 90%》(Spot instances: How to reduce AWS, Azure, and GCP costs by 90%)
不要被储蓄计划诱惑
提前一年或三年,以较低的价格预订容量是个有趣的选择。既然你已经确定了无论如何都要用这个服务,那为何不预先购买呢?但是,预先购买只是看上去容易。预测云计算的费用很难。即使是那些有专门负责云计算费用优化的公司也会失手。
在不清楚未来一到三年内团队需要多大容量的情况下,应该如何提前规划?这主要是像预留实例和储蓄计划等产品的问题。
关于预留容量,你需要了解如下内容:
这还只是冰山一角。我们写了一整篇文章深入探讨了预留实例的细节:《亚马逊云科技保留实例和节省计划真的能降低费用吗?》(Do AWS Reserved Instances and Savings Plans really reduce costs?)
选择合适的工具
为控制云计算费用,公司会采用多种费用管理、优化策略和解决方案:
云自动化实现最大节约
从以上几点可以看出,手工成本优化是一个复杂而耗时的过程。
无论工程师的技能水平如何,许多成本优化任务都不适合人工去做。你会发现分配、理解、分析和预测云计算的费用有多难。然后,你需要进行基础架构调整、调查定价计划、启动更多实例并执行各种其他任务来创建具有成本效益的基础架构。
自动化可以使你很容易地做下面的事情:
出于以下原因,自动化解决方案在可以摆脱上述所有任务外,还能带来更多价值:
最重要的是,自动化平台能够实时实施所有这些修改,并且能够把握云计算成本优化的时机。
我们使用 AWS On-Demand 和 Spot 实例的组合来运行在 8 个 CPU 和 16GB 内存上运行的应用程序。然后我们决定用 CAST AI 来检查配置是否需要优化。这个平台推荐迁移到 INF1 的 Spot 实例。不过,这不是一个昂贵的、ML 专门的 GPU 实例吗?事实证明,当时那个实例实际上比我们使用的通用计算实例便宜。如果没有自动化,我们就会失去这个隐藏的宝藏。
从 Zoom、Spotify 或 La Fourche 等中可以看出,降低云成本会对企业利润产生重大影响。这通过云计算费用优化便戳手可得。但是,诸如费用监控和报表之类的标准策略只能让你用巨大的工程师时间成本换取一半的成果。
原文链接:
https://cast.ai/blog/the-ultimate-guide-to-cloud-cost-optimization/