亚马逊AWS官方博客

AWS 成本管理与优化之三:分阶段进行成本优化

成本优化不是一蹴而就的,它是一个不断持续,循环往复的过程。在 TAM 的日常工作中,成本是在与客户的交流中被提及最多的话题,同时也是云上客户最关心的话题之一。协助客户做好成本管理,实现成本优化就成为了 TAM 最重要的工作内容之一。

所谓无规矩不成方圆。任何事情要想取得成功,都必须有一套系统的工作方法和容易执行的工作流程来保驾护航,成本优化也不例外。TAM 在与众多 AWS 客户的长期合作中,总结经验,因地制宜,形成了一套 “工具+实践” 的成本优化方案。这些工具既包含免费提供给 AWS 客户的工具,也包含仅限于 AWS 内部使用的相关工具和服务。在实际的成本管理和优化项目中,TAM 会借助于这些优秀的工具,结合您的成本需求和业务目标,制定成本优化方案并持续的进行实践以实现成本优化的目标。

TAM 将长期的、复杂的成本优化工作根据客户的类型和对成本的需求划分为不同的阶段,在不同的阶段实现不同的成本优化目标,这些阶段层层递进,既可以单独执行,也可以组合执行。无论您的云环境是简单还是复杂,静态还是动态,小型还是大型,都可以实现成本管理和优化的目标。在实际的操作过程中,需要结合您的具体情况来进行选择。

第一阶段:了解账单

每个月初,AWS 客户都会收到一个 PDF 格式的月度账单,月度账单是您理解其成本的第一份资料。这份账单详细记录了您过去一个月的成本支出,可以按服务来查看,也可以按账号来查看。通过月度账单,可以很容易的了解每个服务和账号的花费是多少,初步对成本支出有一个整体的认知。对于简单、静态且小型的云环境,单纯的了解账单金额就能获得一些关于成本优化的见解。随着业务的发展,对于用量越来越大,架构越来越复杂云环境来说,还需要结合以下几个阶段才能制定出完善的成本优化方案。

第二阶段:知晓构成

在这个阶段,TAM 会使用 AWS 账单管理控制台来帮助您分析月度成本,具体到每个服务的的成本都有哪些收费项构成?这些收费项的支出是否符合预期?是否存在可优化的空间?以及如何来进行优化?

示例 1:EC2 成本构成

我们拿 EC2 服务来举例,作为 AWS 最广泛被采用的服务,几乎所有 AWS 客户的账单都能看到它的痕迹。我们首先登录 AWS 控制台,然后再进入账单管理控制台,选择我们要查看的某一个月份的账单,找到名为 Elastic Compute Cloud 的收费条目并打开计费详情页面。在 EC2 的计费详情页面,一般会包含以下计费条目:EC2,NatGateway,EBS 和 Elastic IP 等(每类条目包含若干条使用量描述,以下所有数据经脱敏处理,仅用于示例介绍,具体收费标准请以 AWS 官网为准)。

Amazon Elastic Compute Cloud NatGateway

使用量描述 使用量 金额
$0.056 per GB Data Processed by NAT Gateways 461,380.73 GB USD 25,837.32
$0.056 per NAT Gateway Hour 3,350 Hrs
USD 187.60

Amazon Elastic Compute Cloud running Linux/UNIX

使用量描述 使用量 金额
$1.53 per On Demand Linux c5.9xlarge Instance Hour 256,491.664 Hrs USD 392,432.25
$1.04 per On Demand Linux r5.4xlarge Instance Hour 245,663.11 Hrs
USD 255,489.63
$1.616 per On Demand Linux m5.8xlarge Instance Hour 91,701.551 Hrs USD 148,189.71
r5.4xlarge Linux instance usage in ap-south-3 covered by EC2 Instance Savings Plans 198,275.664 Hrs (USD 303,361.77)
…… …… ……

EBS

使用量描述 使用量 金额
$0.114 per GB-month of General Purpose SSD (gp2) provisioned storage – Asia Pacific (Mumbai) 1,596,943.038 GB-Mo USD 182,051.51
$0.051 per GB-month of Throughput Optimized HDD (st1) provisioned storage – Asia Pacific (Mumbai) 203,771.054 GB-Mo
USD 10,392.32
$0.05 per GB-Month of snapshot data stored – Asia Pacific (Mumbai) 1,834.467 GB-Mo USD 91.72
…… …… ……

结合上述成本构成里的使用量描述、使用量以及金额,TAM 在帮助您理解每条使用量的具体含义以后,更关键的是需要结合您的反馈将使用量跟业务的映射关系建立起来。一方面找到是不尽合理的云资源使用方式并提出可能的优化方向,另一方面跟您一起去判断当前使用量是否符合对应业务的需求和成本预期,最终的目标是在熟知成本构成的基础上找到异常的使用量,并尝试制定出合理的成本优化方案。

第三阶段:分析变化

在第一阶段和第二阶段,一方面,我们对于成本的理解是相对静态的,即看不到历史到现在的变化,也没办法预测未来的成本趋势;另一方面,我们对于成本的变化和异常的发现是相对滞后的,没办法对其做出实时预警。要解决这些问题,需要 TAM 使用内外部的一些工具,并基于长时间的经验积累帮助您去分析成本的变化,提出见解,制定切实可行的成本优化方案。

分析变化主要包含以下内容:第一,将历史到现在的成本变化与您的业务产出对应起来,首先可以判断出过去一段时间内的成本支出是否合理,简单来讲就是在云上的支出是否很好的转化成了业务产出(参考前文所讲的单位成本)。第二,通过采用机器学习算法,结合成本的历史数据,准确的预测未来一段时间内的成本趋势,这对于您提前做好业务和成本的规划至关重要。第三,实时的掌控成本变化,根据这些变化来不断调整业务和使用方式,当成本有异常变化时能及时得到通知并自动采取补救措施,对于节省成本来说起着举足轻重的作用。

在这个阶段,TAM 会借助 AWS 免费提供工具 Cost Explorer 和 CUR 来分析成本变化,这些工具不仅易用,而且由于引入了机器学习,还具有智能预测的功能,对于您来说,掌握了这两个工具,对于大部分的成本分析场景就已经绰绰有余了。

第四阶段:洞察明细

在实际的客户支持过程中,TAM 经常会被问到的问题是:某一笔支出是来自哪些资源?或者某个具体资源的成本是多少?要回答这些问题,就需要我们对成本进行资源粒度的深入分析。为了做好具体的资源和成本的映射分析,TAM 会帮助您去开启 AWS 成本和使用率报告(Cost & Usage Repprt, CUR)并协助分析报告。CUR 包含了您最全面的成本和使用数据集,包含了精细到资源 ID 粒度的账单信息,内容丰富,同时表项众多,为了简化分析,可以集成 Amazon Athena 通过标准 SQL 语言来分析报告数据。

在一个由多部门组成的企业里,往往会有按照部门和项目来分配成本的需求。企业的领导者经常会问:我的哪些业务部门、团队或项目导致了成本上升和使用量增加?AWS 通过引入成本分配标签来满足这些需求,您完全自主的通过标签来定义和管理以什么样的维度来查看用量和成本,然后可以借助 Cost Explorer 或者 CUR 来查看相关维度的成本和用量。每个标签都是由一个自定义的键和一个可选值组成,在所有的资源上打上标签以后,就可以通过标签来轻松的管理、搜索和过滤资源。如果打上了键名为业务部门的标签,就可以通过业务部门来过滤并分组显示每个业务部门的成本和使用量。TAM 在实施大量的成本优化项目之后,一个非常重要的经验终结就是:推荐客户将成本分配标签与财务报告维度保持一致,并标记一切资源。

示例 2:按部门分配成本

上图是一个打了键名为 Department 的标签以后,对成本按照部门来进行分析的展示:左侧的柱状图显示过去三个月的成本,可以按照部门来查看成本趋势;右侧是对前一个的成本按部门划分。通过上面的图表,您可以很容易的了解内部各个部门的云成本支出,有助于您做好下一步的业务及财务规划。

第五阶段:自动化

正如本章开头所写,成本优化是一个不断持续,循环往复的过程。如果所有的工作都需要手工来完成,那必将是一个非常耗时耗力的事情。TAM 在为您量身定做成本优化方案的时候,一个至关重要的目标就是尽可能的将成本优化工作自动化。成本优化的自动化主要体现在:

  • 监控成本和用量,并进行报告和预警。
  • 分析成本和用量,不断的提出成本优化建议和实施方案。
  • 可视化成本和用量,加快成本的分析与洞察。

总结

要完成成本优化的目标,您除了可以利用 AWS 提供的外部工具或者自研工具来实现基本需求以外,还可以引入 TAM 的资源来协助满足更高层次的成本管理和优化需求。TAM有着丰富的成本优化经验,可以有针对性的帮您实施成本优化的自动化方案。

本篇作者

朱修磊

亚马逊云科技技术客户经理,负责企业级客户的架构和成本优化、技术支持等工作,拥有多年的产品研发、技术布道、IT 架构设计和运维经验。