概要
AWSを利用する上でコストを分析することはコスト削減のために重要です。
今回は、AWSのコストを可視化して監視する方法をお伝えします。
AWS Cost ExplorerはAWSの利用で発生するコストに関する情報を取得することができるサービスであり、コスト分析に対する強力なツールとなります。
例えば、他のサービスの使用状況やコストについての情報と組み合わせて、グラフを作成することは開発コストの分析に効果的です。
このような他のサービスのデータと組み合わせた分析や、日々更新されるデータを自動で分析するにはデータ分析基盤へのデータ統合を行い、このデータに基づいたグラフや表による可視化が有効です。
そこで今回は、trocco®という分析基盤向けデータ統合サービスを使い、レポートデータの自動取得、DWH(Amazon Redshift)への統合、最後にLookerを用いたデータの可視化までやってみようと思います。
今回、データの転送手段として採用したtrocco®は、AWS Cost Explorerの他にも、様々な広告・CRM・DBなどのデータソースに対応しています。

ゴール
↓画像のようにグラフをまとめたものをほとんどコーディング作業なしに作成します。(作成後は自動で最新値に更新することも可能です)

こんな人におすすめ
- AWS Cost Explorerを利用しており、分析基盤やデータウェアハウスへのデータ移行を考えている方
- 様々なサービス利用に関する情報をまとめて管理したい方
- 各サービスのデータを管理画面から取得する作業に疲れている方
1. DWHと同期する手段の決定
1-1. DWHの決定
まずはデータを集約する場所である、DWH(データウェアハウス)を選定します。
- Amazon Redshift
- Google BigQuery
- MySQLやPostgreSQL など
trocco®はいずれのサービスにも対応していますが、今回はAmazon Redshiftを利用することにします。
1-2. AWS Cost ExplorerのデータをAmazon Redshiftに転送する4つの方法
Amazon Redshiftにデータを集約することが決まったので、続いては転送するための手段を検討します。
- AWS Cost Explorerのデータを管理画面からダウンロードし、手動でAmazon Redshiftにアップロードする
- AWS Cost ExplorerとAmazon Redshiftの各APIを利用したプログラムを書いて連携する
- Embulkを利用して自分で環境を構築する
- trocco®を利用し、画面上で設定する
1 は単発の実行であれば問題はありませんが、日々利用データを取り込んでモニタリングすることを考えると非効率な作業になります。
2 は連携を始める前にAPIについてのキャッチアップ、プログラムをいて環境を構築する時間がかかり、エラー対応などの運用工数が継続的に発生します。
3 も2 と同じくEmbulkはある程度の専門知識が必要になり、自分で環境構築・運用を行うため、手間が発生します。加えてエラーの内容が少し専門的なためエラーの解消に時間が取られる可能性があります。
そこで今回はEmbulkの課題も解決し、プログラムを書かずに画面上の設定のみで作業が完結する、4 のtrocco®を利用します。
2. trocco®でAWS Cost Explorer → Amazon Redshiftの転送自動化
2-0. 事前準備
データの転送のためにはtrocco®のアカウント・AWSのアカウントが必要です。
trocco®はクレジットカード登録不要・無料のフリープランを提供しているので、事前に登録しておきましょう。
https://trocco.io/lp/inquiry_free.html
2-1. 転送元・転送先を決定
trocco®にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。

転送元に「AWS Cost Explorer」を指定し、転送先に「Amazon Redshift」を選択して転送設定作成ボタンを押します。

設定画面になるので、必要な情報を入力していきます。
2-2. AWS Cost Explorerとの連携設定
trocco®には社内のユーザー間でチームを作成し、チーム内で転送設定を共有する機能があります。他のメンバーにもなんの転送設定かわかるように転送設定の名前とメモを入力します。

次に「転送元の設定」内の「接続情報を追加」ボタンを押します。

別タブで接続情報の新規作成画面が開きますので、必要事項を記入して保存ボタンを押します。

再度転送設定画面に戻り、接続情報の「再読込」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。

これでAWS Cost Explorerとの連携は完了です。
2-3. AWS Cost Explorerからのデータ抽出設定
次に、どのようなデータを取得するかを設定していきます。
ここではNetUnblededCostのデータを取得してみます。
指標で「NetUnblededCost」を指定し、データ取得期間を指定します。

2-4. 転送先AmazonRedshiftの設定
転送元と同様に設定していきます。
転送先とするデータベース名、スキーマ、テーブルを設定します。
また、一時的にデータを保存するS3バケットとプレフィックスを指定してください。
最後に転送モードを選択します。insertとすることでテーブルにデータを追加することができます。

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。
2-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。ここではAWS Cost Explorerから取り込んだデータが表示されています。

転送したいデータが取れているので、このまま「確認画面へ」で次に進みます。
次の画面では転送設定の内容確認を行うので、設定の確認が終了したら右下の「適用」のボタンを押します。
2-6. スケジュール・通知設定
「スケジュール・トリガー設定」タブを開きます。

「スケジュールを追加」ボタンを押すと、以下の画像のような入力欄が出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。

2-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、Amazon Redshiftにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。

これで転送は完了です。
3. Amazon Redshiftの設定
Amazon Redshift側で特に操作することはありませんが、プレビューを確認してみると確かにデータが転送されています。

4. Lookerで可視化
それでは、これらのデータをLookerで可視化していきます。
まずはAmazon RedshiftとLookerを接続の設定を行います。
管理タブを開いて「Database」の「Connections」を開きます。

接続しているデータベース一覧が表示されています。ここで「Add Connection」→「Database Connection」から接続するデータベース情報を入力します。


Amazon Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成していきます。
開発タブを開いて「LookMLプロジェクトの管理」に移動します。

「New LookML Project」から新しいLookMLプロジェクトを作成します。


「Create Project」を押したら、エディタでmodelとviewを定義します。
後々必要になるので、modelの中ではexploreを設定しておきましょう。
(書き方が分からない場合はLookerの公式ドキュメントを参照してください)


これでグラフを作る準備が整いました。
トップページに戻って「New」からDashboardを作成します。

白紙のダッシュボードができました。ここに各種グラフを追加していきます。まず「Dashboardの編集」を押します。

続いて、「タイルの追加」を押して、新しいグラフを作成していきます。

先ほどのmodel内で定義したExploreを選択します。

DIMENSIONSにグラフの横軸に表示したいデータ、MEASURESにグラフの縦軸に表示したいデータを設定し、Tileに表示したいデータをプロットします。ここでは日毎のコストをまとめてみます。

これで一つTileが完成しました。この調子で他のTileも作成すると、今回のゴールであるAWS Cost Explorerのデータダッシュボードが出来上がります。

