Azure異常コストアラート:犯人はResource groupの中にいる!
Azureコストの削減方法を見つける為に日々Azureポータルとにらめっこしているイオンスマートテクノロジー株式会社(AST)の 岩崎 です。
以下のアドベントカレンダーに参加しています。
- Microsoft Azure Advent Calendar 2024の21日目の記事です
- AEON Advent Calendar 2024の14日目の記事です
以前の記事で紹介しましたが、弊社では異常コストアラートルールを設定しています。
対象のサブスクリプション内のリソースのコストが増減するとAzureのロジックに則りアラートが発報される仕組みです。
前日よりいくら増えたら発報するような設定はできず、Azure側で「その日の合計使用料を過去60日間に基づく予測合計と比較し、~」とドキュメントには記載されており、過去の平均から変化があったら検知してくるようでこちらで細かい設定はできません。
コストアラート発報後にどのリソースが犯人なのか、コスト増減の大きさによって犯人を特定するのは難しいです。今まで何度かアラート発報し犯人を特定するまでのフィルタや表示する情報について少しノウハウができましたので紹介したいと思います。
異常コストアラートはサブスク単位で設定しますのでサブスクが多いと大変ですが、今後の為と思って設定を頑張りましょう!設定方法は詳しく説明しませんので、当ページ下部の参考のドキュメントから設定してみてください。設定時に件名の部分にサブスク名を入れておくと検知したサブスクがすぐわかったりします。
異常コストアラートの内容
異常コストアラートの通知内容は以下となります。

異常アラート内容上段
サブスク名や異常が発生した日が確認できます。
赤枠の部分 2024/12/11 0:00:00 となっています、この場合はコスト増減が発生した日は前日の2024/12/10となります。
アラート内容の中段に変化率と対象のリソースグループ名が分かります。
リソース名で通知されませんのでリソースグループと日付から犯人を見つける必要があります。

異常アラート内容中断
今回は変化率の大きいリソースグループAと変化率の小さいリソースグループBが検知されました。
変化率は54.47と2.65とー(マイナス)がないので、増加となります。
目安として10を超えると大きい変化だなと思ったりします。
コスト分析画面
詳細 をクリックすると、発生した2024/12/10以降でリソースグループ毎の日々のコストのグラフが表示されます

詳細>をクリック
実際のコストで表示すると月払いの予約を購入した日(グラフから8日,10日,20日)に突出して表示され、日々の変化を確認するには見ずらいので、分析画面の左上の金額の部分をクリックして、分散コストに変更します

分散コスト
濃い青=リソースグループA の変化率が54.47
水色が=リソースグループB で変化率が2.65
検知した日12/10以降も継続して、コストが発生しているか確認する為、時間を過去30日などにして、検知した日以降も表示します。

過去30日で表示
12/11以降は少し下がっているので一時的なようです。
この後にリソースグループAでフィルタする為にフィルタしたいリソースグループの棒グラフをクリックするだけでフィルタができますが、詳細で表示した時にたまにフィルタが動作しない事があります、それを回避する目的も含めて過去30日などするとフィルタ処理が動作する事があります。(謎だ)
リソースグループAの中に犯人はいる!
ここからはリソースグループAで絞る為、上段のフィルターの追加をクリックして、Resource group nameで絞るか、棒グラフの濃い青をクリックしフィルターする事ができます。

Resource group name=リソースグループAでフィルタ
水色に変わりましたが、リソースグループAでフィルターした画面です。12/10だけ突出していますが、何のサービスがわかりませんのでグループ化:Service nameにします。

グループ化:Service name に変更
12/10の黄緑の部分が増えているのがわかります。
黄緑の棒グラフをクリックして、フィルターします。

黄緑でフィルタ
水色になりましたが、犯人を特定する為にグループ化:リソースにします。

グループ化:リソース に変更
グラフの下にリソース名が表示され犯人がわかりましたのでプロダクトチームに確認して解決です。めでたし、めでたし。
リソースグループBの中に犯人はいる!
変化率の小さいリソースグループBも同じ方法で特定してみます。
リソースグループBでフィルター

リソースグループ=リソースグループB
グループ化:Service nameに変更

グループ化:Service name
12/10、11の赤い丸の緑が増えているようにみえる。変化率も小さい為、少しの増加となっている。緑の部分をクリックして、フィルターする。

緑でフィルター
気付かなかったが11/25と11/30も少しだけ発生したようだ。
グループ化:リソースに変更する。

グループ化:リソース
7個のリソースが犯人である事がわかります。
リソースグループBのアラートも一時的なコスト増で継続して発生していないので問題ないとわかります。
目的は意図しないコストがずっと発生しないことを止める事です。
私が所属するSREチームではこのアラートからの犯人特定をチーム内で回す事で全員が少しづつコスト分析画面の使い方が上手くなっています。
まとめ
- 異常コストアラート内容だけでは犯人はわかりません。
- 発生した日とリソースグループ名で犯人を特定していきます。
- コスト分析画面でフィルターやグループ化を順番通りすすめていく事で犯人を見つけやすくなります
- 最終的に犯人がわからない事はあります
- 意図しない(知らない)コストがずっと発生しない(水道の水が漏れている事に気付かない)事を検知するには異常コストアラートは有効な手段です
参考ページ
異常コストアラートのドキュメント
このドキュメントにもリソースを特定する方法が記載されていますのでこちらも参考にするとよいと思います。
イオングループで、一緒に働きませんか?
イオングループでは、エンジニアを積極採用中です。少しでもご興味もった方は、キャリア登録やカジュアル面談登録などもしていただけると嬉しいです。 皆さまとお話できるのを楽しみにしています!
Discussion