利用 亚马逊云科技 拆分成本分配数据提高亚马逊 ECS 和 亚马逊云科技 Batch 的成本可见度
首席产品经理 Shubir Kapoor 为这篇博客做出了贡献
我们很高兴地宣布,亚马逊弹性容器服务 (Amazon ECS) 任务和 亚马逊云科技 Batch 任务的成本数据现已在 亚马逊云科技 成本和使用量报告 (CUR) 中提供。借助 亚马逊云科技 分摊成本分配数据,您可以轻松了解和优化容器化应用程序的成本和使用量,并根据容器化应用程序使用共享计算和内存资源的情况,将应用程序成本分配给各个业务实体。ECS 任务和 亚马逊云科技 Batch 任务的拆分成本分配数据可供所有 亚马逊云科技 商业区域(不包括中国区域)的客户使用,无需支付额外费用。
监控和分配集装箱成本所面临的挑战
当您使用完全托管的容器编排服务
为了优化容器化应用程序的成本并对其进行计费,您需要更精细的成本数据,例如 ECS 任务成本。在拆分成本分配数据可用之前,您可以访问单个可计费资源(例如 EC2 实例)的成本,但无法查看精细资源(例如 ECS 任务和 亚马逊云科技 Batch 任务),因为这些容器任务级资源并未用于计算账单。您可以通过 EC2 成本数据和 CUR 报告中部署在 EC2 上的 ECS 的使用数据来计算 ECS 资源的成本。但是,该过程很复杂,需要大量投资。
使用拆分成本分配数据获取 ECS 任务和 亚马逊云科技 Batch 任务的精细成本可见性
借助分摊成本分配数据,您现在可以根据您的 ECS 任务和 亚马逊云科技 Batch 任务所使用的 vCPU 和内存的实际消耗,在 ECS 任务级别轻松分配 Amazon EC2 实例成本。容器任务级别的精细成本信息使您可以分析容器化应用程序的成本效率,并简化业务实体的退款流程。
启用拆分成本分配数据后,它将扫描整合账单系列中的所有 ECS 任务或 亚马逊云科技 Batch 任务,并采集 ECS 资源的使用情况遥测数据(实际和预留 CPU 和内存),并计算新的 ECS 任务级别指标,例如拆分成本、未使用成本、实际使用量和预留使用量,包括折扣后的净成本指标。如果您出于计费目的标记 ECS 资源或 亚马逊云科技 Batch 任务(有关详细信息,请参阅
开始使用拆分成本分配数据
要启用 “拆分成本分配数据”,您需要完成一个简单的两步选择加入流程。首先,作为付款人账户所有者,您需要从您的 亚马逊云科技 成本管理/亚马逊云科技 Cost Explorer 首选项页面中选择加入 “拆分成本分配数据”。然后,您将从 亚马逊云科技 账单控制台的成本和使用情况报告首选项页面为新的或现有的 CUR 报告启用 “拆分成本分配数据”。启用后,该报告将自动扫描整个整合账单系列(所有集群属于所有地区的成员账户)的 ECS 任务,并开始准备当月的精细成本数据。24 小时后,您的 CUR 报告将准备就绪,其中包含新的 ECS 容器任务级别指标。

图 1。从 “成本管理器” 偏好设置中启用 “拆分成本分配数据”

图 2。为 “拆分成本分配数据” 配置成本和使用情况报告 (CUR)
它是如何工作的
为了帮助您了解成本模型的工作原理,我们将首先解释一些关键术语和计算逻辑。ECS 的拆分成本分配数据收集与 ECS 集群关联的每个 EC2 实例的计算和内存资源的预留和实际使用数据。然后,它根据预留量和已用量之间的较大值计算每个 ECS 任务的分配的 CPU 和内存数据。

图 3。分配的资源是预留利用率和实际利用率中的较大值
由于多个 ECS 任务可以在单个 EC2 实例上运行,因此 ECS 的分割成本分配数据会计算该实例上所有任务的分配的 CPU 和内存。然后,它计算出拆分使用率,即分配给每个 ECS 任务的 vCPU 或内存与 EC2 实例上可用的总体 CPU 或内存的百分比。它还能识别实例上剩余的未使用容量。

图 4。分配给多个 ECS 任务的资源
在所有 ECS 任务之间共享 EC2 实例的成本时,拆分成本分配数据会计算拆分成本的总和,然后根据任务的实例利用率按比例重新分配未使用成本。

图 5。分配的总成本等于拆分成本加上按比例重新分配的未使用成本
示例:在多个 ECS 任务之间分配 EC2 成本
现在,让我们输入一些数字,展示如何在多个 ECS 任务中分配 EC2 实例成本。
在下面,你可以看到一个 ECS 集群在 m7g.2xlarge EC2 实例的单个节点上运行,具有 8 个 vCPU 和 32GB 内存。该集群正在跨两个 ECS 服务运行 4 个 ECS 任务。我们将使用 m7g.2xlarge 的按需定价进行演示。拆分成本分配数据根据 9:1 的比率使用 CPU 和内存的相对单位权重。这是根据Fargate定价得出的 vCPU 与内存的平均相对价格。使用这些权重,它将每 vCPU 小时的成本和每 GB 小时的成本分别计算为 0.029 美元和 0.003 美元。

表 1. m7g.2xlarge EC2 实例
下表列出了 4 个 ECS 任务的 vCPU 和内存预留以及实际使用情况。任务 2 使用的 CPU 和内存多于预留的 CPU 和内存,因为它没有配置限制。如前所述,分割成本分配数据根据预留使用量和实际使用量之间的较大值来计算分配的 vCPU 和内存。在此示例中,我们没有任何未使用的 vCPU,但有 2GB 的未分配内存。

表 2.ECS 集群的保留、使用和分配的数据
拆分成本分配数据计算拆分使用率为 ECS 任务分配的 CPU 或内存与 EC2 实例上可用的总体 CPU 或内存的百分比。它还计算未使用比率,即 ECS 任务分配的 CPU 或内存与 EC2 实例上分配的总体 CPU 或内存的百分比(也就是说,不考虑实例上未分配的 CPU 或内存)。例如,实例上有 2GB 的未分配内存,占实例总内存的 0.063。因此,任务 1 的未使用内存总比率为 0.188/(1-0.063) = 0.200。
任务级别拆分成本是根据拆分使用率乘以每个 vCPU 小时的成本和每 GB 小时的成本计算得出的。如果有未使用的资源(在本例中为未使用的内存容量为 2GB),则未使用的实例成本(0.006 美元)将根据为每个任务计算的未使用比率按比例分配给每个任务。每项任务的总分配成本将是拆分成本和按比例重新分配的未使用成本的总和。在任务级别提供 EC2 成本后,您就可以计算出总的服务级别成本。在此示例中,ECS 服务 1 和 ECS 服务 2 的总分配成本分别为 0.142 美元和 0.188 美元。您还可以使用添加到 ECS 任务中的标签或成本类别汇总成本,从而允许您按所需的业务实体级别计算成本。

表 3 ECS 任务级别的分配成本数据
新的 “成本和使用情况报告” 列是什么?
当拆分成本分配数据计算 ECS 任务级别指标时,您将在您的 CUR 报告中看到新列。例如,“SplitUsage” 代表在指定时间段内分配给 Amazon ECS 任务的 vCPU 或内存的使用量。您可以查看本用户指南,了解新 CUR 列及其定义的完整列表。
总结一下我们的示例,下面是一份演示 CUR 报告。您可以看到新的 CUR 列中将如何显示数据。

表 4.成本和使用情况报告数据示例
结论
ECS 容器任务级别的成本数据的可见性为提高效率和优化成本提供了见解。