Load Balancing & Delivery参照資料確認: 2026-09-11

Azure Load Balancer Health Probes

Load Balancer health probeを、probe source、TCP/HTTP/HTTPS判定、all-probes-down時の挙動、新規flowとの関係まで運用視点で整理する。

この記事の目次

Azure Load Balancer Health Probesを理解するための前提

Standard Load Balancerのhealth probeはTCP/HTTP/HTTPSを使用でき、probe結果は主に新規inbound flowの配布先を決める。 IPv4 probe sourceは168.63.129.16。NSGではAzureLoadBalancer service tagを使って必要portを許可する設計が基本。

probe失敗時、unhealthy instanceへの新規接続は停止する。既存TCP flowの扱いはprobe全体/個別downで異なるため実験で固定する。 Standardでは全probe down時も既存TCP flowは継続する設計。healthを「即座に全sessionを切断する機構」と誤認しない。

HTTP/HTTPS probeはapplication readinessを表すpathを返させる。外部dependencyまで含めるかはfailure domainと連動させる。 HTTPS probeはclient certificateによるmutual authenticationをサポートしない。mTLS専用endpointをそのままprobe targetにしない。

通信や判断の流れを追う
ClientEdge / Load balancerRouting / HealthBackend

Control plane / Data plane / Observability

Probe source

Azure platformのprobe sourceからbackend portへ到達する。client pathとはsourceが異なる。

Eligibility

probe成功backendだけが新規inbound flowのcandidateになる。

Application contract

TCP openだけを見るかHTTP(S) readinessまで見るかでfailover意味が変わる。

判定原則L4 flow、L7 proxy、DNS steering、NVA chainingを同じ「load balancing」として扱わず、clientが最終的にどのIPへ接続し、どこでconnectionが終端/再生成されるかを最初に固定します。

Client-to-backend path

  1. Azure platformが設定intervalでbackend probe portへ接続する。
  2. TCPならhandshake、HTTP/HTTPSならresponse statusを評価する。
  3. thresholdに従ってbackend health stateを更新する。
  4. load-balancing ruleはhealthy backend setを新規flow選択に利用する。
  5. unhealthy backendへの新規flow配布を停止する。
  6. recovery後、successful probesを満たしたbackendをhealthy setへ戻す。

仕組みを分解する

health probeは「本番trafficと同じsource/Host/header/dependency」を完全再現するものではありません。probe 200 + user 503なら、probe pathと本番pathの差、NSG source、application routing、TLS/SNIなどを比較します。逆にprobe downでもapp process自体が生きていることはあり、probe contractが過剰にdependencyを抱えていないかを確認します。

運用時はresource configurationだけで完了判定せず、実clientからの名前解決、TCP/TLS handshake、HTTP status、backend側のsource IP/Host/header、health telemetryを同じtimestampで揃えます。load balancer/proxyがhealthyでもapplication dependencyが壊れている場合があり、逆にbackend applicationが正常でもhealth probe条件やrouting ruleが不整合ならtrafficは到達しません。

設計判断

判断軸設計方針
TCP vs HTTP(S)process/listenだけでよければTCP、application readinessを判定したければHTTP(S)。
Path/healthz等は軽量にし、何をhealthyと定義するかSLOと合わせる。
Threshold/interval短すぎるflapと長すぎるdetectionを避け、実障害/rolling maintenanceで試験する。
NSGAzureLoadBalancer service tag→probe portを許可し、Internet全許可で代替しない。

確認手順

Read-only verification

  • probe protocol/port/interval/thresholdと「Used by」ruleを確認する。
  • backendで168.63.129.16からのprobe到達とresponseをpacket/application logで確認する。
  • HTTP(S) probe pathをbackend自身からcurlしてstatusを比較する。
  • 意図的に1 backendだけreadinessを落とし、新規flow配布停止と復帰を検証する。

Evidence to keep

  • resource ID / subscription / region / frontend / backend targetを保存し、同名resource取り違えを防ぐ。
  • DNS answer、source IP、destination IP/port、Host/SNI、health status、timestampを同じincident recordへ残す。
  • 変更前後で同じclient journeyをnew connectionとして再実行する。
  • Portal表示だけでなくCLI/PowerShell/APIまたはlogsを併用し、観測面の一時差を識別する。
Azure CLI — read-only first
az network lb probe list -g <rg> --lb-name <lb> -o jsonc
az network lb rule list -g <rg> --lb-name <lb> --query "[].{name:name,probe:probe.id}" -o table
PowerShell — read-only first
(Get-AzLoadBalancer -ResourceGroupName <rg> -Name <lb>).Probes | Format-List *

障害切り分け

症状第一候補証拠次の確認
Probe unhealthylistener/path/status mismatchbackend log + probe configdirect curl/TCP test
Probe packetが来ないNSG/guest firewallpacket capture/effective NSGAzureLoadBalancer allow
Probe healthyだがuser failureprobeと本番journey差Host/path/TLS/application logL7 dependencyを比較
flappingthreshold/overloaded appprobe latency/CPU/loginterval/threshold/readiness改善
maintenanceでtrafficが来るprobe drain手順不足probe state + new connectionreadinessを先にdown

変更時の確認と rollback

  • probe変更前のprotocol/port/path/interval/thresholdを保存する。
  • readiness endpoint変更はapp releaseと同期し、旧versionとの互換を確認する。
  • NSG変更はprobe sourceだけに限定して戻せるようrule単位で管理する。
  • rollback後はprobe stateだけでなく新規client flowのbackend分布も再確認する。
Change safety: health probe、DNS、TLS certificate、WAF/routing rule、backend poolを同時に変えるとfailure domainを判別できません。1 hypothesisずつ変更し、各段階で同じobservable journeyを再実行します。

Current notes — 2026-09-11

Current behavior / guidance

Microsoft Learnの2026-08更新ではStandard probeがTCP/HTTP/HTTPSを扱い、IPv4 source 168.63.129.16、全probe down時の既存TCP flow継続が明記されている。

Official sources

動作、retirement、feature availability、health/TLS behaviorはMicrosoft Learnのcurrent documentationを基準に確認しています。production変更時は対象subscription/region/SKUの最新documentationとresource provider stateを再確認してください。