アラームとアラート
Related Events
概要
アラームはメトリクスの現在の状態を反映します — OK、ALARM、または INSUFFICIENT_DATA。しきい値を超えると、アラームは通知、オートスケーリングアクション、または自動修復をトリガーできます。課題はアラームを作成することではなく、オペレーターを圧倒することなくアクションにつながる適切なアラームを作成することです。
このガイドでは、CloudWatch ネイティブアラームと Amazon Managed Service for Prometheus(AMP)上の Prometheus Alertmanager の両方のアラーム設計原則について説明します。しきい値の選択、複合アラーム、アラーム疲れへの対処、PromQL を使用した OpenTelemetry メトリクスのアラーム、SLO バーンレートアラーム、および適切な送信先へのアラートルーティングについて取り上げます。横断的な手法はここで説明しますが、特定のサービスでアラームを設定すべきメトリクスは、そのサービスのモニタリングソリューションおよび AWS 推奨アラームのドキュメントに記載されています。
使用するタイミング
- 新しいワークロードのモニタリングを設定中で、どのメトリクスにアラームを設定すべきか決定する必要がある場合
- チームがアラーム疲れに悩んでいる場合 — 通知が多すぎてシグナルが少なすぎる場合
- 特定のメト リクスに対して静的しきい値と異常検出のどちらを選ぶか決める必要がある場合
- 関連するアラームを複合アラームで集約してノイズを削減したい場合
- AMP で Prometheus ワークロードを実行しており、Alertmanager ルールとルーティングを設定する必要がある場合
- CloudWatch で PromQL を使用して OpenTelemetry メトリクスにアラームを設定したい場合、または Application Signals で SLO バーンレートにアラームを設定したい場合
- サービスごとのアラームベースラインが必要で、各 AWS サービスの具体的なメトリクスがどこにあるか知りたい場合
ガイダンス
アクション可能なものにアラートを設定する
アラーム疲れは、チームが非常に多くのアラートを受信し、それらを無視するようになった場合に発生します。これは徹底的なモニタリングの証ではなく、アンチパターンです。
アクション可能なものにアラームを作成し、ビジネス目標から逆算してください。アラームが人間の注意や自動プロセスのトリガーを必要としない場合は、通知を削除し、代わりにダッシュボードで可視化してください。
例えば、レスポンスタイムの低下が SLO を脅かし、高い CPU 使用率がレスポンスタイムの低下を引き起こす場合、顧客に影響が出る前に CPU にプロアクティブにアラートを設定してください。ただし、結果に影響を与えない場合は、すべての場所で CPU 使用率にアラートを設定しないでください。
「すべてが OK」のアラームに注意する
オペレーターが常時アラートに慣れすぎて、静かになったときだけ気づくという危険なパターンが生まれます。これはアラーム状態が人間の解釈を必要とするため、自己修復アーキテクチャを不可能にします。
チームがアラートの不在をシグナルとして頼っている場合、アラーム戦略を再設計する必要があります。
しきい値タイプの選択
CloudWatch はメトリクスアラームに対して 2 つのアプローチをサポートしています:
静的しきい値
メトリクスが超えてはならないハードリミットを定義します。意味のある上限と下限を設定するには、通常の動作範囲を理解する必要があります。
静的しきい値は、特定のパフォーマンスブレークポイン ト、インフラストラクチャの制限、または SLO 境界など、しっかりと理解しているメトリクスに最適です。
異常検出
CloudWatch は過去のメトリクスデータを分析し、時間単位、日単位、週単位のパターンを考慮した予測値のモデルを構築します。メトリクスが予測範囲外に出た場合にアラームが発火します。
メトリクスのパフォーマンスの経時的な可視性がない場合、または負荷テストや異常なトラフィックの下でメトリクスが観察されていない場合に異常検出を使用してください。

アラーム疲れに対抗する複合アラーム
5 台の Web サーバーが 1 台のデータベースに接続されている場合を考えてください。データベースがダウンすると、少なくとも 6 つのアラートが発生します — Web サーバーから 5 つ、データベースから 1 つ。しかし、意味があるアラートは 2 つだけです:
- Web サイトがダウンしている。
- データベースが原因である。


複合アラームは、他のアラームの状態を評価するルール式を含みます。複合アラームは、すべての条件が満たされた場合にのみ ALARM 状態に入ります。これにより、複数のシグナルが 1 つのアクション可能な通知に集約されます。
アラートを集約して要約することで、人間が理解しやすくなり、ランブックや自動化の作成も容易になり ます。
メトリクス数式ベースのアラーム
メトリクス数式を使用すると、複数のメトリクスをより意味のある KPI に組み合わせ、導出された値にアラームを設定できます。例えば、トラフィック量に応じて変動する生のエラー数ではなく、エラー率(エラー / リクエスト)にアラームを設定します。
CloudWatch Logs からのアラーム
メトリクスフィルターを使用して、ログデータに基づいたアラームを作成できます。メトリクスフィルターはログパターンを数値の CloudWatch メトリクスに変換し、静的または異常ベースのアラームを使用できます。
これは、ネイティブメトリクスを持たないアプリケーションレベルのイベント(エラーメッセージ、特定のステータスコード、ビジネスロジック例外)でのアラートに役立ちます。