ALB の ActiveConnectionCount メトリクスで Maximum 統計は利用可能ですか
困っていること
ALB の ActiveConnectionCount メトリクスで、一定期間内の最大同時接続数を確認したいです。
- 直近 15 分間の最大同時 TCP 接続数を確認したい
- CloudWatch で
Maximum統計を指定して確認したい
しかし、Maximum 統計を指定すると値は常に 0 となり、期待した最大同時接続数を確認することができません。
どのように対応すればよいでしょうか。

どう対応すればいいの?
ActiveConnectionCount メトリクスでは、Maximum 統計は意味のある値としては利用できません。
ActiveConnectionCount は 60 秒間隔で測定・送信される瞬間的な同時接続数のメトリクスです。
実際の同時接続数として解釈できるのは、「Period = 1 分 (60秒)」「Statistic = Sum」の組み合わせのみです。
Elastic Load Balancing は、ロードバランサー経由でリクエストが伝達される場合にのみ、メトリクスを CloudWatch にレポートします。ロードバランサーを経由するリクエストがある場合、Elastic Load Balancing は 60 秒間隔でメトリクスを測定し、送信します。ロードバランサーを経由するリクエストがないか、メトリクスのデータがない場合、メトリクスは報告されません。
(略)
ActiveConnectionCount
クライアントからロードバランサーへ、およびロードバランサーからターゲットへの、アクティブな同時 TCP 接続の総数。
レポート条件: ゼロ以外の値がある
[Statistics] (統計): 唯一意味のある統計は Sum です。
なお、AWS の仕様上、Maximum を指定すると値は常に 0 となる動作となります。
また、5 分や 15 分など 1 分より長い期間で Sum を指定すると、各分の瞬間値を単純に合算した値となるため、同時接続数としては意味を持ちません。
代替案
一定期間内の最大同時接続数を確認したい場合は、
- 1 分 (60秒) ごとの Sum データを取得し
- その期間内の最大値を監視システム側で算出する
といった方法をご検討ください。
例えば、外部監視ツールやスクリプトで直近 15 個の 1 分データから最大値を求めることで、「直近 15 分間の最大同時接続数」を把握できます。
参考資料
Application Load Balancer の CloudWatch メトリクス - エラスティックロードバランシング






