👻

AWS Data ExportsとAWS CUR 2.0について

2024/06/30に公開

2023年11月にAWSコスト管理のアップデート版の「Data Exports」という機能がリリースされました。それに合わせて、AWS Cost and Usage Reports(以下、CUR)2.0もリリースされました。今までのCURはレガシーCURと位置づけになります。

CURはAWSのコストやリソースの使用状況をS3やRedshiftにアップロードしてくれる機能です。EC2インスタンスIDなどのリソース単位を含めることができるため、コストの追跡が容易になります。

CUR 2.0はレガシーCURと比べて以下のような特徴があります。

出力されるカラムを選択、固定化

レガシーCURはすべてのカラムが出力されるうえに動的であるため、AWS以外のDWHに組み込むのが難しい問題がありました。ちなみに、AWS環境だとCloudFormationによってGlueクローラーを構築することで自動追従できるため、Athenaで利用するのが容易です。

CUR 2.0は取得したいカラムだけを選択して固定にできます。また、必要なカラムに制限することでおS3に出力するデータ量を減らすメリットもあります。

カラムの追加

CUR 2.0ではAWSアカウント名カラム(bill_payer_account_nameline_item_usage_account_name)が追加されました。

今まではAWSアカウントIDのみだったので何のAWSアカウントなのかクエリする側で情報を持っておくか別テーブルで管理しなければなりませんでした。アカウント名カラムが出たことでダッシュボード等で見やすくなるでしょう。

カラムのネスト化

特定のカラムをネスト(折りたたむ)ことができるようになりました。ネスト化することでデータのバラツキを減らすことができるメリットがあります。

クエリでネストから取得するのが面倒な場合は、オプションで別カラムに切り出すことができます。

Data Exportsのタイプ

Data Exportsには3つのタイプがあります。

  • Standard data export: CUR 2.0によるS3へのエクスポート
  • Cost and usage dashboard: QuickSightとの統合
  • Legacy data export: CUR 1.0

Data Exportsに従来のCUR(レガシーCUR)と、CUR 2.0が包含されていることになります。

Terraformのサポートについて

レガシーCURはTerraformのaws_cur_report_definitionリソースで定義できます。詳細は以下のブログを参照してください。

AWS Cost and Usage Reports(CUR)をTerraformで作成する

CUR 2.0はAWSプロバイダーv5.47.0でaws_bcmdataexports_exportリソースがリリースされます。2024/06/30時点では未リリースなので、リリースされたら試してみたいと思います。

terraform-provider-aws/CHANGELOG.md at v5.47.0 · hashicorp/terraform-provider-aws

最後に

Data ExportsとCUR 2.0について簡単に紹介しました。CUR 2.0のメリットとしてカラム固定化が個人的に嬉しいですね。

以前に調べたときはCUR 2.0のTerraform実装がなかったので採用を見送っていましたが、今後リリース予定になっているため、再度検討してみたいと思います。

Discussion