はじめに
今回はさくっとAWSのコスト可視化を行っていきたいと思います。PowerBIでAWSのコストを読み込むことで、簡易なコストダッシュボードを作成します。PowerBIを用いたコストダッシュボードは以下のようなユースケースがあると考えています。
- QuickSightやSaaS等を用いてコストの可視化を推進したいと考えているものの、とりあえずダッシュボードで確認してみたい
- 上記の導入にあたり、ステークホルダを説得する材料が欲しい
- 小規模で利用を検討している
環境
- PowwerBI version: 2.147.1085.0 64-bit (2025年9月)
- Windows11
- ODBC Driver version: ODBC 2.0.5.0 for Windows 64-bit
イメージ図
実装
AWS側の設定
コストデータエクスポートの設定
-
以下の内容を入力>[作成]
- 詳細をエクスポート:標準データエクスポート
- エクスポート名:{レポート名}
- データテーブルコンテンツ:CUR 2.0
- データテーブルの設定
- 時間粒度:日次
- 圧縮タイプトファイル形式:Parquet
- ファイルのバージョニング;既存のデータエクスポートファイルを上書き
-
補足:
- 今回は個人のAWSアカウントということもあり、以下のデータを含めています。AWSのリソースIDやコスト配分データを含めることでコストが高騰しているリソースの特定に役立ちます。後から変更できないのでご注意ください。
- リソースID
- コスト配分データ
- 今回はAthenaで読み込むため、Parquet形式のファイルを選択しています。
- 今回は個人のAWSアカウントということもあり、以下のデータを含めています。AWSのリソースIDやコスト配分データを含めることでコストが高騰しているリソースの特定に役立ちます。後から変更できないのでご注意ください。
Athenaの設定
- [ワークグループ]>ワークグループを選択して[アクション]>[編集}
Glueクローラーの設定
- AWS Glue>[Crawlers]>[Create crawler]
- 以下を入力して[Next]を押下
- Name:{レポート名}
- 以下を入力して[Next]を押下
- Data source configuration: Not yet
※[Add a data source]を押下して、データソースを追加する。次に掲載しているスクショのポップアップが表示されるため入力して戻ってくると、データソースが追加された状態になる。
- Data source configuration: Not yet
- 以下を入力して[Add an S3 datasource]を押下
- Data source: S3
- Location of S3 data: In this account
- S3 path: {S3://{Data Exportsの出力先として作成したS3バケット名}}
- Subsequent crawler runs: Crawl all sub-folders
- IAM Roleを設定して[Next]を押下
- 以下を入力して[Next]を押下
- Frequency
- Start time
※[Add database]を押下して、データベースを新規作成する。次に掲載するスクショの画面がポップアップするので必要事項を入力して本画面に戻ってくる
- Nameを入力して[Create database]を押下
IAMユーザの作成
今回はPowerBIからAthenaに接続する際、IAMのアクセスキー/シークレットキーを使用するため、Athena,S3の権限を付与したIAMユーザを作成しています。
ローカルPC側作業
ODBCの設定
-
ODBCドライバーのインストール
こちらからインストール可能です。 -
以下を入力して、OK]を押下
-
[IAM Credentials]を選択して、以下を入力して[OK]を押下
- UserName:アクセスキー
- Password:シークレットキー
PowerBIの設定
-
Microsoft StoreからPowerBIをインストール
-
PowerBIDesktopから接続設定
-
テーブルを選択し[読み込み]を押下
本番運用をするにあたっての検討事項
-
DataExportsでのデータ絞り込み
DataExportsでのデータの絞り込みを行うことにより、配信先で閲覧してほしくない情報を連携しないことが重要です。また、必要な情報のみに絞り込みを行うことによってAthnaで読み込むデータ量を削減できるため、コスト削減にもつながります。 -
ODBCの認証
ODBC接続する場合、認証としてはこちらをサポートしているので、組織に合った認証を選択いただければと思います。IAMのアクセスキー/シークレットキーを使用して接続することはセキュリティ上あまりよくないので、実際に組織で運用していく場合はAzure ADやPingなど他の接続方法での接続が良いと思います。 -
出力形式
今回はCUR2.0にしていますが、FOCUSという複数のクラウドベンダーにまたがるコストと使用量データを標準化仕様を選択しておくと、他クラウドサービスを使用し始めた際に統一しやすいと思います。 -
Quick Sightとの比較
- 構築の手間:Quick Sightのほうがメリットは大きい
DataExportsから一撃でデプロイできるため、Quick Sightのほうが構築の手間は少ないです。また、Cloud Intelligence Dashboards on AWSとしてより詳細な使用料などを含めたダッシュボードも簡単にデプロイ可能です。DataExportsを使ってスモールスタートし、CUDOSダッシュボードを利用して自社にあったカスタマイズをしていくという進め方がよさそうです。 - コスト:PowerBIのほうがメリットは大きい(可能性がある)
コストの大きな違いはユーザ単位での料金かと思います。QuickSightの閲覧者は3USD/月、作成者は24USD/月(年間契約の場合は18USD/月)かかります。一方、Microsoft PowerBIは会社のプランによっては追加の料金支払いは発生しない可能性があります。無料版PowerBIの場合は自分の環境に閉じており、レポートの共有などができません。そのため有償版が望ましいです。
- 構築の手間:Quick Sightのほうがメリットは大きい
まとめ
今回はPowerBIにてAWSのコスト可視化を行いました。Billingの権限は開発者に付与しないケースが多いと思います。会社のOfficerライセンスによっては追加料金なしで他のメンバーにも共有可能であるため、SaaSを利用していない場合、開発者と共有しながらコスト可視化を行っていく1つの方法として有用なのではないかと思います。
今回はあくまで構築に主眼を置きましたが、ビジュアライゼーションのパターンについてはどこかで記事にまとめられればと思います。