異常検出に基づいて CloudWatch アラームを作成する - Amazon CloudWatch

異常検出に基づいて CloudWatch アラームを作成する

CloudWatch の異常検出に基づいてアラームを作成できます。これにより、過去のメトリクスデータが分析され、予想される値のモデルが作成されます。予想される値では、メトリクスの一般的な時間単位、日単位、週単位のパターンを考慮します。

異常検出のしきい値を設定すると、CloudWatch は、このしきい値をモデルで使用して、メトリクスの「正常」な値の範囲を決定します。しきい値を高くするほど、「正常」な値の範囲が広がります。

アラームがトリガーされるのが、メトリック値が想定値の範囲を上回る場合、下回る場合、または上回るか下回った場合のいずれかを選択できます。

また、単一のメトリクスとメトリクスの数式の出力で異常検出アラームを作成することもできます。これらの式を使用して、異常検出バンドを可視化するグラフを作成できます。

CloudWatch クロスアカウントオブザーバビリティのモニタリングアカウントとして設定されたアカウントでは、モニタリングアカウントのメトリクスに加え、ソースアカウントのメトリクスに対しても異常ディテクタを作成できます。

詳細については、「CloudWatch 異常検出の使用」を参照してください。

注記

メトリクスコンソールで、既に可視化目的で異常検出を使用しているメトリクスに異常検出アラームを作成する場合、アラームに設定したしきい値により、既に可視化に使用されているしきい値が変更されることはありません。詳細については、「グラフの作成」を参照してください。

異常検出に基づくアラームを作成するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[アラーム]、[すべてのアラーム] の順に選択します。

  3. [アラームの作成] を選択します。

  4. [メトリクスの選択] を選択します。

  5. 次のいずれかを行います。

    • メトリクスを含むサービス名前空間を選択し、表示されるオプションを順次選択して、オプションを絞り込みます。メトリクスのリストが表示されたら、メトリクスの横にあるチェックボックスをオンにします。

    • 検索ボックスに、メトリクス、ディメンション、またはリソース ID の名前を入力します。結果のいずれかを選択してから、メトリクスのリストが表示されるまで、表示されるオプションを選択する操作を続けます。メトリクスの横にあるチェックボックスをオンにします。

  6. [グラフ化したメトリクス] を選択します。

    1. (オプション) [Statistic] (統計) 列でドロップダウンを選択してから、事前定義済みの統計またはパーセンタイルのいずれかを選択します。ドロップダウンの検索ボックスを使用して、「p95.45」などのカスタムパーセンタイルを指定できます。

    2. (オプション) [Period] (期間) 列でドロップダウンを選択してから、事前定義済みの評価期間のいずれかを選択します。

      注記

      CloudWatch がアラームを評価すると、その期間が単一のデータポイントに集約されます。異常検出のアラームの場合、評価期間は 1 分以上である必要があります。

  7. [Next] を選択します。

  8. [Conditions (条件)] で、次のように指定します。

    1. [異常検出] を選択します。

      このメトリクスと統計のモデルが既に存在する場合、CloudWatch では、画面上部のサンプルグラフに異常検出バンドのプレビューが表示されます。アラームを作成した後、グラフに実際の異常検出バンドが表示されるまでに最大 15 分かかる場合があります。その前に、表示されるバンドは異常検出バンドの近似値です。

      ヒント

      グラフを表示する時間枠を長くするには、ページの右上にある [Edit] (編集) を選択します。

      このメトリクスと統計のモデルがまだ存在しない場合、CloudWatch では、アラームの作成が完了した後に異常検出バンドが生成されます。新しいモデルの場合、実際の異常検出バンドがグラフに表示されるまでに最大 3 時間かかる場合があります。新しいモデルのトレーニングには最大 2 週間かかる場合があり、これにより異常検出バンドはより正確な予測値を示すようになります。

    2. [Whenever metric is] (メトリクスが次の時) で、アラームをトリガーするタイミングを指定します。例えば、メトリクスがバンドを超えている、下回っている、または (いずれかの方向に) 外れている場合です。

    3. [Anomaly detection threshold (異常検出のしきい値)] で、異常検出のしきい値に使用する数値を選択します。数値を大きくすると、メトリクスの変化に対してより高い許容度をもつ、「通常の」値の広いバンドが作成されます。数値を小さくすると、メトリクスの偏差が小さい、ALARM 状態の細いバンドが作成されます。数値を整数にする必要はありません。

    4. [Additional configuration (追加設定)] を選択します。[Datapoints to alarm (アラームを発生させるデータポイント数)] で、アラームをトリガーするために ALARM 状態を維持する必要がある評価期間 (データポイント) の数を指定します。2 つの値が一致する場合は、該当する数の連続した期間でしきい値を超過したときに ALARM 状態に移行するアラームを作成します。

      N 個中 M 個のアラームを作成するには、2 番目の値よりも小さい数字を最初の値に指定します。(詳細については、アラームの評価 を参照してください)。

    5. [Missing data treatment] (欠落データの処理) で、一部のデータポイントが欠落している際のアラームによる対処方法を選択します。(詳細については、CloudWatch アラームの欠落データの処理の設定 を参照してください)。

    6. モニターリングする統計としてパーセンタイルをアラームで使用している場合は、[サンプル数が少ないパーセンタイル] ボックスが表示されます。これを使用して、サンプル数が少ないケースを評価するか無視するかを選択します。[Ignore (maintain alarm state)] (無視 (アラーム状態を維持する)) を選択すると、サンプル数が少なすぎる場合でも現在のアラーム状態が常に維持されます。詳細については、「パーセンタイルベースの CloudWatch アラームおよび少数のデータサンプル」を参照してください。

  9. [Next (次へ)] を選択します。

  10. [通知] で、アラームが ALARM 状態、OK 状態、または INSUFFICIENT_DATA 状態のときに通知するための SNS トピックを選択します。

    同じアラーム状態または異なるアラーム状態について複数の通知を送信するには、[Add notification] (通知の追加)を選択します。

    アラームの通知を送信しない場合は、[Remove] (削除) を選択します。

  11. 状態が変更されたときに EC2 アクションを実行したり、Lambda 関数を呼び出したりするように、あるいは、ALARM 状態になったときに Systems Manager の OpsItem またはインシデントを作成するようにアラームを設定できます。これを行うには、該当するボタンをクリックし、アラーム状態および実行するアクションを選択します。

    Lambda 関数をアラームアクションとして選択する場合、関数名または ARN を指定し、オプションで関数の特定のバージョンを選択できます。

    Systems Manager のアクションの詳細については、「アラームから OpsItems を作成するように CloudWatch を設定する」および「Incident creation」を参照してください。

    注記

    AWS Systems Manager Incident Manager アクションを実行するアラームを作成するには、特定のアクセス許可が必要です。詳細については、AWS Systems Manager Incident Manager のアイデンティティベースのポリシーの例を参照してください。

  12. [Next] を選択します。

  13. [Name and description] (名前と説明) にアラームの名前と説明を入力し、[Next] (次へ) をクリックします。アラーム名には UTF-8 文字のみを使用する必要があり、ASCII 制御文字は使用できません。説明にはマークダウン形式を含めることができます。マークダウン形式は、CloudWatch コンソールのアラームの [詳細] タブにのみ表示されます。マークダウンは、ランブックや他の内部リソースへのリンクを追加するのに役立ちます。

    ヒント

    アラーム名には UTF-8 文字のみを使用する必要があり、ASCII 制御文字は使用できません

  14. [Preview and create] (プレビューと作成) で、アラームの情報と条件が正しいことを確認し、[Create alarm] (アラームの作成) をクリックします。

異常検出モデルの変更

アラームの作成後、異常検出モデルを調整できます。モデルの作成に使用しない特定の期間を除外できます。システムの停止、デプロイ、休日などの異常なイベントは、トレーニングデータから除外することが重要です。夏時間の変更に合わせてモデルを調整するかどうかも指定できます。

アラームの異常検出モデルを調整するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[アラーム]、[すべてのアラーム] の順に選択します。

  3. アラーム名を指定します。必要に応じて検索ボックスを使用し、アラームを見つけます。

  4. [分析][メトリクス内] を選択します。

  5. [詳細] 列で、[ANOMALY_DETECTION_BAND][異常検出モデルを編集] を選択します。

  6. モデルの生成に利用される期間からある期間を除外するには、[終了日] の横にあるカレンダーアイコンを選択します。次に、トレーニングから除外する日付と時刻を選択または入力して、[適用] をクリックします。

  7. メトリクスが夏時間の変更に影響を受ける場合は、[Metric timezone] (メトリクスタイムゾーン) ボックスで、適切なタイムゾーンを選択します。

  8. [Update] (更新) を選択します。

異常検出モデルの削除

アラームに異常検出を使用すると、 料金が発生します。ベストプラクティスとして、アラームで異常検出モデルが不要になった場合は、最初にアラームを削除し、2 番目にモデルを削除します。異常検出アラームが評価されると、欠落している異常ディテクタがユーザーに代わって作成されます。アラームを削除しないでモデルを削除すると、アラームによりモデルが自動的に再作成されます。

アラームを削除するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Alarms] (アラーム)、[All Alarms] (すべてのアラーム) の順に選択します。

  3. アラーム名を指定します。

  4. [アクション][削除] の順に選択します。

  5. 確認ボックスで [Delete] (削除) を選択します。

アラームに使用された異常検出モデルを削除するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Metrics] (メトリクス)、[All metrics] (すべてのメトリクス) の順に選択します。

  3. [Browse] (参照) を選択して、異常検出モデルを含むメトリクスを選択します。メトリクスは、検索ボックスで検索するか、オプションから選択することができます。

    • (オプション) 元のインターフェイスを使用している場合は、[All metrics] (すべてのメトリクス) を選択して、異常検出モデルを含むメトリクスを選択します。メトリクスは、検索ボックスでを検索するか、オプションから選択することができます。

  4. [グラフ化したメトリクス] を選択します。

  5. [Graphed metrics] (グラフ化したメトリクス) タブで、削除したい異常検知モデルの名前を選択し、[Delete anomaly detection model] (異常検出モデルを削除) を選択します。

    • (オプション) 元のインターフェイスを使用している場合は、[Edit model] (モデルの編集) を選択します。新しい画面が表示されます。新しい画面で、[Delete model] (モデルの削除) を選択して [Delete] (削除) をクリックします。