AWS Cost Anomaly Detection のアラートサブスクリプションでパーセント指定でのしきい値設定が出来るようになりました

2022.12.23

いわさです。

AWS アカウント運用時に Budgets を使って予算を定義することが多いと思いますが、Cost Explorer のコスト異常検出機能 AWS Cost Anomaly Detection を併用すると、組み込みの機械学習モデルを利用して想定外のコストを早期に検出することが出来ます。

Cost Anomaly Detection を構成すると異常が検出されるのですが、その異常を通知する際にはアラートサブスクリプションを使って検出された異常が何ドル以上だった場合に通知するかというしきい値を設定する形でした。

こちら、先日のアップデートで固定値ではなくパーセントでしきい値設定出来るようになりました。
異常値検出を動的に割合ベースで行いたかった方には嬉しいアップデートだと思います。

今回の機能を使ってアラートサブスクリプションを作成してみました。
なお Cost Anomaly Detection は Cost Explorer のサブ機能ですので Cost Explorer の有効化が前提となっています。

設定方法

アラートサブスクリプションのしきい値で固定値かパーセントかドロップダウンで選択出来るようになっています。
以下は従来の固定値の場合です。100 USD を指定しています。

以下はパーセントを指定した場合です。
異常値が 20% を超えた場合に通知を受信します。

設定後はアラートサブスクプション一覧からも確認することが出来ます。
$ か % でどちらのモードでしきい値が設定されているか判別出来ます。

なるほど。複数アラートサブスクリプションを組み合わせることがあると思いますが、アラートサブスクリプションごとにしきい値のモードを設定出来るのでこれは良いですね。
数ドルの異常値超過で通知するユーザーと異常値が大幅に超過した場合の割合で設定するユーザーと分けて運用する際に便利そうです。

インスタンス作成

試しにここで大きめのインスタンスを作成してみます。
最初 32 vCPU のものをドカっと作成しようとしたのですがアカウントの制限で出来ませんでした。

0.1 % 程度のしきい値で 1 日ほど放置したところ翌日 9:00 AM JST 過ぎに通知が来ていました。

そこで、Cost Explorer を見てみると異常値に気づくという感じですね。
Cost Anomaly Detection では Cost Explorer のデータを使用しますが、ドキュメントによると Cost Explorer のデータは最大 24 時間の遅延があるとされています。
また、Cost Anomaly Detection のタイミングは明記されていないのですが 1 日に約 3 回実行されるとあります。
そのため異常を検出するまでに最大 24 時間かかる場合があります。

さらに新しいサービスサブスクリプションの場合は 10 日間のサービス使用状況の履歴が必要とのことです。

※実際のところはこの単純な方法だと Budgets の通知が先に来ていますが...

しきい値の組み合わせ

今回2つのしきい値モードが設定出来るようになったので、ルールを組み合わせることが出来るようになりました。
Add threasholdボタンを押すことで以下のように 2 つのルールを設定することが出来ます。

ルールを組み合わせる際には固定値とパーセントの組み合わせのみが可能で、固定値同士を組み合わせるなどは出来ません。
組み合わせの条件は AND か OR を選択出来ます。

以下の場合であれば異常値が 10% かつ 30 ドルを超過した際に通知するルールとなります。

なお、アラートサブスクリプションの一覧上は組み合わせ時はこのような形になります。

さいごに

本日は AWS Cost Anomaly Detection のアラートサブスクリプションでパーセント指定でのしきい値設定が出来るようになったので設定方法を確認し、実際通知を発生させてみました。

従来利用費から固定での見積もりを行って異常値のしきい値を決めていた方は割合で簡易的な設定が可能になるので正常コストが増加する度に見積もりし直す必要もなく楽になるのではないでしょうか。
設定変更は簡単なので使ってみてください。

なお、今回は EC2 で試してみましたが Cost Anomaly Detection は実は全てのサービスに対応しているわけではありません。
詳細は以下をご確認ください。概ね影響なさそうな気はしますが WorkSpaces が対応していないとかは盲点な気がしますね。

ちなみに今回検証に使ったアカウントは会社で用意されている検証アカウントではなく、個人所有でクレジットが残っているものがあったのでそちらで試してみたのですが、クレジットで相殺される場合でも Cost Anomaly Detection は使えるという学びも得ました。