AWS Well-Architected Labs で公開されているコスト分析のダッシュボードを試してみた

2023.08.22

AWS Organizations 環境のコストを一元的に分析できる方法を探しており、同僚から AWS Well-Architected Labs におけるコストのダッシュボードを教えていただいたため、試してみました。

CUDOS, KPI and Cost Intelligence Dashboard :: AWS Well-Architected Labs


デモサイトも構築されています。

Cost Intelligence ダッシュボードの デモサイト です。

KPI ダッシュボードの デモサイト です。

CUDOS ダッシュボードの デモサイト です。


本ブログでは AWS Well-Architected Labs に記載の手順に従って環境を構築してみます。構築用の CloudFormation テンプレートが公開されているため、カスタマイズがなければ簡単に構築できました。所要時間は約 30 分でした。ただし、実際にダッシュボードのデータが表示されるのは、データのレプリケーションの関係で約 24 時間以上かかります。

ダッシュボードのデプロイ

ダッシュボードは CUR などの情報を基に Amazon QuickSight Enterprise Edition を表示します。 データ収集用の AWS アカウント(Data Collection Account)にダッシュボードをデプロイし、管理アカウントの CUR からデータをレプリケーションして利用しています。管理アカウントの CUR には組織配下のすべてのアカウントのコスト情報が含まれています。

引用元:CUDOS, KPI and Cost Intelligence Dashboard :: AWS Well-Architected Labs


ブログ上でも手順に従って実行した内容を記載しますが、手順はしっかりと記載されているため、基本的には下記 URL の手順に沿って構築したほうがよいです。

Deploy Dashboards :: AWS Well-Architected Labs


手順は 3 つのステップから成り、各ステップの構築対象が図で分かりやすく示されています。

  • Step.1 Data Collection Account において CUR をレプリケートする S3 バケットを構築
    • CloudFormation でデプロイ
  • Step.2 管理アカウントにおいて CUR の設定、S3 のレプリケーション設定を実施
    • CloudFormation でデプロイ
  • Step.3 ダッシュボードを構築
    • マネジメントコンソールから QuickSight を有効化して、CloudFormation でダッシュボードをデプロイ

引用元:Deploy Dashboards :: AWS Well-Architected Labs


Step.1

Data Collection Account にサインインした後に手順に従い、Lunch Stackのリンクから CloudFormation を実行します。

パラメータにおいて Data Collection Account と管理アカウントの ID を書き換えて実行します。

作成後のリソース一覧です。S3 バケットの他に Lambda 関数も合わせて作成されています。

以上で Step.1 は終了です。Data Collection Account に CUR のレプリケーション先となる S3 バケットが作成されました。


Step.2

管理アカウントにサインインした後に手順に従い、Lunch Stackのリンクから CloudFormation を実行します。

パラメータにおいて Data Collection Account のアカウント ID を書き換えて実行します。

作成後のリソース一覧です。CUR の設定と S3 バケット、レプリケーションルールの設定が作成されています。

CUR の設定です。使用量の時間詳細度は「時間別」、圧縮タイプは「Parquet」となっています。

S3 バケットのレプリケーションルールの設定です。

以上で Step.2 は終了です。CUR の設定と Data Collection Account の S3 バケットへのレプリケーション設定が作成されました。


このまま Step.3 に進むこともできますが、レプリケーションには約 24 時間かかるとの注意書きがあったため、レプリケーションが確認できてから Step.3 を進めることにしました。

It will take about 24 hours for your CUR to populate and replicate to your destination (data collection) account where you will deploy the dashboards. You can continue, but the dashboards will be empty. Or you can return to the next steps after 24 hours.

引用元:Deploy Dashboards :: AWS Well-Architected Labs


また、サポート起票により、過去 12 ヶ月 の CUR データのバックフィルをリクエストすることを薦める記載もありましたが、今回は検証目的のため実施しません。

We also recommend creating a Support Case in Service=Billing and Category=Invoices and Reporting, requesting a backfill of your CUR (name=cid) with 12 months of data. Case must be created from your Source Account (Management/Payer account).

引用元:Deploy Dashboards :: AWS Well-Architected Labs


Step.3

Data Collection Account のマネジメントコンソールから QuickSight を有効化します。

Enterprise Edition を選択して進みます。手順において Enterprise Edition とする必要があると記載されています。

ユーザー情報を入力して進みます。

Enterprise + Q について聞かれますが、今回は利用しないため「No, Maybe Later」と選択して進みます。

認証方法、QuickSight リージョン、QuickSight の AWS のサービスへのアクセスを設定します。QuickSight の AWS のサービスへのアクセスでは、S3 を選択して CUR がレプリケートされているバケットを選択します。Redshift や RDS、IAM へのアクセスは不要と思いましたが、手順の画像キャプチャにおいても選択済みであったため、そのままにしています。

「完了」をクリックすれば、環境ができます。


完了後の手順では、SPICE 容量が合計 40GB になるように購入する手順となっていますが、今回は検証目的のためスキップします。

Click on the SPICE Capacity option. Purchase enough SPICE capacity so that the total is roughly 40GB. If you get SPICE capacity errors later, you can come back here to purchase more. If you’ve purchased too much you can also release it after you’ve deployed the dashboards.

引用元:Deploy Dashboards :: AWS Well-Architected Labs


次に、Data Collection Account にサインインしている状態で、QuickSight のダッシュボードを作成する CloudFormation テンプレートを実行します。Step.1 でデプロイしたリージョンと同じリージョンでデプロイします。

パラメータが多いので、抜粋して掲載します。Common Parameters の最初の 2 つは状況の確認を問う内容です。3 つ目の「User name of QuickSight user」は先ほど構築した QuickSight から利用しているユーザー名を確認して入力します。

次の 3 つのパラメータでは作成するダッシュボードの種類を回答します。今回は 3 つのダッシュボードともyesとします。

  • Deploy CUDOS Dashboard
  • Deploy CostIntelligenceDashboard
  • Deploy KPI Dashboard

後はデフォルトのパラメータとしています。

作成後のリソース一覧です。

最後に QuickSight の画面に戻り、右上の人型アイコンから「QuickSight を管理」を開きます。

「セキュリティとアクセス権限」メニューの「管理」をクリックします。

Amazon S3 を選択した後に、CUR がレプリケートされているバケットと Athena クエリ結果のバケットを選択して進めます。

以上で Step.3 は終了です。QuickSight のダッシュボードが作成されました。


ダッシュボードの確認

Step.3 で実行した CloudFormation の「出力」において、ダッシュボードの URL が出力されているため、クリックして開きます。

コスト分析は CostIntelligenceDashboardURL の URL から確認できます。

残念ながら、今回試した環境ではほとんど利用がないアカウントである上に 1 日分の CUR 情報しかなかったためか、多くのダッシュボードはデータなし・不足の状態でした。

それでも OPTICS のダッシュボードでは条件を指定して利用料の分析ができました。下記画像は第一条件をサービス、第二条件をアカウントとした場合の過去 1 ヶ月のコストを表示しています(CUR が 1 日分なので実質は過去 1 日分です)。

他には、Reserved Instances や Savings Plans の利用状況やトレンドなども確認できます。どのような見え方になるのかはデモサイトからも確認できます。

https://d1s0yx3p3y3rah.cloudfront.net/anonymous-embed?dashboard=cid

さいごに

コスト分析の方法を検討しているときに同僚から教えてもらった、AWS Well-Architected Labs で公開されているダッシュボードを試してみました。カスタマイズをしない場合は簡易にデプロイできたため、コストのダッシュボードを検討されている方は一度試してみるのも良いと思いました。

以上、このブログがどなたかのご参考になれば幸いです。