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

Application Gateway Troubleshooting

Application Gateway障害を、DNS、listener/rule、backend health、TLS/SNI、NSG/UDR、WAF、request IDの順で再現可能に切り分ける。

この記事の目次

Application Gateway Troubleshootingを理解するための前提

AppGW troubleshootingはclient→frontendとGateway instance→backendを別connectionとして扱う。 502は「Gateway自体が死んだ」とは限らず、全backend unhealthy、TLS/SNI mismatch、DNS failure、backend timeout等が代表原因。

Backend HealthのHealthy/Unhealthy/Unknownとdetailを最初の客観証拠として保存する。 backend FQDN利用時はGateway VNet DNSが実際に何を返すかが重要。client PCのnslookupだけではGateway側DNSを証明できない。

WAF_v2ではrequestがbackendへ届く前にWAFがblockするため、WAF logとaccess logをrequest timestamp/URIで相関する。 Application Gatewayはx-appgw-trace-id等のheaderを付与し、request chainをbackend logと照合できる。

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

Control plane / Data plane / Observability

Frontend evidence

DNS→VIP→listener match→access log。

Gateway/backend evidence

Backend Health→DNS→route/NSG→TLS→HTTP。

Security evidence

WAF policy/log→rewrite→backend response。

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

Client-to-backend path

  1. 同じclient/URL/Hostでfailureを再現しtimestampを固定する。
  2. DNS answerとfrontend listener/rule matchを確認する。
  3. Access log/WAF logでGatewayがrequestを受けたか確認する。
  4. Backend Healthのstatus/detailを取得する。
  5. Gateway→backendのDNS/TCP/TLS/SNI/HTTPを順に切り分ける。
  6. 修正後に同じjourneyを再実行し、reload/new connectionでも再現しないことを確認する。

仕組みを分解する

最も避けたいのは、502を見てNSGを広げる、WAF blockを見てmanaged ruleを丸ごとdisableする、といった証拠なし変更です。status code、backend health detail、WAF rule ID、DNS answer、TLS certificateを積み上げれば変更scopeを小さくできます。

運用時は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は到達しません。

設計判断

判断軸設計方針
Runbook502/403/404/TLS timeout等の症状ごとに最初の証拠を固定する。
DiagnosticsAccess/WAF/Performance/resource healthの必要logを事前に送信する。
Correlationtimestamp、Host、URI、client IP、x-appgw-trace-id等でbackend logと結ぶ。
Safe changeprobe/NSG/WAF exclusion/cert変更を一度に混ぜず、1 hypothesisずつ検証する。

確認手順

Read-only verification

  • Backend HealthをCLIで保存する。
  • Access/WAF logsを同時刻・Host・URIでqueryする。
  • backend certificate/SNIを直接検証する。
  • Network Watcher/packet captureでGateway subnet→backend 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 application-gateway show-backend-health -g <rg> -n <appgw> -o jsonc
az monitor diagnostic-settings list --resource <appgw-resource-id> -o jsonc
az network application-gateway waf-policy show -g <rg> -n <policy> -o jsonc
PowerShell — read-only first
Get-AzApplicationGatewayBackendHealth -Name <appgw> -ResourceGroupName <rg>
Get-AzApplicationGateway -Name <appgw> -ResourceGroupName <rg>

障害切り分け

症状第一候補証拠次の確認
502backend health/TLS/DNSBackend Health + access logreason別にprobe/DNS/TLS
403WAF/application authWAF rule ID/backend logWAF blockかapp 403か分離
404listener/path/Hostaccess log/rule maprouting/Host確認
TLS client errorfrontend cert/listenerbrowser/curl TLScert chain/SAN/SNI
Backend UnknownDNS/control-plane/subnethealth detailcustom DNS/route/CRL

変更時の確認と rollback

  • 変更前にhealth/log/cert/DNS snapshotを保存する。
  • WAF exclusionは最小field/rule scopeにし、期限/ownerを持たせる。
  • NSG allow-anyをtemporary fixとして残さない。
  • 修正後は同一failure request + adjacent正常requestを再試験する。
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の2026 troubleshooting docsはBackend Health detailを起点にDNS、NSG/UDR、TLS/SNI、CRL reachabilityを個別に確認する流れを示している。

Official sources

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