AWS Organizations管理アカウントのCost ExplorerでメンバーアカウントごとのCloudFrontデータ転送量、リクエスト数をCSVで取得する
コンバンハ、千葉(幸)です。
今回はかなり決め打ちですが、以下のシチュエーションを想定しています。
- 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ユーザーやロールに適切な権限が付与されている前提です。)
画面右側にレポートパラメータがあり、各種設定が行えます。
- 日付範囲:要件にあわせて指定してください
- デフォルトでは過去14ヶ月まで遡れます
- ディメンション:「連結アカウント」を選択します
- メンバーアカウントごとの粒度で内訳が取得できるようになります
- サービス:「CloudFront」を選択します
- 別のサービスの情報が欲しいケースでは、ここを適宜変更してください
使用タイプは料金の発生内訳のタイプを表します。取得したい観点に合わせて以下を入力します。
- データ転送量の場合:DataTransfer-Out-Bytes
- リクエスト数の場合:Requests-Tier
👇文字列を入力すると、それを含む項目の候補が表示されます。「すべて選択」にチェックを入れることでまとめて選択できます。「適用」を忘れずに押します。
各種レポートパラメータの設定が終われば、内容に応じて画面中央にグラフ描画されているかと思います。下の方にスクロールすると「コストと使用量の内訳」というセクションがあり、一覧が記載されています。
👆画面の例では使用タイプとして「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
以下のようなイメージです。
- コストに関する列がアカウントごとにある
- 次いで使用量に関する列がアカウントごとにある
実際のデータから列を削ってサンプルにしたため、使用量の合計が一致していないのはご愛嬌です
👆上記の例では「DataTransfer-Out-Bytes」でフィルタリングしているため使用量が「(GB)」ですが、「Requests-Tier」の場合は「(Requests)」となります。
使用量だけが欲しい、という場合はここから適宜必要な情報を加工して使用しましょう。列は月になっていた方が好みなので、転置して貼り付け、というのをよくやります。
使用量に関する部分のみコピーして転置してペーストしたイメージ
終わりに
AWS Organizationsの管理アカウントのCost ExplorerでメンバーアカウントごとのCloudFrontデータ転送量、リクエスト数をCSVで取得する、という話でした。
配下のメンバーアカウントが多数ある場合に特定の項目だけを一括で取得したい、という時にご活用ください。フィルタリング条件を変えれば他のケースにも対応できるかと思います。
以上、チバユキ (@batchicchi)がお送りしました。