【AWS】CUDOS Dashboard をデプロイしてみる【コスト可視化】
はじめに
Cost and Usage Dashboards Operations Solution(CUDOS)と呼ばれるコスト可視化のためのダッシュボードをデプロイしてみます。Cost Explorer でよいのでは?と思う方もいらっしゃると思いますが、主に複数 Organizations のコストをまとめて可視化できる点と Cost and Usage Reports(CUR) を利用したリソースレベルでの可視化が特長かと思います。CUDOS の利点は以下の AWS 公式ブログが参考になります。
下図にあるように、各 Organizations の管理アカウントで CUR を出力し、可視化のために集約する AWS アカウント(Data Collection Account)の S3 バケットにレプリケーションを行い、Glue Crawler で CUR をクロールし Glue Data Catalog を作成し、Athena + QuickSight で可視化するというソリューションになっています。
https://catalog.workshops.aws/awscid/en-US/dashboards/foundational/cudos-cid-kpi より引用
ダッシュボードのサンプルはこちらから参照できます。
デプロイ
以下のページに沿って実施します。
Step1:[Data Collection Account] S3 バケットと Athena テーブルのデプロイ
Data Collection Account(QuickSight をデプロイしたいアカウント)にログインし、以下にある Launch Stack より Cloudformation テンプレートをデプロイします。
パラメータは Destination (Data Collection) Account Id
と Source Account Ids (Comma separated list)
のみ変更しています。
数分でデプロイが終わります。
Step2:[Management Account] Data Exports と Data Collection Account へのレプリケーション設定
集約元となる 各 Organizations の管理アカウント にログインし、以下にある Launch Stack より Cloudformation テンプレートをデプロイします。
パラメータは Destination (Data Collection) Account Id
のみ変更しています。
デプロイが完了すると、Data Exports を設定する Custom Resource(Lambda)と出力先の S3 バケットが作成されていました。S3 バケットには Data Collection Account へのレプリケーション設定がされています。
蛇足ですが、現在は Cloudformation のリソースが用意されているようなので、Custom Resource は不要かもしれません。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html
注意点として、Data Exports は設定以降のデータしか出力されませんが、以下にあるようにサポートケースを各 Organizations の管理アカウントから起票することで 36 ヶ月分のデータまでバックフィルすることができるようです。
You can now create a Support Case , requesting a backfill of your reports (CUR or FOCUS) with up to 36 months of historical data. Case must be created from each of your Source Accounts (Typically Management/Payer Accounts).
Step3:[Data Collection Account] ダッシュボードのデプロイ
Step3.1:QuickSight の準備
QuickSight を利用したことがない AWS アカウントだったので、QuickSight にサインアップ
を選択します。
リージョン間のデータ転送量が発生しないように QuickSight リージョンが Cloudformation テンプレートをデプロイしたリージョンと同じリージョンであることを確認しておきましょう。
CUDOS には不要なので、ピクセルパーフェクトレポートを追加
のチェックを外しておきます。他はデフォルト値で進めます。(認証方法は QucikSight の削除をしないと変更できないので、慎重に検討してください。)
デプロイ手順上は、After pressing the Sign up button you will be presented with 2 options, please ensure you select the Enterprise Edition during this step
と記載がありますが、クラスメソッドさんの以下記事にあるとおり GUI から有効化する場合はスタンダードエディションの選択肢が出ずにデフォルトでエンタープライズエディションとなります。
https://dev.classmethod.jp/articles/quicksight-new-subscription/
Step3.2:ダッシュボードのデプロイ
以下にある Launch Stack より Cloudformation テンプレートをデプロイします。
下図の上から 3 つのパラメータを変更します。
必要に応じてデプロイするダッシュボードを変更します。
他はデフォルトのまま Stack を作成します。
デプロイが完了すると、Athena Workgroup、S3 バケット、Glue Table、Glue Crawler、QuickSight Datasets、ダッシュボードが作成されます。
QuickSight にアクセスするとダッシュボードが作成されています。(デフォルトのままデプロイしたので CUDOS 以外のダッシュボードも作成されています。)
ダッシュボードのデプロイは Custom Resource で行っており、Lambda のログを見ると https://github.com/aws-samples/aws-cudos-framework-deployment からダッシュボードの定義を取得してデプロイしているようです。
CUDOS Dashboard v5
を選択すると以下のような画面が表示されます。CUR を作成してから 24~48 時間経過しないと初回データが出力されないようなので、時間を置いて見てみてください。QuickSight のデータセット更新が AM2:00(JST)、Glue Crawler が AM11:00(JST) に起動するようになっているので、業務開始時間前に変更しておくのが良いと思います。
S3 に CUR のデータが出力されていても QuickSight の表示が変わらない場合は、Glue Crawler の手動実行と QuickSight のデータセット更新を行ってみてください。
ダッシュボードを編集するには、共有
→ ダッシュボードの共有
から編集させたいユーザに 「名前を付けて保存」を許可
を有効化する必要があります。
別名で保存
を選択すると以下のように編集して新しいダッシュボードとして用意することが可能です。
以上
Discussion