How far each business unit has moved its EC2 spend off Intel and onto AMD and Graviton, and what finishing the move could save. This is the same analysis I ran with large AWS customers, rebuilt on a synthetic Cost and Usage Report so it can be public.
Every level of the business unit mapping at once: level 1 organizations contain level 2 business units, which contain level 3 teams. Each team is sized by its share of EC2 spend and shaded by how much of its compute already runs on AMD or Graviton. The deeper the blue, the further along. Light tiles are where the opportunity is. Hover a team for its accounts.
Share of non-GPU compute cost, sorted by how much still runs on Intel. The number on the right is the Intel share.
Intel and AMD families with a Graviton equivalent, ranked by estimated monthly savings.
Raw CUR rows are modeled in SQL in layers, tested, and published as marts that feed this page. The models use dbt-style ref() so they run in dbt unchanged.
cur_ec2.csv
(31,950 line items)stg_cur__ec2int_ec2_compute
int_shared_cost_allocatedmart_processor_mix
mart_bu_summary
mart_graviton_opportunities-- Reallocate shared networking cost to level 3 teams in proportion to each
-- team's EC2 compute spend that day (compute proportional reallocation).
-- Allocating at the lowest level lets every level above roll up exactly.
with shared as (
select c.usage_date, sum(c.cost) as shared_cost
from {{ ref('stg_cur__ec2') }} c
join {{ ref('account_business_units') }} a on c.account_id = a.account_id
where a.bu_level_1 = 'Shared'
group by 1
),
compute as (
select usage_date, bu_level_1, bu_level_2, bu_level_3, sum(cost) as compute_cost
from {{ ref('int_ec2_compute') }}
group by all
),
weights as (
select *, compute_cost / sum(compute_cost) over (partition by usage_date) as share
from compute
)
select
w.usage_date,
w.bu_level_1,
w.bu_level_2,
w.bu_level_3,
w.bu_level_2 as business_unit,
w.share as allocation_share,
s.shared_cost * w.share as allocated_shared_cost
from weights w
join shared s using (usage_date)