AWS Organizations管理アカウントのCost ExplorerでメンバーアカウントごとのCloudFrontデータ転送量、リクエスト数をCSVで取得する

AWS Organizations管理アカウントのCost ExplorerでメンバーアカウントごとのCloudFrontデータ転送量、リクエスト数をCSVで取得する

AWS Organizationsの親アカウントからCost Explorerでメンバーアカウントの情報を一括で取得するやり方を説明します。今回は決めうちでAmazon CloudFrontの特定の使用量を見てみます。

コンバンハ、千葉(幸)です。

今回はかなり決め打ちですが、以下のシチュエーションを想定しています。

  • AWS Organizationsの配下に複数のメンバーアカウントが存在する
  • メンバーアカウントごとの以下の使用量を確認したい
    • Amazon CloudFrontのアウトバウンドデータ転送量
    • Amazon CloudFrontのリクエスト数
  • AWS Organizationsの管理アカウント(親アカウント)から一括で上記の情報を取得したい

管理アカウントのCost Explorerで適切にフィルタリングし、CSV形式でダウンロードすることで上記を実現する方法をご紹介します。

ここではAmazon CloudFrontに決め打ちしていますが、フィルタリングで指定するサービスを変更すれば他のケースでも使えるかと思います。

先にまとめ

管理アカウントのCost Explorerのレポートパラメータ、フィルタリング条件で以下を指定する。

  • Amazon CloudFrontのアウトバウンドデータ転送量を取得したい場合
日付範囲 ディメンション サービス 使用タイプ
任意 連結アカウント CloudFront DataTransfer-Out-Bytes を含むすべてを選択
  • Amazon CloudFrontのリクエスト数を取得したい場合
日付範囲 ディメンション サービス 使用タイプ
任意 連結アカウント CloudFront Requests-Tier を含むすべてを選択

管理アカウントのCost Explorerの操作

実際の操作画面を見ていきましょう。

管理アカウントのAWSマネジメントコンソールにサインインし、Cost Explorerの画面に遷移します。(操作するIAMユーザーやロールに適切な権限が付与されている前提です。)

画面右側にレポートパラメータがあり、各種設定が行えます。

CostExplorer_image

  • 日付範囲:要件にあわせて指定してください
    • デフォルトでは過去14ヶ月まで遡れます
  • ディメンション:「連結アカウント」を選択します
    • メンバーアカウントごとの粒度で内訳が取得できるようになります
  • サービス:「CloudFront」を選択します
    • 別のサービスの情報が欲しいケースでは、ここを適宜変更してください

使用タイプは料金の発生内訳のタイプを表します。取得したい観点に合わせて以下を入力します。

  • データ転送量の場合:DataTransfer-Out-Bytes
  • リクエスト数の場合:Requests-Tier

👇文字列を入力すると、それを含む項目の候補が表示されます。「すべて選択」にチェックを入れることでまとめて選択できます。「適用」を忘れずに押します。

CostExplorer2

各種レポートパラメータの設定が終われば、内容に応じて画面中央にグラフ描画されているかと思います。下の方にスクロールすると「コストと使用量の内訳」というセクションがあり、一覧が記載されています。

csvdownload

👆画面の例では使用タイプとして「DataTransfer-Out-Bytes」を含むものでフィルタリングしているため、メンバーアカウントごとに「使用量(GB)」と「コスト(USD)」の情報が載っています。

「CSV形式でダウンロード」を押下することで、cost.csvという名前で内訳をダウンロードできます。

出力されたCSVの中身

だいぶ簡略していますが、ダウンロードしたCSVの構成は以下のようになっています。

連結アカウント,111111111111,222222222222,333333333333,,111111111111,222222222222,333333333333,
連結アカウント名,Account A($),Account B ($),Account C($),合計コスト ($),Account A(GB),Account B (GB),Account C (GB),合計使用量 (GB)
連結アカウント の合計,0,0,0,0,0.0005515476,0.0094913738,0.0149771621,46.94771573
2025-02-01,0,0,0,0,0.0000039506,0.0094913738,0.0066980987,12.05705269
2025-03-01,0,,0,0,0.0000013728,,0.0023707833,24.11085099
2025-04-01,0,,0,0,0.0001229323,,0.0015171236,7.946746693
2025-05-01,0,,0,0,0.0001342376,,0.0019810737,0.8573239165
2025-06-01,0,,0,0,0.0001311102,,0.0004181848,0.6342241074
2025-07-01,0,,0,0,0.0001579441,,0.001991898,1.341517334

以下のようなイメージです。

  • コストに関する列がアカウントごとにある
  • 次いで使用量に関する列がアカウントごとにある

CloudFront_Costs
実際のデータから列を削ってサンプルにしたため、使用量の合計が一致していないのはご愛嬌です

👆上記の例では「DataTransfer-Out-Bytes」でフィルタリングしているため使用量が「(GB)」ですが、「Requests-Tier」の場合は「(Requests)」となります。

使用量だけが欲しい、という場合はここから適宜必要な情報を加工して使用しましょう。列は月になっていた方が好みなので、転置して貼り付け、というのをよくやります。

CloudFront_Costs2
使用量に関する部分のみコピーして転置してペーストしたイメージ

終わりに

AWS Organizationsの管理アカウントのCost ExplorerでメンバーアカウントごとのCloudFrontデータ転送量、リクエスト数をCSVで取得する、という話でした。

配下のメンバーアカウントが多数ある場合に特定の項目だけを一括で取得したい、という時にご活用ください。フィルタリング条件を変えれば他のケースにも対応できるかと思います。

以上、チバユキ (@batchicchi)がお送りしました。

参考

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.