この記事について
この記事は、AWS の Cost and Usage Report (CUR) を CSV で読み、使用量 0 で課金が立っている行や未使用リソースを抽出する方法について解説します。AWS の公式ドキュメントに基づいて、具体的にどの列を見てどのように絞り込むかの判断基準と手順を紹介します。AWS CUR は、利用可能な最も包括的なコストと使用状況データのセットが含まれています。コストと使用状況レポートを使用して、所有している Amazon Simple Storage Service (Amazon S3) バケットに AWS 請求レポートを発行できます。
課題
AWS の CUR を読み、使用量 0 や未使用のまま課金が立っている行を抽出することは、インフラ・SRE 担当者にとって重要かつ大変なタスクです。例えば Elastic IP アドレスは、使用中か(EC2 インスタンスなどのリソースに割り当てられているか)、アイドル状態か(アカウントに作成されているが割り当てられてはいない)にかかわらず、料金が発生します。しかし、膨大な行数がある CUR の CSV レポートからどの列を参照し、どのような条件でフィルタリングして未使用リソースを見つければよいのかという具体的な判定手順が分からず、手作業での確認に時間がかかるという課題があります。
手順
- S3 バケットから入手した CUR の CSV ファイルをスプレッドシートや分析ツールで開きます。請求データの中から、製品やリソースの識別情報、使用量、金額が記録されている列(例: lineItem/UnblendedCost、lineItem/UsageAmount、lineItem/LineItemDescription、lineItem/ResourceId など)を確認します。
- Elastic IP アドレスなどの未使用リソースを特定するため、使用量や説明の列を絞り込みます。具体的には、lineItem/UsageAmount が 0 である行や、lineItem/LineItemDescription などの項目に「unused」「unattached」「idle」「orphan」といった未使用を示すキーワードが含まれている行をフィルタリングして抽出します。
- 抽出された行に対して、使用中かアイドル状態かにかかわらず課金されている費用(例えば割り当てのみで EC2 にアタッチされていない Elastic IP など)が含まれているか判定します。lineItem/UnblendedCost の金額を確認し、実際に利用されていないにもかかわらずコストが発生している行を特定して調査対象としてリストアップします。
落とし穴
やりがちな間違いは、Elastic IP アドレスがリソースに関連付けられていない(アイドル状態である)からといって課金されていないと思い込み、確認を怠ることです。すべての Elastic IP アドレスは、使用中かアイドル状態かにかかわらず料金が発生します。また、CUR の CSV 上で金額だけを見て使用量の列(lineItem/UsageAmount)やリソースの説明を確認しないと、実際に動いていないリソースの課金を見落とす危険性があります。
当社で実際に測っていること
costdiag — クラウド (GCP/AWS/OCI) の請求 CSV 1 か月分を読み、行ごとに『未使用と読める費用』(名称に unused・unattached・idle・orphan を含む行、使用量 0 で課金されている行) と『用途の確認が要る費用』(GPU・予約 IP・スナップショット・ロードバランサ・DB・NAT・外向き通信) に仕分けるプログラムを提供しています。
まとめ
明日から、AWS の CUR を CSV で読み、使用量 0 で課金が立っている行や「unused」などのキーワードが含まれる行を抽出してみましょう。まずは手元の CSV でフィルタリングを試すか、costdiag を使用して、請求データの仕分けを試してみましょう。
参考
https://docs.aws.amazon.com/ja_jp/cur/latest/userguide/what-is-cur.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-deleting-volume.html
※本記事は弊社 InfraOne のサービス紹介を含みます
https://infraone.jp/costdiag/?utm_source=qiita&utm_medium=post&utm_campaign=qiita-youtube
※本記事は弊社 InfraOne のサービス紹介を含みます。