AWS adds Kubernetes spending breakdown capabilities

"Traditional FinOps cost allocation (e.g. mapping costs of resources back to teams or projects) doesn’t work. You can’t simply allocate the cost of a resource, such as EC2 instance to a tag or label..."

AWS adds Kubernetes spending breakdown capabilities

Kubernetes users can now track granular spending on Amazon’s Elastic Kubernetes Service (EKS) natively via AWS Cost and Usage Reports (CUR) – a boon to those for whom Kubernetes has driven up cloud spending but proven opaque to break down with precision across business units.

“Split Cost Allocation Data” will let customers allocate application costs to individual business units and teams, based on how Kubernetes applications consume shared EC2 CPU and memory resources, AWS said. 

The service is available across all clusters now, said AWS’s Nathan Taber on LinkedIn – with an EKS team sharing a 2,000-word breakdownhere.

“Split Cost Allocation Data”? What about "K8s Kruncher"?

Split Cost Allocation Data scans for all Kubernetes pods in Amazon EKS clusters across your Consolidated Billing family and ingests Kubernetes attributes such as namespace, node, cluster, CPU and memory requests. 

See also: Kubernetes clusters are typically using just 13% of CPU: CIOs could save a small fortune

It can also “read your Amazon Managed Service for Prometheus workspaces to bring in Kubernetes CPU and memory utilization metrics. Then it would compute Kubernetes pod-level cost metrics, e.g., split cost, unused cost, actual usage, and reserved usage (i.e. resource requests), including net cost metrics after discounts” then serve it via AWS CUR.  

AWS Kubernetes spending: Visibility broadly remains low

The (arguably overdue and very welcome) tooling means AWS customers don’t need to rely on third-party providers like Kubecost for this data – although many with hybrid or multicloud setups may continue to do so.

See also: The future of Kubernetes at AWS: Slack, Anthropic lead a "Karpenter" love-in

AWS’s Shubir Kapoor and Mihir Surani highlighted in their April 15 blog that when it comes to Kubernetes, “traditional FinOps cost allocation (e.g. mapping costs of resources back to teams or projects) doesn’t work.

“You can’t simply allocate the cost of a resource, such as EC2 instance to a tag or label, because the EC2 instance may be running multiple containers, with each supporting a different application,” they noted.

Overprovisioning is rife

The EKS Split Cost Allocation Data release comes as the CNCF’s latest microsurvey report, published December 2023, revealed that 38% of respondents have no Kubernetes spend monitoring mechanisms in place.

The same CNCF report found that 70% of Kubernetes overspend was due to overprovisioning of resources, whilst 45% attributed it to a “lack of individual or team-level awareness or responsibility” (Something many organisations, like Airbnb, have publicly described tackling in detail.) 

Open-source lovers can also take a look at OpenCost, a vendor-neutral CNCF Sandbox project for measuring and allocating cloud infrastructure and container costs in real time; OpenCost is backed by Kubecost, RedHat, AWS, Adobe, SUSE, Armory, Google Cloud, Pixie, Mindcurv, D2IQ, and New Relic. It offers integrations with AWS, Azure, and GCP billing APIs.

Stay briefed: Subscribe to The Stack