AWSの利用料を把握する。
こんにちは、AWSの利用料がとんでもない金額になってしまった経験があるsumiです。AWSの日々の利用料と月々の利用料を把握しておくことの大切さを学びました…。(家計もね。)
これに反省して想定外の課金に気づけるように毎日SlackにAWS料金を通知することにしました。
Lambda で Slackに通知
毎日9時に前日までの利用料と予測の金額をSlackへ通知させます。
利用料に応じてメッセージを3つに分けていて
- 利用料・予測金額が設定した予算内のとき
- 予測金額が予算を上回りそうなとき
- 利用料が予算を上回ったとき
としています。
ただ金額を通知させるだけよりも、ちょっとコメントがあった方が、他のメンバーにも共有しやすいかなーと思ってこんな仕様に。
参考にしたのはこちら。
利用料の推移をグラフで見せる。
さらに、利用料金の推移を表したグラフも一緒に Slack へアップロードしています。文字だけよりも差分が視覚的にわかりやすいので好評でした。
参考にしたのはこちら。
kintoneで月々のコストを管理
Slack通知以外にも、請求が確定したら(毎月4日あたり)、毎月の利用料金をkintoneで見られるようにしています。
S3に置いている請求のCSVを取得して、整形して、kintoneの「AWS利用料アプリ」へアップロードしています。
「AWSアカウント管理アプリ」から月々のアカウント別の請求が見られるようになっていて、関連テーブルで「利用料アプリ」から対象のデータを取得して請求金額のフィールドに表示させているので、アカウント別に月々の利用料が見られるようになっています。
コメントも書き込めるので何に使ったなどの備忘や共有にも◎
kintoneさいこー。
CloudWatchの異常検出も使ってみる
異常値の検出を機械学習により自動的に行う「Anomaly Detection」(異常検知)機能を、CloudWatchが搭載されたというのでさっそく使ってみました。急な増加などを検知できるのよき。
CloudWatchの管理画面から波型のアイコンをクリックするだけで、指定されたメトリクスの履歴データを読み込んで、機械学習を基に正常値の範囲を自動的に設定してくれるんだとか。
まだ始めてみたばっかりなのでデータ微妙だけど、グレーの範囲が正常値の範囲として設定され、この範囲から外れた値が自動的に異常値と判断してアラートを出してくれるので、うっかりアカウントの侵害されていっぱいインスタンス立てられてしまった!なんて事案にも気付けますね。
(そもそもアカウントの侵害がないようにMFAとかIAM周りしっかりするべきなんだけど)
可視化大事。
日々の利用料をSlackへ通知させるだけで毎日チラッとでも目に入るようになり、コストを意識するようになりました。
見えるようになると、コストを抑えるために考えるキッカケにもなりますし、AWSの利用しているリソースの把握にも繋がります。
AWSを利用する以上、利用料に関する悩みはつきものです。コスト最適化に関する内容もまた書けるといいなと思います。
いただいたサポートはすべて酒に費やします。