利用 亚马逊云科技 拆分成本分配数据提高亚马逊 ECS 和 亚马逊云科技 Batch 的成本可见度

作者: 王 博文 | 202 3

首席产品经理 Shubir Kapoor 为这篇博客做出了贡献

我们很高兴地宣布,亚马逊弹性容器服务 (Amazon ECS) 任务和 亚马逊云科技 Batch 任务的成本数据现已在 亚马逊云科技 成本和使用量报告 (CUR) 中提供。借助 亚马逊云科技 分摊成本分配数据,您可以轻松了解和优化容器化应用程序的成本和使用量,并根据容器化应用程序使用共享计算和内存资源的情况,将应用程序成本分配给各个业务实体。ECS 任务和 亚马逊云科技 Batch 任务的拆分成本分配数据可供所有 亚马逊云科技 商业区域(不包括中国区域)的客户使用,无需支付额外费用。

监控和分配集装箱成本所面临的挑战

当您使用完全托管的容器编排服务 Amazon ECS 实现应用程序现代化时,您可以通过整合和最大化资源利用率来部署和扩展应用程序,从而提高效率。 您可以使用 亚马逊云科技 Batch 亚马逊弹性计算云 (Amazon EC2) 亚马逊云科技 Far gate 环境中计划和执行容器化任务,这些环境根据您提交的任务的数量和要求动态预置和扩展计算资源。 但是,共享计算资源带来的效率使得在容器任务级别上分配应用程序成本变得困难。此外,容器化平台的动态性质使得理解和分配容器成本变得更加复杂(例如,单个容器使用的资源可能超过预留的 CPU;内存容量或工作负载可以跨实例/可用区/区域重新调度)。

为了优化容器化应用程序的成本并对其进行计费,您需要更精细的成本数据,例如 ECS 任务成本。在拆分成本分配数据可用之前,您可以访问单个可计费资源(例如 EC2 实例)的成本,但无法查看精细资源(例如 ECS 任务和 亚马逊云科技 Batch 任务),因为这些容器任务级资源并未用于计算账单。您可以通过 EC2 成本数据和 CUR 报告中部署在 EC2 上的 ECS 的使用数据来计算 ECS 资源的成本。但是,该过程很复杂,需要大量投资。

使用拆分成本分配数据获取 ECS 任务和 亚马逊云科技 Batch 任务的精细成本可见性

借助分摊成本分配数据,您现在可以根据您的 ECS 任务和 亚马逊云科技 Batch 任务所使用的 vCPU 和内存的实际消耗,在 ECS 任务级别轻松分配 Amazon EC2 实例成本。容器任务级别的精细成本信息使您可以分析容器化应用程序的成本效率,并简化业务实体的退款流程。

启用拆分成本分配数据后,它将扫描整合账单系列中的所有 ECS 任务或 亚马逊云科技 Batch 任务,并采集 ECS 资源的使用情况遥测数据(实际和预留 CPU 和内存),并计算新的 ECS 任务级别指标,例如拆分成本、未使用成本、实际使用量和预留使用量,包括折扣后的净成本指标。如果您出于计费目的标记 ECS 资源或 亚马逊云科技 Batch 任务(有关详细信息,请参阅 EC S 开发者指南 和 亚马逊云科技 Batch 用户指南 ),并启用这些标签进行成本分配,则拆分成本分配数据会将 ECS 管理的标签和用户添加的标签引入 CUR。您可以使用这些标签以及 亚马逊云科技 成本类别 ,在所需的业务实体级别(例如团队和应用程序级别)更好地共享容器级别的成本和使用量数据。同时,未使用成本数据的可用性有助于识别未使用的计算或内存资源,从而有机会优化您的容器集群并最大限度地减少效率低下的情况。

开始使用拆分成本分配数据

要启用 “拆分成本分配数据”,您需要完成一个简单的两步选择加入流程。首先,作为付款人账户所有者,您需要从您的 亚马逊云科技 成本管理/亚马逊云科技 Cost Explorer 首选项页面中选择加入 “拆分成本分配数据”。然后,您将从 亚马逊云科技 账单控制台的成本和使用情况报告首选项页面为新的或现有的 CUR 报告启用 “拆分成本分配数据”。启用后,该报告将自动扫描整个整合账单系列(所有集群属于所有地区的成员账户)的 ECS 任务,并开始准备当月的精细成本数据。24 小时后,您的 CUR 报告将准备就绪,其中包含新的 ECS 容器任务级别指标。

Figure 1. Enable “Split cost allocation data” from Cost Explorer preferences

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

Figure 2. Configure Cost and Usage Report (CUR) for “Split cost allocation data”

图 2。为 “拆分成本分配数据” 配置成本和使用情况报告 (CUR)

它是如何工作的

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

Figure 3. Allocated resources as the greater of reserved and actual utilization

图 3。分配的资源是预留利用率和实际利用率中的较大值

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

Figure 4. Resources allocated to multiple ECS tasks

图 4。分配给多个 ECS 任务的资源

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

Figure 5. Total allocated cost equals split cost plus proportionally redistributed unused cost

图 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 美元。

Table 1. m7g.2xlarge EC2 instance

表 1. m7g.2xlarge EC2 实例

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

Table 2. Reserved, used, and allocated data for the ECS cluster

表 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 任务中的标签或成本类别汇总成本,从而允许您按所需的业务实体级别计算成本。

Table 3 Allocated cost data at the ECS task level

表 3 ECS 任务级别的分配成本数据

新的 “成本和使用情况报告” 列是什么?

当拆分成本分配数据计算 ECS 任务级别指标时,您将在您的 CUR 报告中看到新列。例如,“SplitUsage” 代表在指定时间段内分配给 Amazon ECS 任务的 vCPU 或内存的使用量。您可以查看本用户指南,了解新 CUR 列及其定义的完整列表。

总结一下我们的示例,下面是一份演示 CUR 报告。您可以看到新的 CUR 列中将如何显示数据。

Table 4. Sample Cost & Usage Report data

表 4.成本和使用情况报告数据示例

结论

ECS 容器任务级别的成本数据的可见性为提高效率和优化成本提供了见解。 立即启用这种精细的成本数据 ,了解有关此 功能 的更多信息。

Bowen Wang

Bowen Wang

Bowen 是 亚马逊云科技 账单和成本管理服务的首席产品营销经理。她专注于让财务和商界领袖更好地了解云的价值以及优化云财务管理的方法。在她之前的职业生涯中,她帮助一家科技初创企业将其业务自动化产品推向中国市场,并建立了当地的客户服务呼叫中心。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。