NLB のUnhealthyRoutingFlowCount メトリクス
概要
- 最近、NLB のUnhealthyRoutingFlowCount メトリクスが上昇した経験があり、簡単ではありますが、記事に記載します。
- NLB – ターゲットグループ[ EC2 (Apache) x複数台] の構成があり、クライアントからのアクセスが増えた際に、ターゲットグループが Unhealthy となる状況がありました。その際に、NLB のUnhealthyRoutingFlowCount メトリクスが上昇しました。
UnhealthyRoutingFlowCount メトリクスについて
- AWS ドキュメントには、次の記載があります。
UnhealthyRoutingFlowCount
ルーティングフェイルオーバーアクション (フェイルオープン) を使用してルーティングされたフロー (または接続) の数。
考えられる原因と対処
- 上記より、UnhealthyRoutingFlowCount メトリクスは、ロードバランサーからターゲットグループへ転送を行った結果、ルーティングフェイルオーバーとなり、ルーティングの件数増加に至ったと思われます。ターゲットグループに所属するインスタンスがリクエストを処理できない状況がある様です。
- 単純にターゲットグループに所属するインスタンスがのハードウェアスペックが不足している可能性、ウェブサーバーの同時接続等の制限を上回った可能性などが考えられます。インスタンスのメトリクスを確認、OS 内のウェブサーバーの状態やログを調査します。
- 見落としがちな箇所としては、Network Load Balancer(NLB) のクロスゾーン負荷分散の設定になります。クロスゾーン負荷分散が無効の場合、ターゲットグループへのリクエストが均等に分散されず、偏ってしまいます。その結果、一方の AZ 配下のインスタンスのみリクエストを処理できず、UnhealthyRoutingFlowCount メトリクスが上昇することも考えられます。ALB の場合は、クロスゾーン負荷分散はデフォルトが有効ですが、NLB の場合は、デフォルトが無効となります。
(出典:Elastic Load Balancing User Guide)