AWS Budgetsは、トータルコスト
AWS Budgetsでは、決められた金額を超えると通知が来るようにできます。
↑この通知は、1日3回程度測定され(推測)、メールなどで、通知ができます。
↑「推測」ではなく、実際に3回更新されると、AWS側に明記されていました(2019/02/10 追記)
(参考:クラウド破産は、こうして起きる!あっという間に請求額が!)
この「閾値」は、「トータルコスト」です。
AWSの様々なサービスを利用していると、金額の大きなものに目がいってしまいますが、小さな負担で、かつ、利用していないサービスのコストを負担していることがあります。
「us-west-2、オレゴンのリージョンに過去に使ったサービスが・・・」など・・・・
「トータルコスト」だと小さなサービスが目に入らなくなってきます。
このbugetも、月に3件以上は、0.02US$/日のコストがかかります。
使いすぎに注意しましょう(笑)。
サービス毎のコスト増を予測したい
AWSのサービス毎のコスト増は、
https://aws.amazon.com/jp/aws-cost-management/aws-cost-explorer/
の「AWS Cost Explorer」を使うとグラフィカルに表示ができます。
あるサービスが、「じわりじわり」と増加していた場合、1年など、積み重なるとそれなりの金額になってしまいます。使っていないサービスは、やめて、AWSの有意義なサービスにコストをかけたいですね。
サービス毎のコストを手軽に把握したいです。
コストエクスプローラーAPI
今回、勉強のために、コストエクスプローラーAPIを使い、プログラムから、コストをDB化、サービス毎のコストを把握するようにしてみました。
「いつもより、急にコストがあがったぞ」ということを「小さい金額」のうちから、知ることができます。
コストエクスプローラーAPIプログラム
https://github.com/FittedCloud/costreporter
に、pythonで実行できるプログラムがのっています。
このソースをダウンロードします。
AWS AIM
コストエクスプローラーAPIがチェック可能なAIMを作成します。
↑ユーザを作成します。
↑ポリシーを作成します。
↑このポリシーとユーザ名を結びつけます。
pip,bot3
pipとbot3が必要なので、チェックします。
#pip show pip Name: pip Version: 18.1 Summary: The PyPA recommended tool for installing Python packages. Home-page: https://pip.pypa.io/ Author: The pip developers Author-email: pypa-dev@groups.google.com License: MIT Location: /usr/local/lib/python2.7/site-packages Requires: Required-by:
↑pip入っています。
# pip list |grep boto3 boto3 1.9.59
↑boto3、入っています。
Cron設定
/bin/bash KINO=`date +"%Y-%m-%d" --date "1 day ago"` KINO2=`date +"%Y-%m-%d" --date "2 day ago"` FNAME=backup_`date +%Y%m%d%H%M%S`.dat /usr/bin/python /root/aws/cost/costreporter/costreporter.py cost -a <aws access key> -s <aws secret key> -t $KINO2,$KINO -c > /home/aws/csvdata/$FNAME
↑ というshを保存して、1日に1回、起動するようにします。
+------------+----------------------------------------+--------------+ | date | aws_service | cost | +------------+----------------------------------------+--------------+ | 2019-01-x1 | Amazon Elastic Compute Cloud - Compute | 0.002xxxxxxx | | 2019-01-x1 | AmazonCloudWatch | 0 | | 2019-01-x2 | AmazonCloudWatch | 0 | | 2019-01-x3 | AmazonCloudWatch | 0 | | 2019-01-x4 | AmazonCloudWatch | 0 | | 2019-01-x5 | AmazonCloudWatch | 0 | | 2019-01-x1 | AWS Budgets | 0 | | 2019-01-x2 | AWS Budgets | 0.0x | | 2019-01-x3 | AWS Budgets | 0.1x | | 2019-01-x4 | AWS Budgets | 0.1x | | 2019-01-x5 | AWS Budgets | 0.0x | | 2019-01-xx | AWS Cost Explorer | 0.1x | | 2019-01-x3 | AWS Cost Explorer | 0.0x | | 2019-01-x4 | AWS Cost Explorer | 0.0x | | 2019-01-x5 | AWS Cost Explorer | 0.0x | | 2019-01-x1 | EC2 - Other | 0.13xxxxxxx | | 2019-01-x2 | EC2 - Other | 0.13xxxxxxx | | 2019-01-x3 | EC2 - Other | 0.13xxxxxxx | | 2019-01-x4 | EC2 - Other | 0.13xxxxxxx | | 2019-01-x5 | EC2 - Other | 0.13xxxxxxx | +------------+----------------------------------------+--------------+
↑ このようなデータが揃います。
AWSサービス毎の増減を監視
別のプログラムで、過去1週間程度のコストと、最新のコストを比較して
・急にコストが多くなったもの。
・コストが発生したもの
があれば、メールで通知するようにプログラムを組みます。
コストエクスプローラーAPI自体のコスト
APIを叩くと、1回あたり、0.01US$かかりますので、
1日1回、測定をすると、0.3US$かかります。
コストエクスプローラーAPIまとめ
どのサービスにどれだけのコストをかけているのかは、家計簿のようなものです。
けっこう、「あれ?こんなサービスに使っていたのか・・・」など、あるかと思います。
AWSでは、適切なサービスに適切なお金を!
参考サイト(ありがとうございます)