Develop with pleasure!

福岡でCloudとかBlockchainとか。

HRForecastでAWSの利用料金グラフ生成してみた。

WebAPIを叩くことで様々な値をグラフ化してくれるGrowthForecastを使ってAWSの利用料金とリソースの使用状況をグラフ化してみた。

最初はGrowthForecastを使おうと思ったんだけどGrowthForecastだとリアルタイムでログを出力する分には問題ないんだけど、時刻を指定してグラフをプットできない。で時間指定したい場合はHRForecast使うと。(統合したりしないのかな?)

HRForecastのセットアップはMemo/HRForecast - たむちょんの脳内図鑑を参考に実施。
↓のコマンドでHRForecastが起動し、http://localhost:5125/ にアクセスできるようになる。

$ hrforecast.pl  --config config.plのパス

※GrowthForecastもHRForecastもグラフの値として受け付けるのは整数値のみのようで、今回は小数値を登録したかったのでHRForecastをforkした。azuchi/HRForecast · GitHub

AWSの利用料金は予めAWS Account BillingのProgrammatic Accessを利用可能にしてCSV ReportをS3に自動格納するように設定しとく。CSVの各項目の定義はGetting Your Bill - AWS Account Billingを参照。

今回はRubyCSV Reportの内容をPOSTしてグラフを生成するツールを作ってみた。ソースはこちら→azuchi/aws-graph · GitHub

bin/agを叩くとconfig/aws.ymlとconfig/ag.ymlの定義内容見て、S3からCSVのレポートファイルを取得し、各サービス毎のコストを様って、HRForecastに投げてグラフ生成する。リソースの使用状況はCloudWatchからデータを取得してる。

(リソースグラフはAWSのManagementConsoleのCloudWatchの画面からでも確認できるんだけど、データの保持期間が2週間までなので継続的に値を残しときたい場合は別にツールを使う必要があるから。)