0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS CUR CSVで未使用課金を検出する手順

0
Posted at

この記事について

AWSのコストと使用状況レポート(CUR)をCSV形式で読み込み、使用量が0にもかかわらず課金が発生している行を抽出する具体的な手順を紹介します。公式ドキュメントに基づき、再現可能な方法で「未使用だが課金されている」リソースを可視化します。対象は請求データの1か月分のみで、時系列分析や自動削除は含みません。

課題

Elastic IPアドレスやEBSボリュームなど、AWSでは「使用していないが課金される」リソースが存在します。例えば、関連付けが解除されたElastic IPアドレスは、明示的にリリースしない限りアカウントに割り当てられたままとなり、使用中かどうかにかかわらず料金が発生します。一方、EC2インスタンスから外されたEBSボリュームも、削除されない限り課金される可能性があります。これらは請求書上で「usage_quantity = 0 かつ unblended_cost > 0」として現れることがあります。しかし、大量のCUR CSVを人力で確認するのは非効率です。

手順

  1. CUR CSVを取得する:AWSコンソールでCost and Usage Reportを有効化し、Amazon S3バケットに出力された最新のCSVファイルをダウンロードします。1日1回更新され、CSV形式で提供されます。

  2. 対象列を確認する:使用量がゼロでありながらコストが発生している行を特定するために、line_item/UsageQuantity 列が 0 かつ line_item/UnblendedCost 列が 0 より大きい行を探します。この組み合わせが「使用量ゼロだが課金あり」の基本条件です。

  3. リソース種別でフィルタする:line_item/ProductCode が AmazonEC2 の行の中で、product/usagetype に未使用リソースを示唆する値(例:アイドル状態のElastic IPや未接続のEBSボリュームに関連すると考えられるもの)が含まれる場合、重点的に確認します。ただし、具体的なusagetype値についてはAWSの最新ドキュメントを参照してください。

  4. 誤検知を除外する:一部のサービス(例:予約インスタンス)ではUsageQuantityが0でもコストが計上されることがあります。そのため、line_item/LineItemType に予約やディスカウントに関連するタイプが含まれる場合は、未使用とは判断せず除外することを検討します。

落とし穴

「UsageQuantity = 0」だけを見て未使用と判断すると、誤検知が発生します。例えば、一部のデータ転送やAPIリクエストは集計単位の関係でUsageQuantityが小数点以下で記録され、四捨五入により0と表示されることがあります。また、CURには請求確定前の暫定データも含まれるため、直近のデータは変動する可能性があります。請求サイクル終了後のデータを使用する必要があります。

当社で実際に測っていること

当社のcostdiagでは、クラウド(GCP/AWS/OCI)の請求CSVを読み、『未使用と読める費用』として「使用量0で課金されている行」を抽出しています。判定は請求CSVの記載だけによる規則で、金額はその行の請求額です。

まとめ

明日から、あなたのAWSアカウントのCUR CSVをダウンロードし、「UsageQuantity=0かつUnblendedCost>0」の行を抽出してみてください。特にElastic IPやEBSボリュームに関連する行に注目しましょう。

参考

※本記事は弊社 InfraOne のサービス紹介を含みます

※本記事は弊社 InfraOne のサービス紹介を含みます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?