βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS vs AZURE LOAD BALANCING SERVICES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β AWS Azure β
β βββ βββββ β
β β
β LAYER 7 (HTTP/HTTPS): β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β Application Load β β Application Gateway β β
β β Balancer (ALB) β βββββ β β’ Path-based routing β β
β β β β β’ WAF v2 integration β β
β βββββββββββββββββββββββ β β’ SSL termination β β
β β β’ Autoscaling β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β
β LAYER 4 (TCP/UDP): β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β Network Load β β Azure Load Balancer β β
β β Balancer (NLB) β βββββ β β’ Standard SKU (zone-redundant) β β
β β β β β’ Basic SKU (single zone) β β
β βββββββββββββββββββββββ β β’ HA Ports for NVAs β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β
β GLOBAL (Anycast): β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β Global Accelerator β β Azure Front Door β β
β β CloudFront β βββββ β β’ Global HTTP load balancing β β
β β β β β’ CDN built-in β β
β β β β β’ WAF integration β β
β βββββββββββββββββββββββ β β’ URL rewrite/redirect β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β
β CDN: β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β CloudFront β β Azure CDN β β
β β β βββββ β β’ Microsoft, Akamai, Verizon options β β
β β β β β’ OR use Front Door β β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββ
β What type of traffic? β
βββββββββββββ¬ββββββββββββββ
β
ββββββββββββββββββββββββΌβββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β HTTP/HTTPS β β TCP/UDP β β Global HTTP β
β (Web apps) β β (Non-HTTP) β β Multi-region β
ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Single region? β β Azure Load β β Azure Front β
β β β Balancer β β Door β
β Yes β App β β (Standard) β β β
β Gateway β β β β + CDN β
β β β + HA Ports for β β + WAF β
β No β Front Door β β NVAs β β + SSL β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
| File | Topic | Description |
|---|---|---|
| Quick Reference | Cheat Sheet | CLI commands, decision matrix, quick configs |
| 01-application-gateway.md | Application Gateway | L7 load balancing, WAF, SSL termination, path routing |
| 02-load-balancer.md | Azure Load Balancer | L4 load balancing, HA ports, health probes |
| 03-front-door.md | Azure Front Door | Global load balancing, CDN, WAF, anycast |
| case-studies.md | Case Studies | Real-world implementations and patterns |
| extra-resources.md | Resources | Official docs, videos, learning paths |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β APPLICATION GATEWAY ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β INTERNET β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββ β
β β Azure Front Door β (Optional global LB) β
β β OR β β
β β Public IP β β
β βββββββββββββββ¬ββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββ β
β β APPLICATION GATEWAY β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β FRONTEND β β β
β β β β’ Public IP (or Internal IP for private apps) β β β
β β β β’ Listeners (HTTP/HTTPS, multi-site) β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β WAF v2 (Optional but recommended) β β β
β β β β’ OWASP Core Rule Set β β β
β β β β’ Bot protection β β β
β β β β’ Custom rules β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β ROUTING RULES β β β
β β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β β
β β β β /api/* β β /images/* β β /* β β β β
β β β β β API Pool β β β Static Pool β β β Web Pool β β β β
β β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β BACKEND POOLS β β β
β β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β β
β β β β API Pool β β Static Pool β β Web Pool β β β β
β β β β β’ VM Scale Set β β β’ Storage Blob β β β’ App Service β β β β
β β β β β’ AKS β β β’ CDN β β β’ VMs β β β β
β β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Create Application Gateway with WAF
az network application-gateway create \
--resource-group myRG \
--name myAppGW \
--location eastus \
--sku WAF_v2 \
--capacity 2 \
--vnet-name myVNet \
--subnet appgw-subnet \
--public-ip-address appgw-pip \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 443 \
--http-settings-port 80 \
--http-settings-protocol Http \
--servers 10.0.2.10 10.0.2.11
# Enable WAF
az network application-gateway waf-config set \
--resource-group myRG \
--gateway-name myAppGW \
--enabled true \
--firewall-mode Prevention \
--rule-set-version 3.2βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AZURE FRONT DOOR ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β USERS WORLDWIDE β
β Americas β Europe β Asia β
β β β β β
β βΌ βΌ βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β AZURE FRONT DOOR β β
β β (Anycast at Edge) β β
β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β EDGE LOCATIONS (200+ POPs globally) β β β
β β β β’ SSL termination at edge β β β
β β β β’ WAF at edge β β β
β β β β’ Caching at edge β β β
β β β β’ Compression β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β ROUTING β β β
β β β β’ Latency-based (fastest backend) β β β
β β β β’ Priority-based (active-passive) β β β
β β β β’ Weighted (A/B testing) β β β
β β β β’ Session affinity β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββΌββββββββββββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β ORIGIN GROUP 1 β β ORIGIN GROUP 2 β β ORIGIN GROUP 3 β β
β β East US β β West Europe β β East Asia β β
β β β’ App Service β β β’ App Service β β β’ App Service β β
β β β’ VMSS β β β’ AKS β β β’ Blob β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User in Paris β Front Door edge in Paris β Routed to West Europe origin
User in Tokyo β Front Door edge in Tokyo β Routed to East Asia origin
AWS Equivalent: Auto Scaling Groups
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VM SCALE SET ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LOAD BALANCER β β
β βββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββ β
β β VM SCALE SET β β
β β β β
β β INSTANCES (Auto-managed): β β
β β ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ . . . β β
β β β VM 0 β β VM 1 β β VM 2 β β VM 3 β β VM 4 β β β
β β β AZ 1 β β AZ 2 β β AZ 3 β β AZ 1 β β AZ 2 β β β
β β ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ β β
β β β β
β β SCALING RULES: β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β IF CPU > 70% for 5 min β Scale OUT by 2 instances β β β
β β β IF CPU < 30% for 10 min β Scale IN by 1 instance β β β
β β β Min: 2, Max: 10, Default: 3 β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β UPGRADE POLICY: β β
β β β’ Automatic (update all at once) β β
β β β’ Rolling (update in batches) β β
β β β’ Manual (you control when) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Create VMSS with autoscaling
az vmss create \
--resource-group myRG \
--name myScaleSet \
--image Ubuntu2204 \
--vm-sku Standard_DS2_v2 \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys \
--load-balancer myLB \
--zones 1 2 3
# Create autoscale settings
az monitor autoscale create \
--resource-group myRG \
--resource myScaleSet \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 3
# Scale out rule
az monitor autoscale rule create \
--resource-group myRG \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 2
# Scale in rule
az monitor autoscale rule create \
--resource-group myRG \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 10m" \
--scale in 1# Scale App Service Plan
az appservice plan update \
--resource-group myRG \
--name myPlan \
--sku P1V3 \
--number-of-workers 3
# Create autoscale for App Service
az monitor autoscale create \
--resource-group myRG \
--resource myPlan \
--resource-type Microsoft.Web/serverfarms \
--name app-autoscale \
--min-count 1 \
--max-count 10 \
--count 2
# Scale based on HTTP queue length
az monitor autoscale rule create \
--resource-group myRG \
--autoscale-name app-autoscale \
--condition "HttpQueueLength > 100 avg 5m" \
--scale out 1| Feature | AWS | Azure | Notes |
|---|---|---|---|
| Layer 7 Regional | ALB | Application Gateway | AppGW has built-in WAF |
| Layer 4 Regional | NLB | Azure Load Balancer | Standard SKU is zone-redundant |
| Global HTTP | CloudFront + ALB | Azure Front Door | Front Door includes CDN |
| Global TCP/UDP | Global Accelerator | Front Door (TCP preview) | |
| CDN | CloudFront | Azure CDN or Front Door | Multiple providers available |
| Auto Scaling (VMs) | Auto Scaling Groups | VM Scale Sets | Very similar |
| Auto Scaling (Containers) | ECS Service Auto Scaling | AKS HPA/KEDA | |
| Auto Scaling (PaaS) | Lambda concurrency | App Service autoscale |
Next Chapter: Containers & AKS
Author: Michel Abboud | AI-Assisted Content | APACHE 2.0 License