Sign in during Public Preview to get the Team plan free, plus an early-adopter discount when we launch. Sign in
This guide shows you how to provision a Load Balancer against Locally. As with the other guides we're going to use the Azure CLI, but the same resources can be provisioned with HashiCorp Terraform, Pulumi or Bicep too.
az) installed.Firstly, we need to launch Locally which we can do from a terminal by running:
$
locally build
Once Locally has started, the Locally Dashboard will open automatically:
Next we can create the Resource Group:
$
locally run az group create -n sample-resources -l berlin
There's two things to note here:
locally run.locally run when you do.A load balancer needs somewhere to receive traffic, so we'll create a Public IP Address for its frontend first:
$
locally run az network public-ip create -g sample-resources -n sample-pip --sku Standard --allocation-method Static
Then the load balancer itself, wiring that address to a frontend configuration and creating an empty backend pool:
$
locally run az network lb create -g sample-resources -n sample-lb --sku Standard --public-ip-address sample-pip --frontend-ip-name frontend --backend-pool-name backend
We can read it back to see what was created:
$
locally run az network lb show -g sample-resources -n sample-lb --query "{name:name, sku:sku.name, frontend:frontendIPConfigurations[].name, backend:backendAddressPools[].name}"
{
"backend": [
"backend"
],
"frontend": [
"frontend"
],
"name": "sample-lb",
"sku": "Standard"
}
A load balancer with no health probe has no way of knowing whether a backend is healthy, so that's next:
$
locally run az network lb probe create -g sample-resources --lb-name sample-lb -n health --protocol Tcp --port 80
{
"name": "health",
"port": 80,
"protocol": "Tcp"
}
Then a rule tying the frontend, the backend pool and the probe together - this is what actually forwards traffic:
$
locally run az network lb rule create -g sample-resources --lb-name sample-lb -n http --protocol Tcp --frontend-port 80 --backend-port 80 --frontend-ip-name frontend --backend-pool-name backend --probe-name health
{
"backendPort": 80,
"frontendPort": 80,
"name": "http",
"protocol": "Tcp"
}
Note
We can see the Load Balancer in the Locally Dashboard too:
Finally, we can tidy up. To remove the Resource Group and everything within it:
$
locally run az group delete -n sample-resources --yes
There's nothing billable to clean up, since everything ran on your machine, but it's still worth checking your teardown scripts work here before you run them against Azure.
Whilst this guide used the Azure CLI, Load Balancers work the same way through any of the tooling that Locally supports - a Microsoft.Network/loadBalancers resource in HashiCorp Terraform or OpenTofu, Pulumi, Bicep or an ARM Template all provision against Locally in the same way, with only the location changed.
For outbound traffic from a subnet, see NAT Gateway.
Should you encounter any issues, please take a look at the troubleshooting section.
Sign in during Public Preview to get the Team plan free, plus an early-adopter discount when we launch. Sign in
Your Azure infrastructure, running on your machine. Deploy in seconds, break things freely, and ship to Azure when you're ready.