メンバーズ CUR でやってみよう!Grafana を利用したダッシュボード編
今回はメンバーズ CUR と Grafana を利用してダッシュボードを作成していきます。
下記を目標とします。
- メンバーズ CUR でも Grafana を利用してデータが表示できる
- 下記のソリューション(COAST:Cost Optimization and Savings Toolkit for Amazon Managed Grafana)を作成できる
ソリューションサンプル:


関連情報:
- Deploy and Use COAST Dashboards for Amazon Managed Grafana | Amazon Web Services
- Visualize and gain insights into your AWS cost and usage with Amazon Managed Grafana
事前準備
メンバーズ CUR と Athena 環境
メンバーズ CUR を利用した Athena 環境の作成は、こちらをご参照ください。
Grafana 環境
今回 Grafana は Amazon Managed Grafana を利用します。ワークスペース作成前までの初期設定は完了している状態から開始します。Amazon Managed Grafana や初期設定に関しては下記をご参照ください。
やってみよう
Athena ワークグループ作成
最初に Athena クエリ結果の保存用S3バケットを作成します。
S3 > バケットを作成

- バケットタイプ:汎用
- バケット名:
grafana-athena-query-results-XXXXXXX
grafana-athena-query-results- から始まる名称のバケットが作成されていればOKです。

続いて Athena ワークグループを作成します。
Athena > ワークグループ > ワークグループを作成

- ワークグループ名:任意の名称

- クエリ結果の管理:カスタマーマネージド
- クエリ結果の場所:先ほど作成した S3 バケット
- バケット所有者にクエリ結果に対する完全なコントロールを割り当てる:チェック
- クエリ結果を暗号化:チェック
- 暗号化タイプ:SSE_S3

- タグ:GrafanaDataSource/true を追加
ワークグループを作成します

Grafana ワークスペース作成
Amazon Managed Grafana > ワークスペースを作成

- ワークスペース名:任意の名称

- 認証アクセス:AWS IAM ID センター

- ワークスペース設定オプション:プラグイン管理をオンにする

- データソース:Amazon CloudWatch と Amazon Athena をチェック
ワークスペースを作成します。
ユーザーまたはユーザーグループの割り当てに関するメッセージが表示されている場合は、ガイドに沿って割り当てます。

利用するユーザー or グループを選択します。

必要に応じて権限を変更します。今回は「管理者」へ変更します。

データソース登録
Amazon Grafana > Workspaces > 作成したワークスペース > データソース

- Grafana で設定
Grafana へのログイン画面が表示されたら、ログインします。
Apps > AWS Data Sources
Athena 用プラグインのインストール状況を確認します。

インストールされていなければ、インストールを実行します。

Apps > AWS Data Sources > Data sources

- Service:Athena
- Browse and provision data sources:メンバーズ版 CUR のデータベース
無事に追加出来ると下記のように表示されます

ここで Grafana 向けに作成されている IAM Role へ AmazonS3ReadOnlyAccess ポリシーを追加します。

ポリシーを追加したら Grafana に戻ります。
Connections > Data sources > 追加したデータソースを選択 > Dashboards > Athena Cost and Usage Report

デフォルトで用意されているダッシュボードでデータを確認します。Datasource が異なる場合は再度選択します。

それでもNo dataのままなため、クエリを確認します。

ブレンドコストで計算されていることがわかります。
メンバーズ版 CUR ではブレンドコスト(line_item_blended_cost)は出力されないため、非ブレンドコスト(line_item_unblended_cost)へ修正してみます。

select
bill_billing_period_start_date,
sum(line_item_blended_cost) AS cost
from $CUR_Table
where
$__timeFilter(bill_billing_period_start_date)
and
product_location in ($Regions)
and
line_item_product_code in ($Services)
group by 1
order by 1
↓↓↓
select
bill_billing_period_start_date,
sum(line_item_unblended_cost) AS cost
from $CUR_Table
where
$__timeFilter(bill_billing_period_start_date)
and
product_location in ($Regions)
and
line_item_product_code in ($Services)
group by 1
order by 1
修正後に Apply(適用)すると、今度はデータが表示されました。

ここまでで、メンバーズ版 CUR を利用して Grafana でデータが表示されること、ダッシュボードが作成出来ることを確認してきました。
COAST ダッシュボード作成
最後に、ソリューションとして提供されている COAST ダッシュボードを作成していきます。
COAST では CUR 2.0、FOCUS、レガシー CUR の3種類のデータ形式でそれぞれダッシュボードが提供されていますが、メンバーズ版 CUR はレガシー CUR 形式のため、レガシー CUR 向け(archive にある)ダッシュボードを JSON ファイルから作成していきます。
Dashboards > Create Dashboard > Import dashboard

まずは COAST のデフォルトダッシュボード(旧CURE)を作成してみます。





良さそうですね。No data もなく表示されています。
他にもいくつかのダッシュボードが提供されています。
- cost_of_coast
- EC2 Dashboard
- Persona Dashboard :: Engineering Dashboard
- Persona Dashboard :: Executive Dashboard
- Persona Dashboard :: FinOps Dashboard
Persona Dashboard :: Executive Dashboard も作成してみます。


こちらも無事に表示されました。
まとめ
今回はメンバーズ CUR と Grafana を利用したダッシュボードを作成しました。デフォルトのウィジェットの中には出力されるデータ仕様上、修正が必要な内容もありましたが、基本的には問題なく利用することが可能でした。またソリューションとして提供されているダッシュボードに関しても作成することが出来ました。
CUR を利用したダッシュボードといえば CID(Cloud Intelligence Dashboard)や CUD(Cost and Usage Dashboard)がありますが、既存の Grafana リソースがある場合や組織にとって馴染みがあるといった場合などでは、Grafana でダッシュボードを作成して可視化することも選択肢の一つとなるかと思います。






