AWS Cost Anomaly Detectionを動かしてみる
今回はAWS Cost Anomaly Detectionを簡単に触ってみたので、概要をまとめておきます。
AWS Cost Anomaly Detectionとは
AWS Cost Anomaly DetectionはAWS Cost Managementの機能の一つです。AWS Cost managementはAWSを利用して発生する金銭的コスト関連の機能を提供し、代表的な機能にはAWS Cost Explorer / AWS Budget などがあります。
AWS Cost Anomaly Detectionは内部で機械学習モデルを使い、異常なパターンのコスト消費パターンを検知します。また事前にAmazon SNS Topicでアラートを設定すると、異常なコスト消費を検知するとアラートを発砲することも可能です。
さらに本機能は、利用者が定期的にアラートを評価し、コスト異常と判定された検知が誤ったものだった場合はそれを伝えることで、以降はより精度高く異常なパターンを検知するよう学習させることもできます。
Cost Anomaly Detectionの利用
AWS Cost Anomaly Detectionを利用するには、AnomalyMonitor
/ AnomalySubscription
を作成する必要があります。今回は以下のCloudFormationを利用して作成しています。なお、AnomalySubscription
の作成には Subscriber
の設定が必須のため、SNS Topicを作成していますが、ここでは特に通知設定は入れていません。
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
EnvName:
Type: String
Default: aws-example
Resources:
AnomalyServiceMonitor:
Type: AWS::CE::AnomalyMonitor
Properties:
MonitorName: "MonitorTest"
MonitorType: "DIMENSIONAL"
MonitorDimension: "SERVICE"
AnomalySubscription:
Type: AWS::CE::AnomalySubscription
Properties:
SubscriptionName: Subscription
ThresholdExpression: '{
"Dimensions": {
"Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
"MatchOptions": [ "GREATER_THAN_OR_EQUAL" ],
"Values": [ "0.1" ]
}
}'
Frequency: IMMEDIATE
MonitorArnList:
- !Ref 'AnomalyServiceMonitor'
Subscribers:
- Type: SNS
Address: !Ref 'SNSTopic'
SNSTopic:
Type: AWS::SNS::Topic
Properties:
DisplayName: !Ref EnvName
導入してしばらくすると、以下のような異常を検知しました。
検知したアラートを選択すると詳細が表示されます。ここでは原因としてAWS Configの利用が挙げられています。
このアラートが検知される前はAWS Security Hubを操作しており、AWS Security Hubはサービス内部でAWS Configを利用します。AWS Security Hubはこの時の初めて利用したため、おそらくそれが原因で発生した金額を異常と検知したと思われます。
また検知画面からはAWS Cost Explorer画面に移動もできるため、より詳細を知りたい場合はこちらも利用できます。
なお、今回はAmazon SNSを正しく設定していませんが、その場合は以下のようなメールが通知されるようです。
参考
Discussion