AWS Cloud Financial Management

Leveraging AWS Cost Allocation Capabilities to Meet your Business Needs

Whether you’re new to the cloud or have a well-established environment, accurate ownership and allocation of costs is critical to creating a culture of accountability and ensuring business value from your cloud investments.

Cost Allocation is a process of identifying, categorizing, and assigning the costs of cloud computing resources to specific users, departments, projects, or any other relevant grouping within an organization. This is achieved through the use of structural hierarchies, tags, and labels available from cloud service providers or third-party tooling platforms (see the previous cost allocation blog series). Cost allocation can be used simply for visibility of cost ownership, often referred to as “showback”. It can also integrate with financial processes to record costs with the owner in an organization’s general ledger, often referred to as “chargeback”. AWS has a number of products that can help you in allocating and organizing your costs, but the question remains, which AWS capabilities should you use? In this blog, let’s take a look at how different business requirements can be best addressed using these products.

Workload Organization & Cost Accountability

In order to effectively allocate costs, it’s important to have a clear understanding of the business dimensions needed for cost allocation in your organization. While these exact dimensions may vary somewhat across industries or organizations, there are common requirements, including:

  • Business Unit/Division
  • Cost Center
  • Department/Team
  • Project/Application
  • Environment
  • Architectural Component

Once you have your business dimensions identified, you can assess how those dimensions map to your workload in AWS and your workload deployment strategy going forward. The following section discusses the cost allocation strategies based on how your workloads are organized, from the perspective of business ownership.

Cost Accountability: Aligned to AWS Account

AWS Accounts are the fundamental unit of isolation in AWS, not just for security and resiliency but also for cost. This means that all usage and costs are associated with an account, making account ownership a natural starting point for cost allocation. By aligning your business ownership with your account structure, you can take advantage of this fundamental separation and utilize account boundaries for your cost accountability.

Consider an enterprise that has three different departments running in AWS: marketing, finance, and product development. A simple pattern would be an Organization that provides an account to each department. Each department could view their account costs directly with AWS Cost Explorer, they can tag resources for more granular visibility within their accounts, they can create Cost Explorer reports for commonly used views, and the per-account grouping in the consolidated billing invoice could simplify chargebacks for the departments. With Cost Explorer, you can easily visualize costs within your account, making it simple for account owners to understand their usage and have accountability for their cost.

When you align business ownership to the AWS account level, you can also leverage the AWS Invoice for integrating with your finance chargeback processes. For smaller customers operating standalone accounts, you’ll automatically receive a separate invoice per account. However most multi-account customers use AWS Organizations and consolidated billing to receive a single invoice for their accounts. The AWS Billing console provides per account breakdown of the consolidated invoice, making internal charge back by business ownership aligned to accounts straightforward.

Cost Accountability: Aligned to Groups of AWS Accounts

While individual AWS accounts are the base unit of cost allocation, it’s common for a business unit to own multiple AWS Accounts. The AWS White-paper on Organizing your AWS Environments using Multiple Accounts highlights several of these considerations. In many ways, this approach is a logical extension of aligning account ownership to individual accounts. You can use AWS Cost Categories for more granular visibility within each group of accounts.

To integrate with finance chargeback processes, you can group accounts together using Invoice Configuration to receive separate consolidated invoices for each set of accounts. Invoice Configuration works by using Cost Categories, a rule-based engine for applying metadata to costs, to create a managed Cost Category (with key aws:invoice:invoiceUnitName), making your Invoice Groups accessible to other AWS Cost Management products, such as AWS Cost Explorer, AWS Budgets, AWS Data Exports, and AWS Pricing Calculator.

Cost Accountability: Resources within Accounts

In some cases, not every account in an organization can be exclusively allocated to a single team. You may have some accounts that run multiple workloads from different teams. An example of this might be an infrastructure team that uses a single account to deploy applications for different business units. It is important to note that this is a shared account scenario where the individual resources have clear ownership.

To allocate costs more granularly than the AWS account, you can use AWS Cost Allocation Tags to apply metadata to your resources indicating which line of business, team, or project owns the resource and is responsible for the costs. Cost Allocation Tags can be used in conjunction with Cost Categories, to reduce the effort in applying and governing Cost Allocation Tags. Cost Categories can also help you categorize resources and usage that cannot be tagged, improving your cost allocation coverage. For guidance on creating a tagging strategy, see the AWS Prescriptive Guidance on the topic. A good rule of thumb is to prefer Cost Categories wherever the category value can be determined from some other dimension of the cost, such as the service code, charge type, Region, usage type, or other tag values.

With Cost Allocation Tags and Cost Categories in place, you can view and manage your costs using Cost Explorer, Budgets, Data Exports, Pricing Calculator, AWS Cost Anomaly Detection, and AWS Cost Optimization Hub. Cost Explorer’s saved reports and custom billing views can help you create consistent and streamlined access to subsets of cost within your account.

Using our example organization, let’s say we have an account that has a mixture of workloads operating inside the account. We can use Cost Allocation Tags and Cost Categories to properly label these resources and allocate the costs. A similar approach can be used when teams own a subset of resources across multiple accounts, rather than just within a single account.

In this scenario, integrating with your financial charge back processes requires a little more work. However, you can’t directly receive invoices based on Tags or Cost Categories, you can implement chargeback processes using saved reports from Cost Explorer. For example, customers can create saved reports that show how specific accounts should be cross charged to different departments, which can be used in conjunction with your consolidated billing invoice.

Cost Accountability: Shared Resources within Accounts

In addition to shared accounts, where individual resources have clear ownership, it’s not uncommon to have shared resources particularly when operating shared delivery platforms, such as container clusters. In these cases, there is usually two levels of accountability: one that owns and operates the platform and another that consumes the platform. While it’s fairly straightforward to allocate shared platforms to the team that owns and operates the platform, often those teams need to subsequently allocate the costs of their platform to the consuming teams.

There are various strategies for handling cost allocation shared platforms, from organizing the platform using cellular architecture (where the shared platform is divided into separate “cells”, with each cell’s resources are allocated to a single consumer) to utilizing telemetry from the platform to allocate the usage and costs. If cellular deployment is possible for your platform, you can utilize Cost Allocation Tags and Cost Categories to label the owner of each cell’s resources. AWS supports tagging for a wide range of services and resources. This includes core infrastructure components like EC2 instances and S3 buckets, as well as networking resources such as VPCs and subnets.

In some cases, cellular design may not be possible or appropriate due to operational overhead or idle resources. For containerized use cases in Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS), AWS provides Split Cost Allocation Data to augment your Cost and Usage Report with metadata on the container-level resource utilization and cost allocation within the container cluster.

With any shared platform, there are also resources that cannot be directly attributed to a specific cost owner, even with capabilities such as Split Cost Allocation Data. These commonly include shared services such as Domain Name Service(DNS), IP Address Management(IPAM) & Certificate Management systems, and more. It’s common to allocate these costs proportionally based on other costs, for example using Cost Categories Split Charge Rules.

Handling Commitment-based Pricing Models

As organizations mature in their usage of cloud, they often begin utilizing commitment-based pricing models as part of their cost optimization strategy. These commitment-based pricing models, such as Savings Plans (SPs) and Reserved Instances (RIs), add complexity into the cost allocation model as commitments are purchased separately from the resource usage and the savings can be allocated in different ways. The following sections provide additional guidance based on the type of cost allocation needed for your environment.

Allocate Savings Plans and Reserved Instances cost based on commitment application

When computing your bill, AWS applies your Savings Plans (SPs) and Reserved Instances (RIs) first within the account that purchased these commitments, then shares the commitments to other accounts in your Organization based on your sharing settings. The cost of the commitment stays in the account where it was purchased, while usages in other accounts that are covered by these commitments are not billed directly. Unless accounted for, this can result in dynamic allocation of costs for resources covered by commitments.

For customers with upfront commitment pricing (Partial or All Upfront), you can use the Amortized or Net Amortized cost types in Cost Explorer to see the costs covered by commitments on an accrual basis. This makes Amortized cost types well-suited for accrual based accounting processes when upfront purchase options are in use.

While AWS amortized allocation methodology can be combined with most of the cost accountability methods discussed above, there are a few considerations to keep in mind that can impact the allocation process:

  • Underutilized commitment stays within the account that purchased the commitment
  • Commitments may be shared to other accounts, as per your sharing settings
  • Covered usage can vary over time depending on usage patterns
  • Savings Plans are applied to the SKUs that receive the most savings percentage first
  • Commitments with upfront payments will also have their upfront spend amortized over the lifetime of the commitment, which should be considered if using a cash basis accounting processes (use custom rates instead)
  • AWS Invoices are based on Unblended costs and does not reflect Amortized cost allocation

Allocate Savings Plans and Reserved Instances cost based on custom rates

Amortization is a simple way to easily allocate commitment costs. However, there are some cases where alternate approaches might be preferred. For example, many organizations prefer to equitably allocate the Reserved Instances and Savings Plan, along with other discounts, credits, and refunds, using internally agreed rules. AWS Billing Conductor enables organizations to customize the pricing that applies to different groups of accounts. This customization can be in the form of custom rates for different services or usage types, or in the form of custom pricing lines that can represent additional charges or discounts. Billing Conductor helps organizations create consistency of pricing when usage changes and the AWS bill computation algorithm would otherwise shift discount coverage to different owners.

Conclusion

Accurately allocating cloud costs in AWS is essential for fostering accountability and maximizing the value derived from cloud investments. Cost allocation requires careful consideration of your organization’s structure, workload patterns, and financial requirements. Whether you’re utilizing AWS accounts, Cost Allocation Tags, Cost Categories, or Billing Conductor, the key is selecting patterns that align with your business needs while maintaining simplicity and scalability. Start with the fundamental building blocks of AWS cost allocation, then layer in more sophisticated approaches as your organization’s needs evolve. By implementing these prescriptive patterns thoughtfully, you can create the cost transparency and accountability needed to drive business value from your cloud investments. Remember that cost allocation is not a one-time exercise—regularly review and adjust your approach as your business grows and your cloud journey continues.

Manoj Jayadevan

Manoj Jayadevan

Manoj Jayadevan is Principal Product Manager at Amazon Web Services. He works on solving shared infrastructure cost allocation problems for AWS Cloud Customers. He holds a Bachelors degree in Electrical Engineering and a Master in Business Administration.

Michael Reinhold

Michael Reinhold

Michael Reinhold is a Senior Solutions Architect at Amazon Web Services based out of southeast Michigan. He is a builder at heart who loves exploring the art of the possible. Michael is also specialist in Cloud Financial Management, helping customers maximize business values out of their technical investments.