Bird
Raised Fist0
Azurecloud~10 mins

Load balancing rules in Azure - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Process Flow - Load balancing rules
Client sends request
↓
Load Balancer receives request
↓
Check load balancing rule
↓
Select backend pool based on rule
↓
Forward request to selected backend
↓
Backend processes request and responds
↓
Response sent back to client
The load balancer receives client requests, applies the load balancing rule to select a backend server, forwards the request, and returns the response.
Execution Sample
Azure
az network lb rule create \
  --resource-group MyResourceGroup \
  --lb-name MyLoadBalancer \
  --name MyLoadBalancingRule \
  --protocol Tcp \
  --frontend-port 80 \
  --backend-port 80 \
  --frontend-ip-name MyFrontEnd \
  --backend-pool-name MyBackEndPool
Creates a load balancing rule that forwards TCP traffic on port 80 from the frontend IP to backend pool servers on port 80.
Process Table
StepActionInputRule EvaluationBackend SelectedOutput
1Client sends requestRequest to LB IP:80N/AN/ARequest received by Load Balancer
2Load Balancer checks ruleRequest on port 80 TCPMatches rule for port 80 TCPBackend Pool MyBackEndPoolRule matched
3Select backend serverBackend Pool Members: VM1, VM2Round-robin selectionVM1Request forwarded to VM1
4Backend processes requestRequest at VM1 port 80N/AVM1Response generated
5Response sent backResponse from VM1N/AN/AResponse returned to client
6Next requestRequest to LB IP:80Matches rule for port 80 TCPVM2Request forwarded to VM2
7Backend processes requestRequest at VM2 port 80N/AVM2Response generated
8Response sent backResponse from VM2N/AN/AResponse returned to client
9Request on different portRequest to LB IP:443No matching ruleN/ARequest dropped or rejected
💡 Execution stops when no matching load balancing rule is found or request is completed.
Status Tracker
VariableStartAfter Step 3After Step 6Final
Selected BackendNoneVM1VM2VM2
Request Port808080443
Rule MatchedFalseTrueTrueFalse
Key Moments - 3 Insights
Why does the load balancer forward the first request to VM1 and the second to VM2?
Because the load balancing rule uses round-robin distribution, it cycles through backend servers to balance load evenly, as shown in execution_table rows 3 and 6.
What happens if a request comes on a port not defined in any load balancing rule?
The load balancer does not forward the request to any backend and drops or rejects it, as seen in execution_table row 9.
Does the load balancer change the port number when forwarding the request to the backend?
No, the load balancer forwards the request to the backend on the backend port defined in the rule, which can be the same or different from the frontend port, as shown in the execution sample command.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, which backend server handles the second client request?
AVM3
BVM1
CVM2
DNo backend selected
💡 Hint
Check the 'Backend Selected' column at Step 6 in the execution_table.
At which step does the load balancer determine that no matching rule exists for the request?
AStep 9
BStep 2
CStep 5
DStep 1
💡 Hint
Look for the step where 'Rule Evaluation' shows 'No matching rule' in the execution_table.
If the frontend port in the rule changed from 80 to 443, what would happen to requests on port 80?
AThey would be forwarded to backend servers
BThey would be dropped or rejected
CThey would be forwarded to port 443 on backend
DThey would be redirected to another load balancer
💡 Hint
Refer to the 'Rule Evaluation' and 'Output' columns in execution_table row 9.
Concept Snapshot
Load balancing rules define how incoming traffic is distributed to backend servers.
They specify frontend IP, protocol, frontend port, backend port, and backend pool.
The load balancer matches requests to rules and forwards them accordingly.
Common distribution methods include round-robin.
Requests not matching any rule are dropped or rejected.
Full Transcript
Load balancing rules in Azure define how the load balancer distributes incoming client requests to backend servers. When a client sends a request, the load balancer checks its rules to find a match based on protocol and port. If a rule matches, it selects a backend server from the backend pool, often using round-robin, and forwards the request. The backend processes the request and sends a response back through the load balancer to the client. Requests that do not match any rule are dropped or rejected. This process ensures even distribution of traffic and high availability.

Practice

(1/5)
1. What is the main purpose of a load balancing rule in Azure Load Balancer?
easy
A. To create virtual machines automatically
B. To store data securely in the cloud
C. To distribute incoming network traffic evenly across backend servers
D. To monitor user activity on a website

Solution

  1. Step 1: Understand load balancing rules

    Load balancing rules define how traffic is distributed from the frontend IP to backend servers.
  2. Step 2: Identify the main function

    The main function is to spread incoming traffic evenly to avoid overloading one server.
  3. Final Answer:

    To distribute incoming network traffic evenly across backend servers -> Option C
  4. Quick Check:

    Load balancing rules = distribute traffic evenly [OK]
Hint: Load balancing rules spread traffic evenly to backend servers [OK]
Common Mistakes:
  • Confusing load balancing with VM creation
  • Thinking it stores data
  • Assuming it tracks user activity
2. Which of the following is the correct way to specify a load balancing rule's frontend port in Azure CLI?
easy
A. --frontend-port 80
B. --frontendPort 80
C. --front-port 80
D. --port-frontend 80

Solution

  1. Step 1: Review Azure CLI syntax for load balancing rules

    The correct parameter for frontend port is '--frontend-port' with a hyphen.
  2. Step 2: Compare options

    Only --frontend-port 80 uses the exact correct syntax '--frontend-port 80'. Others have incorrect parameter names.
  3. Final Answer:

    --frontend-port 80 -> Option A
  4. Quick Check:

    Azure CLI frontend port = --frontend-port [OK]
Hint: Azure CLI uses hyphenated parameters like --frontend-port [OK]
Common Mistakes:
  • Using camelCase instead of hyphens
  • Mixing words order in parameter
  • Using incorrect parameter names
3. Given this Azure Load Balancer rule configuration snippet:
"frontendPort": 443,
"backendPort": 8443,
"protocol": "Tcp"

What happens when a user sends a TCP request to port 443 on the frontend IP?
medium
A. The request is forwarded to backend servers on port 8443
B. The request is blocked because ports do not match
C. The request is forwarded to backend servers on port 443
D. The request is forwarded using UDP protocol

Solution

  1. Step 1: Understand frontend and backend ports in load balancing

    The frontend port is where the client connects; the backend port is where the traffic is sent on backend servers.
  2. Step 2: Match the ports and protocol

    Client connects to port 443 (frontend), traffic is forwarded to backend servers on port 8443 using TCP.
  3. Final Answer:

    The request is forwarded to backend servers on port 8443 -> Option A
  4. Quick Check:

    Frontend port 443 forwards to backend port 8443 [OK]
Hint: Frontend port ≠ backend port; traffic forwards to backend port [OK]
Common Mistakes:
  • Assuming frontend and backend ports must be the same
  • Confusing TCP with UDP protocol
  • Thinking request is blocked due to port difference
4. You created a load balancing rule but traffic is not reaching backend servers. Which of these is a likely misconfiguration?
medium
A. Load balancing rule uses correct protocol and ports
B. Frontend IP address is set correctly
C. Backend pool contains healthy servers
D. Health probe is missing or misconfigured

Solution

  1. Step 1: Check role of health probes

    Health probes monitor backend server health; without them, load balancer may not send traffic.
  2. Step 2: Identify misconfiguration

    If health probe is missing or wrong, backend servers appear unhealthy, so traffic is blocked.
  3. Final Answer:

    Health probe is missing or misconfigured -> Option D
  4. Quick Check:

    Missing health probe blocks traffic [OK]
Hint: Always configure health probes to allow traffic flow [OK]
Common Mistakes:
  • Ignoring health probe setup
  • Assuming backend servers are always healthy
  • Overlooking frontend IP correctness
5. You want to create a load balancing rule that forwards HTTPS traffic from port 443 on the frontend IP to port 8443 on backend VMs, but only if the backend VMs pass a TCP health probe on port 8443. Which configuration is correct?
hard
A. Load balancing rule with frontendPort=8443, backendPort=443, protocol=Tcp; health probe on port 443 using Http
B. Load balancing rule with frontendPort=443, backendPort=8443, protocol=Tcp; health probe on port 8443 using Tcp
C. Load balancing rule with frontendPort=443, backendPort=443, protocol=Udp; health probe on port 8443 using Tcp
D. Load balancing rule with frontendPort=443, backendPort=8443, protocol=Tcp; no health probe configured

Solution

  1. Step 1: Match frontend and backend ports with protocol

    Frontend port 443 (HTTPS) forwards to backend port 8443 using TCP protocol, matching the requirement.
  2. Step 2: Configure health probe correctly

    Health probe must check TCP on port 8443 to verify backend VM health before forwarding traffic.
  3. Step 3: Verify other options

    Load balancing rule with frontendPort=8443, backendPort=443, protocol=Tcp; health probe on port 443 using Http swaps ports and uses HTTP probe incorrectly; Load balancing rule with frontendPort=443, backendPort=443, protocol=Udp; health probe on port 8443 using Tcp uses UDP protocol wrongly; Load balancing rule with frontendPort=443, backendPort=8443, protocol=Tcp; no health probe configured lacks health probe, risking traffic to unhealthy VMs.
  4. Final Answer:

    Load balancing rule with frontendPort=443, backendPort=8443, protocol=Tcp; health probe on port 8443 using Tcp -> Option B
  5. Quick Check:

    Correct ports, protocol, and health probe = Load balancing rule with frontendPort=443, backendPort=8443, protocol=Tcp; health probe on port 8443 using Tcp [OK]
Hint: Match frontend/backend ports and use health probe on backend port [OK]
Common Mistakes:
  • Swapping frontend and backend ports
  • Using wrong protocol (UDP instead of TCP)
  • Skipping health probe configuration