Azure Network Resource Mapを理解するための前提
Network Watcher Topologyは複数subscription/region/resource groupのnetwork resourceとrelationshipを可視化できる。 TopologyはAzure Resource Graphを使うため、構成変更の反映に最大30時間かかる場合がある。
TopologyからConnection troubleshoot、Packet capture、Next hop等のdiagnostic toolへ文脈付きで遷移できる。 diagramはdependency inventoryには有効だが、current packet forwardingやapplication successの証明にはeffective state/log/testを併用する。
resource mapはVNet→subnet→NIC→VMだけでなくNSG、UDR、NAT、PE、gateway、LB/AppGW/Firewall等のassociationを同時に見る。 incident時は「図を眺める」だけでなくsource/destinationごとのroute/security/DNSを記録する。
Control plane と data plane
仕組みと設計上の意味
resource mapは設計図の正本ではなく、現在Azureに存在するresource relationshipの観測手段として使う。
変更直後のdrift確認ではResource Graph反映遅延を考慮し、resource-specific APIも併用する。
hub-spokeではgateway/NVA/Firewall/Route Server/DNS Resolverをhub中心にinventoryし、spoke側associationを追う。
Private EndpointやPaaSはDNS/data pathがdiagramだけでは見えないためname resolution evidenceを追加する。
Packet / decision path
source→destinationを1本のflowとして固定し、名前解決・routing・security・NAT/service processing・return pathを必要な範囲で順に確認する。
- source/destination resource IDを固定。
- Topologyで関連VNet/subnet/NIC/security/routing resourceを列挙。
- effective route/securityとDNS resultを取得。
- Network Watcher toolでnext hop/connectionを確認。
- diagramとruntime evidenceの差分を原因候補として扱う。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| Design review | Topology + IaC + target architecture | 現状/意図/driftを比較 |
| Incident | source-destination path mapを作成 | 無関係resourceを追わない |
| Change validation | before/after snapshot | association driftを検出 |
| Large estate | scope/filterをsubscription/RG/regionで分割 | 巨大diagramの可読性を維持 |
確認手順
Azure Portal
- Network Watcher → TopologyでScope/Resource typeを指定。
- resource cardからNIC/NSG/route/diagnostic toolへdrilldown。
- 変更直後は対象resource blade/APIでもassociationを直接確認。
Evidence contract
az network watcher show-topology -g <rg> -o jsonc
az resource list -g <rg> --query "[].{name:name,type:type,id:id}" -o table
az network nic show-effective-route-table -g <rg> -n <nic> -o tableGet-AzNetworkWatcherTopology -NetworkWatcherName <watcher> -ResourceGroupName <watcher-rg> -TargetResourceGroupName <target-rg>
Get-AzResource -ResourceGroupName <rg> | Select Name,ResourceType,ResourceId
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| 図に新resourceが出ない | Resource Graph反映遅延 | resource blade/API | 最大反映遅延を考慮 |
| 線はあるが通信不可 | route/security/DNS/health未評価 | effective state + test | data planeへ降りる |
| 巨大で読めない | scopeが広すぎる | filter設定 | incident対象へscope縮小 |
| 設計図と違う | configuration drift | IaC/ARM diff | 正しいsource of truthを確定 |
変更・rollback
- before snapshotはJSON/diagramだけでなくresource IDsを保存。
- diagram上の線を理由にproduction changeを行わず、effective stateを確認。
- rollback後もResource Graph表示は遅延しうるためAPI/実通信で確認。
- IaC driftが見つかった場合は手修正と次回deployの競合を避ける。