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を参照。
今回はRubyでCSV Reportの内容をPOSTしてグラフを生成するツールを作ってみた。ソースはこちら→azuchi/aws-graph · GitHub
bin/agを叩くとconfig/aws.ymlとconfig/ag.ymlの定義内容見て、S3からCSVのレポートファイルを取得し、各サービス毎のコストを様って、HRForecastに投げてグラフ生成する。リソースの使用状況はCloudWatchからデータを取得してる。
(リソースグラフはAWSのManagementConsoleのCloudWatchの画面からでも確認できるんだけど、データの保持期間が2週間までなので継続的に値を残しときたい場合は別にツールを使う必要があるから。)