はじめに
ELB配下のターゲットが異常もしくはない場合にアラートを出したいケースってありますよね。
その場合、ELBのHealthyHostCountを利用するのが一般的かと思います。
ELBのHealthyHostCountを使ってアラートを上げる際に少し気にするポイントがあったので語っていきます。
HealthyHostCount
その名の通り、ELB配下のHealthCheckに成功しELBがHealthyとみとめたターゲット数です。
通常以下のようにヘルスチェックに成功しELBがHealthyとみとめたターゲット数をメトリクスに出力します。
つまり、以下のようにヘルスチェックに全台失敗し、ELBがHealthyと判定しなかった場合0が出力されます。
以下のケースではどうでしょうか?AutoScalingなど、ターゲットを0台とした場合は、HealthyHostCountは0にはなりません。この場合、メトリクスは出力されず、アラームではデータ不足と判定されます。これが注意点ですね。
アラームはどう設定すべきか
ターゲットに以上があり、ELB配下が正常に応答しない場合を検知したい、Sorryに切り替えたいなどの場合は、単純にHealthyHostCount<=0でアラーム発報すればよいです。何らかの原因や明示的にELB配下のターゲットを0とした場合でも検知したい場合は、欠落データの扱いをしきい値超えと設定すればよいです。
この場合、一台もターゲットがないと判定されると、メトリクスはデータ不足となり、欠落データを不正扱いすることで、アラーム発報が可能です。
breaching – 欠落データポイントは「不良」とされ、しきい値超過として扱われます。
まとめ
アラームの目的に対して、アラームのしきい値が適切なものかを判断するには、メトリクスの特性を理解する必要があります。必ず実際に検知したいケースを試すことが重要です。