AWS Cost and Usage Report
AWS の詳細なコストと使用量データを S3 に配信するレポートサービス
何ができるか
AWS Cost and Usage Report (CUR) は、AWS の利用料金と使用量に関する最も詳細なデータを CSV または Parquet 形式で S3 バケットに配信するサービスです。リソース単位の料金明細、使用時間、データ転送量、割引適用状況など、請求に関するあらゆる情報が含まれます。Cost Explorer では確認できない粒度の細かいデータを取得でき、独自のコスト分析基盤を構築できます。
どのような場面で使うか
大規模な AWS 環境で、リソース単位のコスト配分を正確に行う場面や、Athena や QuickSight を使って独自のコストダッシュボードを構築する場面で活用されています。また、FinOps チームが月次のコストレポートを自動生成したり、Savings Plans や Reserved Instances のカバレッジを詳細に分析する場面でも利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
クレジットカードの利用明細に例えるとわかりやすいでしょう。Cost Explorer が月次の請求書 (合計金額とカテゴリ別の内訳) だとすると、CUR は 1 件 1 件の取引明細 (日時、店舗名、金額、ポイント適用状況) に相当します。明細データがあれば、独自の集計や分析を自由に行えます。
Cost and Usage Report とは
この記事は約 2 分で読めます。 AWS Cost and Usage Report (CUR) は、AWS の利用料金に関する最も詳細な生データを提供するサービスです。Cost Explorer がグラフィカルな分析ツールであるのに対し、CUR は生の明細データを S3 に配信します。このデータを Athena、Redshift、QuickSight などで分析することで、Cost Explorer では実現できない高度なコスト分析が可能になります。
レポートの内容と粒度
CUR には、リソース ID、使用タイプ、オペレーション、料金、割引額、タグ情報など、数百のカラムが含まれます。時間単位、日単位、月単位の粒度を選択でき、時間単位を選べば「この EC2 インスタンスが何時から何時まで稼働し、いくらかかったか」まで追跡できます。リソース ID を含めると、個々のリソースごとのコストを正確に把握できます。
Athena との連携
CUR のデータを Athena で分析するのが最も一般的なパターンです。CUR の設定で「Athena との統合」を有効にすると、Glue データカタログにテーブルが自動作成され、SQL クエリでコストデータを分析できます。たとえば「先月の EC2 コストをインスタンスタイプ別に集計」「タグ未設定のリソースのコスト合計」といったクエリを実行できます。Parquet 形式を選択すると、クエリのスキャン量が削減されて Athena のコストも抑えられます。
はじめかた
CUR を使い始めるには、請求コンソールの「Cost and Usage Reports」から新しいレポートを作成します。レポート名、時間粒度、データ形式 (CSV または Parquet)、配信先の S3 バケットを指定します。レポートは 1 日に数回更新され、S3 バケットに配信されます。Athena との統合を有効にすれば、配信されたデータをすぐに SQL で分析できます。
Azure・オンプレミスとの比較
AWS の優位点
- リソース ID レベルの詳細な料金明細を提供し、個々のリソースごとのコストを正確に追跡できる
- Athena との統合が標準で提供されており、SQL クエリで大量のコストデータを高速に分析できる
- Parquet 形式での配信に対応しており、データの圧縮率が高く、Athena のスキャンコストを削減できる
注意点
- CUR 自体は無料だが、配信先の S3 ストレージ料金と、Athena でのクエリ実行料金が発生する。Parquet 形式を選択するとデータサイズが削減され、コストを抑えられる
- リソース ID を含めるとレポートのデータ量が大幅に増加する。詳細な分析が不要な場合はリソース ID を除外してデータ量を抑えること
- CUR のデータは最大 24 時間の遅延がある。リアルタイムのコスト監視には Cost Explorer や Budgets を併用すること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。