AWS Organizations環境で複数アカウントのタグベースコストを一括抽出するには、どうしたらいいですか?
困っていた内容
AWS Organizationを利用して、管理アカウント上でメンバーアカウントのコストの情報を把握しています。
タグベースで抽出し、「連結アカウント」にて、複数のメンバーアカウントを選択するとコストは確認できますが、合算されたコストが表示されてしまいます。
何か解決策はないのでしょうか?
結論
CostExplorerのフィルタ設定では、上記の要件が現状では満たせません。
「タグ」 x 「連携アカウント」の組み合わせで、アカウントごとのタグのコストを確認には、CURのデータを以下ようなクエリを使って確認をする必要があります。
SELECT line_item_usage_account_id,
resource_tags_user_タグ名1,
resource_tags_user_タグ名2,
resource_tags_user_タグ名3,※実際のタグ名に置き換え
SUM(line_item_net_unblended_cost) AS NetCost
FROM "tablename" ※実際のCURのレポート名
WHERE line_item_usage_start_date between TIMESTAMP '2025-05-01 00:00:00' and TIMESTAMP '2025-05-31 23:59:59' ※抽出したいCURの期間
GROUP BY 1,2,3,4
やってみた
実際に、AthenaのPartition Projection機能を使って検証環境でクエリを実行してみました。
参考にしたのは、以下のブログでご紹介している内容です。
検証にはメンバーズのMCURデータを使用し、環境に合わせて期間指定部分を調整したクエリで実行しました。
SELECT
line_item_usage_account_id,
resource_tags_user_cm_billing_group,
SUM(line_item_unblended_cost) AS NetCost
FROM cur
WHERE billing_period = '20250601-20250701'
GROUP BY 1,2
同じ組織配下にいる複数のアカウントごとのタグのコストを取得することができました。
クエリに条件を追加すれば特定のアカウントに絞り込んで検索もできるので、CostExplorer単体での検索より幅が広がると感じました。
おわりに
CURデータを使えば、Cost Explorerでは見えなかった詳細なコスト構造が明らかになります。メンバーズのお客様もMCURで同様の分析ができるため、コスト管理の精度向上にご活用ください。