Amazon web services aws系统组件和工件的计费明细

Amazon web services aws系统组件和工件的计费明细,amazon-web-services,aws-lambda,devops,amazon-ecs,aws-billing,Amazon Web Services,Aws Lambda,Devops,Amazon Ecs,Aws Billing,我们一直在aws上运行多层应用程序,并使用各种aws服务,如ECS、Lambda和RDS。寻找将计费项目映射到实际系统组件的解决方案,查找花费最多的组件等 AWS改进了其详细的成本使用报告,并提供了Cost Explorer API,但它仅将计费分解为服务或实例。但是,如果您想了解每个组件的成本,则每个实例的细分并不会带来太多价值。对此有何解决方案/建议 成本分配标签 您可以创建一个标记,如“系统”或“应用程序”,并将其应用于所有资源,并将值设置为要跟踪的不同应用程序/系统/组件。然后,您可以转

我们一直在aws上运行多层应用程序,并使用各种aws服务,如ECS、Lambda和RDS。寻找将计费项目映射到实际系统组件的解决方案,查找花费最多的组件等

AWS改进了其详细的成本使用报告,并提供了Cost Explorer API,但它仅将计费分解为服务或实例。但是,如果您想了解每个组件的成本,则每个实例的细分并不会带来太多价值。对此有何解决方案/建议

成本分配标签 您可以创建一个标记,如“系统”或“应用程序”,并将其应用于所有资源,并将值设置为要跟踪的不同应用程序/系统/组件。然后,您可以转到账单页面,单击“成本分配标签”,并激活您创建的标签

然后,您可以看到按该标记的不同值细分的成本。它们将显示在成本管理器中,标签将是可用的过滤器之一。然而,我认为激活后需要24小时,它们才会出现

如果您确实需要强制使用标记,并且有开发人员在多个组件上工作,则可以使用IAM角色来管理每个组件,每个角色仅限于与具有特定标记的资源交互(即,他们只能使用该标记修改现有资源,并且只能使用该标记创建新资源)。开发人员可以有一个IAM用户(或者您可以联合身份,但这是一个完全不同的对话),并允许他们根据正在使用的组件承担不同的角色。这样做的另一个好处是使跨帐户管理更容易。但是,可能需要对IAM进行不平凡的大修

有关成本分配标签的更多信息,请参见此处:

按AWS账户划分成本边界 要攻击不可标记的组件(如数据传输),您可以围绕成本边界构建您的帐户策略,并为每个成本筒仓建立一个单独的帐户(如果可以的话)。这可能会增加成本,因为您必须将系统分解为特定的帐户(以及特定的EC2实例)

当你集中报告、监视、配置管理、日志分析等时,每个应用程序都会增加一点成本,但通常你只需要考虑系统本身的集中式化,并单独地将其成本化。显然,您可以对每个系统进行单独的监视、警报、报告、日志收集、配置管理等,但这将增加总体成本(包括基础设施成本和工程时间)。因此,您必须优先考虑成本可见性和成本优化

AWS中仍然有大量的功能来连接来自不同帐户的资源,并且在一个帐户中有一个数据层,在另一个帐户中有一个应用层并不困难(尽管这不是我经常看到的范例)

定制工具 也许上述解决方案对于您的环境来说并不完美,您可以在可行的情况下使用上述解决方案,并编写脚本来估计更难跟踪的内容的使用情况。对于带宽,如果您有自己的EC2实例作为转发代理或NAT网关运行,您可以编写一些出站数据传输帐户软件。如果VPC中的所有内容都有指向这些实例上的ENIs的路由,那么您可以通过选择的任何参数更好地跟踪出站传输。对我来说,这听起来确实有点脆弱,从网络的角度来看,这可能有一些情况是站不住脚的,但这是可能的

类似地,对于Cloudwatch度量,您可以使用名称空间,我在Cost Explorer中找不到任何关于按Cloudwatch名称空间进行筛选的功能的引用,但可能很容易找到每个名称空间的原始度量并估计每个名称空间的成本。然后可以在Cloudwatch中按名称空间划分组件。这可能会导致一些重复,这可能会导致更多的管理工作或成本增加,但这将是更细粒度成本可视性的权衡

库伯内特斯 这对您的环境来说可能是一件非常不确定的事情,但值得一提。如果您在EC2上使用EKS或自管理集群运行集群,您可以利用该平台的强大功能,这将允许您提供基本级别的计算资源,将组件划分为名称空间,并使用内置或第三方工具获取每个名称空间(甚至每个工作负载)的使用统计信息。这更容易实施,因为您可以让开发人员访问特定的名称空间,异常值通常更明显。当您知道每个工作负载随时间使用的CPU和内存量时,您可以按组件对各个成本模式进行很好的估计

当然,k8s管理机的成本仍然存在,它与所有其他应用程序/系统的成本都不在一个范围之内

尽管Istio无论如何都不是一种简单的技术,但它允许您收集有关数据出口的粒度指标,您可以使用这些指标了解数据传输成本的增加

在每个名称空间中复制监视可能更容易,因为您必须在一定程度上抽象监视工作负载,才能在k8s上运行。然而,这仍然增加了管理和总体成本,但可能比基础设施(AWS)层的筒仓化要少

总结 我知道,要达到AWS所需的粒度和控制级别,没有太多的选项。为此所做的努力可能会增加总体成本和管理费用。AWS因难以估算成本模型而臭名昭著。也许可以针对您的工作负载研究AWS以外的平台,这些平台可以更好地了解组件成本

也很难避免运行centr的系统