コスト管理の新機能「Data Export」で請求データをSQLでエクスポート可能になりました! #AWSreinvent
コスト管理データの新機能「Data Export」で、請求データの任意データをSQLでエクスポートできるようになりました!
絶賛re:invent2023が開催中の現在、多数のアップデートが出ています。今回は、請求周辺のData Exportという機能と、合わせてCUR 2.0が新規リリースされましたので、その内容を紹介していきます。
請求データあれこれできるのきたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /
Data Exportのアップデート公式情報とサマリー
アップデートはこちら。
今回Data Exportsの新機能で、SQLを利用して請求やコスト管理に関するデータをエクスポートできるようになりました。エクスポートデータは、BIやデータ分析で利用するためにS3バケットに定期的に配信することができ、既存のCost and Usage Reportと同じ情報が含まれています。
SQL形式でデータを選択することで、配信先に必要なデータのみを提供できるようになります。
もっと踏み込んだ利用方法が記載されている公式ブログはこちら。
以前より、ユーザーではCost and Usage Reports(CUR)を利用して、AWS提供の詳細なデータをエクスポートして受け取ることはできましたが、CURではエクスポートされたカラムはユーザーのAWS利用状況に応じて時間とともに変化し、その中のデータを制御することができませんでした。
Data Exportでは、CUR 2.0のエクスポートを作成することで、エクスポートする列を選択したり、ビジネスユニットのコストをフィルタリングしたり、特定データを非表示にしたりするなど、任意のクエリを請求データにかけることができます。
公式ドキュメントのユーザーガイドはこちら。
Data Exportが利用できるリージョン
AWS GovCloud(US)リージョンと中国リージョンを除く全てのAWSリージョンで利用可能です。
実際にData Exportを試してみる
2023年11月27日
現状、作成したDataExportを参照しようとすると、何故かマネコントップページにリダイレクトされます。そのため作成したDataExportをマネコンから編集できません。おそらくリリース直後でうまく動作していないようなので、その部分はブログに含まれていません。
というわけで、実際にData Exportを試してみます。
AWSのマネコンからBilling and Cost Managementを開くと、コスト分析とレポートセクションにData Export(データエクスポート)メニューが増えているのでクリックします。
そうすると、こんな感じでData Exportの初期画面が表示されるので、中央下の作成ボタンをクリック。
すると、データエクスポートの作成画面に遷移します。エクスポートタイプも複数から選択できますが、今回は標準データエクスポートを利用。
データエクスポート名を入力し、データテーブルコンテンツ設定で、実際にエクスポートする列を選択できます。
この列は全部で114種類あり、詳細は公式のCost and Usage Report (CUR) 2.0 - Data exportsより、参照可能。
列の選択結果は、このようなSQLとしてプレビューすることが可能。逆にSQLからデータエクスポオートを作成することも可能なので、組織間でクエリを共有するなり、CLIやSDKでメンテナンスするなどの用途にも使えます。
その他データテーブル配信オプションや配信先のデータエクスポートストレージ(S3バケット)を設定して、Data Exportを作成。そうすると、このようにData Exportが作成され、最初の一覧に追加されます。
抽出されたデータを確認する
抽出データの構造の公式ドキュメントはこちら。
Understanding export delivery - Data exports
抽出データのS3パスはこのようになっています。パスにexport-name
が含まれているので、エクスポート設定時のS3prefixをエクスポート名単位で分ける必要はなさそうです。
s3://[bucket-name]/[prefix]/[export-name]/data/[partition]/
しばらくすると、作成したDataExportの定義にしたがって、請求データがS3にエクスポートされます。プレフィックス下を覗くとこのようにdata
とmetadata
の2つのディレクトリが存在します。
metadata
エクスポートされたファイルのメタ情報がManifest.json
として格納されています。このファイルは、データがエクスポートされる都度更新され、以下の情報を含みます。
- エクスポートした全ての列情報
- エクスポートしたファイルパス
- エクスポート日付
data
エクスポートデータ本体は、1つの実行結果を1つのファイル(gzip/csvまたはParquet)として、またはエクスポートが十分に大きくなった場合に複数の「チャンク」(別々のgzip/csvまたはParquetファイル)として配信されます。
- gzip/csv形式の場合
- .csv.gz
- Parquet形式の場合
- .snappy.parquet
自分の環境では、Parquet形式で MyFirstExport-00001.snappy.parquet
と言うファイル名でエクスポートされていました。
請求データへの柔軟なアクセス方法を提供する意欲的なアップデート
これまで、CURを請求データの分析に使っていた組織もかなり多いと思いますが、このData Exportの機能を利用することで、より柔軟かつプログラマブルに請求データの管理が実現できそうです。大規模にAWSを利用している組織であれば、このデータを利用することで、管理上の手間が一気に省略できる可能性もありそうなので、請求データに興味があるかた、一度試してみてはいかがでしょうか。
それでは、今日はこのへんで。濱田(@hamako9999)でした。