Step 1: What Cost Should be Split?

How should we approach this in CostFormation?

The first step towards splitting costs is identifying and grouping the cost you'd like to split. Is it a shared database or service, like Snowflake compute or another data lake like RDS? Is it an S3 bucket or EC2 instance used by multiple teams or products?

Whatever this cost is, the simplest path forward is to structure our CostFormation so that this cost exists as an element in a dimension. For example, we have some shared costs in RDS, so we'll update our CostFormation to add a new dimension:

Dimensions:
  SharedRDS:
    Name: Shared RDS
    DefaultValue: Not Shared
    Rules:
      - Type: Group
        Name: Shared Data Lake
        Conditions:
          - Source: Service
            Equals: AmazonRDS

We now have an element called Shared Data Lake in our Shared RDS dimension. This will allow us to reference that cost in a Proportional Allocation Dimension.

Let's move onto the next step and extend our CostFormation.

Link to Previous Step