Getting Started with Azure Resource Manager for load balancers in Node.js

This sample shows how to manage a load balancer using the Azure Resource Manager APIs for Node.js.

You can use a load balancer to provide high availability for your workloads in Azure. An Azure load balancer is a Layer-4 (TCP, UDP) type load balancer that distributes incoming traffic among healthy service instances in cloud services or virtual machines defined in a load balancer set.

For a detailed overview of Azure load balancers, see Azure Load Balancer overview.

alt tag

This sample deploys an internet-facing load balancer. It then creates and deploys two Azure virtual machines behind the load balancer. For a detailed overview of internet-facing load balancers, see Internet-facing load balancer overview.

To deploy an internet-facing load balancer, you'll need to create and configure the following objects.

  • Front end IP configuration - contains public IP addresses for incoming network traffic.
  • Back end address pool - contains network interfaces (NICs) for the virtual machines to receive network traffic from the load balancer.
  • Load balancing rules - contains rules mapping a public port on the load balancer to port in the back end address pool.
  • Inbound NAT rules - contains rules mapping a public port on the load balancer to a port for a specific virtual machine in the back end address pool.
  • Probes - contains health probes used to check availability of virtual machines instances in the back end address pool.

You can get more information about load balancer components with Azure resource manager at Azure Resource Manager support for Load Balancer.

Tasks performed in this sample

The sample performs the following tasks to create the load balancer and the load-balanced virtual machines:

  1. Create a ResourceGroup
  2. Create a Vnet
  3. Create a subnet
  4. Create a public IP
  5. Build the load balancer payload
    1. Build a front-end IP pool
    2. Build a back-end address pool
    3. Build a health probe
    4. Build a load balancer rule
    5. Build inbound NAT rule 1
    6. Build inbound NAT rule 2
  6. Create the load balancer with the above payload
  7. Create NIC 1
  8. Create NIC 2
  9. Find an Ubutnu VM image
  10. Create an availability set
  11. Create the first VM: Web1
  12. Create the second VM: Web2
  13. Delete the resource group and the resources created in the previous steps

Run this sample

  1. If you don't already have a Microsoft Azure subscription, you can register for a free trial account.

  2. Install node.js if you haven't already.

  3. Clone the sample repository.

     git clone https://github.com:Azure-Samples/app-service-web-nodejs-manage.git
    
  4. Install the dependencies.

     cd network-node-manage-loadbalancer
     npm install    
    
  5. Create an Azure service principal, using Azure CLI, PowerShell or Azure Portal.

  6. Set the following environment variables using the information from the service principle that you created.

     export AZURE_SUBSCRIPION_ID={your subscription ID}
     export CLIENT_ID={your client ID}
     export APPLICATION_SECRET={your client secret}
     export DOMAIN={your tenant ID as a guid OR the domain name of your org <contosocorp.com>}
    

    [AZURE.NOTE] On Windows, use set instead of export.

  7. Run the sample.

     node index.js   
    
  8. To clean up after index.js, run the cleanup script.

     node cleanup.js <resourceGroupName>
    

More information