Allocating costs
There are several ways to allocate costs. Allocation by Account is the easiest approach, as this provides a natural cost boundary, and everything is automatically within a single Account. However, this needs to be considered when planning your initial deployment, and unfortunately is often an after-thought.
Allocation using Tags should be considered when using Infrastructure as code (IaC), with Tag Editor to manage the key-value pairs. Together, IaC and Tag editor help avoid errors in both the key and the value to provide a more consistent approach. Tags are case-sensitive, which can create issues when tags are manually applied. E.g. CostOwner is different from costowner or Costowner, and ABC-mgmt is different from ABC-management or abc-mgmt
Uncontrolled and manually applied tags can require a very high effort to apply thoroughly and consistently (breaking principle 2 above). If you use Tags you will need to monitor any untagged resources. Further information is available here.
Allocation by Service, particularly for engineering teams, is straightforward. However, some services (such as EC2) are a mix of compute, storage and networking, so a finer- grained breakdown by usage type may be required to identify the critical costs.
Allocation using AWS cost categories should be considered for complex configurations. Cost Categories allow you to create hierarchical rules for cost allocation and categories using several dimensions, such as account, tag, service, region or charge type.