Container Cost

Understanding the cost of your containerized workloads

The CloudZero Container Cost Solution

CloudZero combines container utilization data with your actual AWS costs to give you accurate allocation of costs within a Kubernetes cluster. Pod, CPU, and memory usage are automatically correlated with costs to give you detailed breakdowns of real cost by cluster, namespace, pod, or label down to the hour. And CloudZero doesn’t require you to manually define complex rules for allocating Kubernetes costs. We use a proprietary algorithm to calculate it automatically based on industry best practices and our own experience working with customers.

The integration is based off installing a CloudZero agent as a daemonset to collection Kubernetes performance metrics and shipping then directly to CloudWatch Logs. The agent is a fork of the popular AWS Container Insight Agent.

CloudZero combines the metrics from the CloudZero CloudWatch Agent with AWS billing information to automatically allocate costs to the workloads being orchestrated by Kubernetes. We calculate the cost of each pod within the architecture, and then re-aggregate them to attribute costs to other hierarchical kubernetes concepts, like namespaces and clusters.

Container cost becomes a first class citizen along with your other AWS spend. Now Kubernetes, AWS, and Snowflake spend can be combined together to map to your business.


Automatic Cost Allocation

Cost is calculated based on the cost of the EC2 instance - which represents the cost of a node in the Kubernetes system - combined with pod-level CPU and memory utilization using a custom cost model that CloudZero developed. This allows us to assign a portion of the node’s total cost to the pod. This is handled automatically in the CloudZero platform; there is no need for manual allocation rules.

Generally speaking, this proportional algorithm works across a broad range of EC2 instance types, including those with SSD, NVMe SSD, GPU cores, GPU memory, and networking enhancements.

The final result is a new way to explore your container costs over time by cluster, pod, or namespace using CloudZero. For example, we can use CloudZero to take a look at one of our clusters and see how its costs decrease as we scale down the cluster.


Cluster Idle Costs

The CloudZero platform considers a resource provided by an EC2 instance — either CPU or memory — fully utilized in a given hour if pods running on that instance utilized or requested (maximum of the two,) an average of 75% or more of its available capacity. If a lesser amount was utilized, the difference is assigned to an "Idle" bucket representing the unused capacity of the EC2 instances comprising the cluster.

In the next sections, we cover the installation and usage of the Container Cost feature.

Supported Platforms

Amazon Elastic Kubernetes Service (Amazon EKS) on Amazon EC2
Self-managed Kubernetes infrastructure on Amazon EC2
Amazon ECS on Fargate can be supported in limited situations
Amazon ECS on EC2 can be supported in limited situations
NOTE: AWS EKS on AWS Fargate is not supported at this time