亚马逊AWS官方博客
AWS 成本管理与优化之二:理解成本优化
成本优化的思路
什么是成本优化?
定义
成本优化是一种以尽可能低的价格来运行系统进而创造更高的商业价值的能力。
在成本优化的定义里,有两个重要的要素:一个是价值,一个是价格。价值指的是为企业带来的商业利润,价格则是为此而付出的必要成本。在企业用云的整个过程中,不能将这两个要素割裂开来,而是应该将它们放在一起,在全力创造商业价值的同时,利用相关的工具和技术,科学的降低成本(价格)。
所以,这就提醒我们在做成本优化的时候,除了关注价格外,更要关注我们实际的业务在做什么。比如:如果我们的业务是在持续向上的,这个时候一味的要求降低成本和价格,其实是不太科学的,这个时候的成本管理和优化需要我们同时考虑价值和价格。
TAM 在与客户的日常交流中,经常会被问题的问题就是:我该如何降低每月的花费?往往在这个时候,客户关注的问题只是价格本身,TAM 的首要任务不仅仅是要帮助客户理解当前的花费主要在哪些服务,更要细粒度的去分析这些花费所对应的具体操作和云上的资源;其实,要通过这些具体的操作和资源与客户的业务对应起来,分析业务发展的趋势并找到成本优化的切入点,兼顾价格与价值。
作用
成本优化可以让客户用更少的支出来做更多的事情,它不仅仅是节省成本,还包括:
- 成本优化可提高敏捷性和组织应对中断的能力
- 根据需求增加和减少云使用量使组织能够更好地满足客户需求并与业务目标保持一致
- 云中的成本优化可以带来实时节省,这些节省可以用来投资业务并更快地进行创新
因此,成本优化的最佳实践是:客户除了要经常关注账单,更要考虑如何更好的管理、预测和优化云上的支出。
重要性
为什么云上的成本优化如此重要并具有挑战性?公有云按需付费模式是一把双刃剑。公有云按需付费模式带来自由的同时也是有代价的。研究证明,大多数组织都难以应对不断增长的云计算账单。具体的原因有:
- 直接使用资源并下单的是研发人员,不是财务人员
- 云资源的定价相对复杂,不同的云资源定价差别很大
- 预估未来需求困难
- ……
知己知彼,百战不殆
要想实现高效的成本管理,把每一分钱都花在刀刃上,需要深入理解云上的计费模式、成本类型以及常见的成本驱动因素有哪些?只有这样,才能清楚每一笔钱的真正用途,避免浪费。
计费模式
AWS 主要提供以下三种计费模式:
按需计费
按需计费也就是按实际用量付费,这种模式让您可以轻松适应不断变化的业务需求,无需投入过多预算,同时还可提高您对变化的响应能力。 采用按实际使用量付费的模式,您可以根据实际需求而非预测来调整业务,从而降低容量过度预配置或不足的风险。
承诺/预留计费
承诺/预留计费的特点是承诺越多,付费越少。对于有些服务,如 Amazon EC2,Amazon RDS 和 Amazon Lambda 等服务,您可以购买预留实例或者 Savings Plans 来节省成本。与使用等量按需容量相比,使用折扣计划可节省高达 72% 的费用。 购买折扣计划时,承诺时间越长,预付金额越高,享受的折扣就越大。
阶梯计费
阶梯计费的原理是使用越多,单位资源的成本越低,且使用量越大,节省的资金越多。 如对于 S3 之类的服务而言,分级定价意味着使用量越大,为每 GB 支付的费用就越少。 AWS 还为您提供了各种服务采购选项,以帮助满足您的业务需求。
成本类型
AWS 主要包含两种成本类型:使用成本和预置成本。
使用成本
使用成本的原则是服务只有在被使用的时候才会计费,不使用或者停止以后就不再计费。最具代表性的服务是 EC2 实例,其只会在运行时计费,停止或者终止实例以后就不再计费。
预置成本
预置成本的原则是服务按预置的时间来计费 (结合使用量),而无论您是否使用,只要资源没有被删除,就会一直被计费。最具代表的服务是 EBS 存储卷,每一个 EBS 卷从被创建就开始收费,一直到把卷删除才会停止计费。对于有些服务,您可以使用一些自动化的方法在不使用时终止预置资源,或在可能的情况下优先使用 Amazon Lambda 等无服务器服务,以最大限度地降低成本。
成本驱动因素
成本驱动也就是成本来源,尽管还存在其他的成本因素,但在 AWS 中基本的成本驱动因素主要有:计算、存储和数据传输 (出网流量),这些因素根据客户选择的 AWS 产品和定价模式的差异会有所不同。
计算资源
对于计算资源,从启动资源到终止或停止它,您按小时或按秒付费。比如:EC2 的计费逻辑就属于这种情况。
存储资源
对于存储资源,您根据使用量或者预置的量按 GB 付费。比如:S3 按使用量付费,EBS 按预置的量付费。
数据传输
在大多数情况下,入站数据传输或同一区域内部分 AWS 服务和 EC2 实例之间的数据传输是免费的(比如,在同一区域内,通过 Service endpoints 在 Amazon S3, Amazon EBS direct APIs*, Amazon Glacier, Amazon DynamoDB, Amazon SES, Amazon SQS, Amazon Kinesis, Amazon ECR, Amazon SNS, Amazon SimpleDB 和 Amazon EC2 实例之间进行数据传输是免费的)。AWS 中出网流量是费用中比较重要的一块,因此请务必在开始之前验证数据传输速率。出站数据传输会首先进行聚合,然后按出站数据传输费率收费。此费用在月结单上显示为 AWS 数据传出。您传输的数据越多,每 GB 支付的费用就越少,适用于阶梯计费。
建立成本意识
在传统 IT 中,购买硬件及软件资源,需要提前数周或数月考虑。随后是漫长的订购、安装和配置期,然后才准备好使用。漫长的开发周期阻碍了创新和快速响应客户的需求。借助云,工程师可以每天自行购买 IT 资源。每个可以启动资源的工程师都必须对它负责,包括它的成本。作为工程师,必须建立成本意识:
- 在构建系统时,把成本作为一个重要的非功能需求
- 理解 AWS 服务的计费模型(服务不同,计费不同)
- 利用工具优化资源和进行合理的资源预置,确保所需即所用
- 采用合理的购买选项(对于可预测,并且稳定的工作负载,可购买 Savings Plans 等基于承诺的付费模式)
- 可视化成本,责任到人
- 合理评估成本和使用云以后带来的价值
- 创建基于流程的成本意识,以便了解其带来的投资回报率(ROI)
成本优化的模式和途径
在为客户进行成本优化的实际操作过程中,TAM 也会和相关团队合作,利用多种模式和途径来为客户实现成本节省。主要包含以下三部分内容:
商务层面
对于在云上用量持续增大的客户,还可以选择与 AWS 签订企业协议,这是在上云前期最直接有效的成本优化方式。企业协议让客户可以选择定制最适合他们需求的成本节省方案。有关企业协议的更多信息,请联系您的销售代表。
购买方式
对于云中的计算服务(EC2, Lambda)和某些数据存储类服务(RDS, RedShift, DynamoDB, Elasticache, Opensearch),可以通过采用不同的购买方式来实现成本节省的目的。这些购买方式包括:使用 Savings Plans 和预留实例来获取折扣;对于容错性好、灵活和无状态的工作负载,使用 Spot 实例来实现与按需实例相比高达 90% 的成本节省。
技术架构优化
技术架构优化是所有成本优化方案里相对复杂的一种途径。要实现架构优化,需要结合客户实际的业务需求,对客户的当前结构进行评审并提出优化建议。既要满足业务和工作负载的需求,也要尽可能的压低成本支出。为了实现技术架构优化,需要客户与 TAM 及其他 AWS 专家一起,紧密合作,稳步推进,最终实现成本优化的目标。
总结
成本优化的手段和方法有很多,相应的难度和影响也会不同,TAM 会根据客户的具体情况来选择最合适的成本优化方案,通常会遵循如下原则:
- 优先选择复杂度低,对成本优化影响大的方案,比如:从商务层面入手。
- 其次选择复杂度低,对成本优化影响较小的方案,或者复杂度中等,对成本优化影响大的方案,比如:S3 智能分层/存储类型生命周期策略,低利用率资源清理,Savings Plans,预留计划和弹性扩缩容等。
- 最后选择复杂度高的方案,比如:引入 Spot, Serverless, 技术架构优化等。