Production-grade high availability architecture using Azure Load Balancer with private backend VMs, health probes, and Terraform (IaC).
This project demonstrates a highly available web application architecture deployed on Microsoft Azure using Terraform.
- Client sends request to Load Balancer Public IP
- Load Balancer checks backend health via HTTP probe
- Traffic is distributed across healthy VMs
- NGINX serves the response
- Azure Virtual Network (VNet)
- Subnet (10.0.1.0/24) hosting backend VMs
- 2x Ubuntu Virtual Machines (Private IP only)
- Azure Public Load Balancer (Layer 4)
- Backend Pool (VMs)
- Health Probe (HTTP:80)
- Load Balancing Rule (80 → 80)
- Backend VMs use private IPs only (no direct internet exposure)
cd terraform
terraform init
terraform applycurl http://<LOAD-BALANCER-PUBLIC-IP>Loop test:
for i in {1..10}; do curl http://<LOAD-BALANCER-PUBLIC-IP>; echo; doneterraform/ → Infrastructure as Code
images/ → Diagram & results
docs/ → Detailed architecture explanation
- Azure Load Balancer (Layer 4)
- Backend Pool & Health Probes
- Terraform Infrastructure as Code
- Custom Script Extension
- Replace VMs with VM Scale Set (VMSS)
- Add Azure Application Gateway (Layer 7)
- Enable HTTPS (SSL)
- Integrate Azure Monitor & Logging
Muktar Mohamed Azure Cloud Engineer

