AWS Data ExportsとAWS CUR 2.0について
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_name
、line_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