Creare un servizio di bilanciamento del carico interno usando il modulo Azure PowerShellCreate an internal load balancer by using the Azure PowerShell module

Importante

Azure Load Balancer supporta due tipi diversi: Basic e Standard.Azure Load Balancer supports two different types: Basic and Standard. Questo articolo illustra Load Balancer Basic.This article discusses Basic Load Balancer. Load Balancer Basic è disponibile a livello generale, mentre Load Balancer Standard è attualmente in anteprima pubblica.Basic Load Balancer is generally available, whereas Standard Load Balancer is currently in Public Preview. Per altre informazioni su Load Balancer Standard, vedere Panoramica di Load Balancer Standard.For more information about Standard Load Balancer, see Standard Load Balancer Overview.

Il servizio di bilanciamento del carico interno di Azure (ILB) consente di bilanciare il carico di rete tra le macchine virtuali che si trovano in un servizio cloud o una rete virtuale con un ambito a livello di area.Azure Internal Load Balancer (ILB) provides network load balancing between virtual machines that reside inside a cloud service or a virtual network with a regional scope.

Per informazioni sull'uso e sulla configurazione di reti virtuali con un ambito a livello di area, vedere Regional virtual networks (Reti virtuali a livello di area).For information about the use and configuration of virtual networks with a regional scope, see Regional virtual networks. Le reti virtuali esistenti che sono state configurate per un gruppo di affinità non possono usare il bilanciamento del carico interno.Existing virtual networks that have been configured for an affinity group cannot use ILB.

Scenario di configurazioneConfiguration scenario

In questo scenario si crea un servizio di bilanciamento del carico interno in una rete virtuale, come illustrato nella figura seguente:In this scenario, we're creating an internal load balancer in a virtual network as shown in the following figure:

Scenario di bilanciamento del carico interno

La configurazione dello scenario è la seguente:The configuration for our scenario is as follows:

  • Due macchine virtuali denominate DB1 e DB2Two virtual machines named DB1 and DB2
  • Endpoint per il servizio di bilanciamento del carico internoEndpoints for the internal load balancer
  • Servizio di bilanciamento del carico internoAn internal load balancer

Prerequisito: installare il modulo Azure PowerShellPrerequisite: Install the Azure PowerShell module

Per eseguire i passaggi indicati in questo articolo, è necessario installare e configurare il modulo Azure PowerShell.To perform the steps in this article, you need to install and configure the Azure PowerShell module. Assicurarsi di completare tutte le istruzioni.Be sure to complete all of the instructions. Al termine dell'installazione, accedere ad Azure e selezionare la sottoscrizione.After the installation is finished, sign in to Azure and select your subscription.

Nota

Per completare questi passaggi, è necessario un account Azure.You need an Azure account to complete these steps. Se non si ha un account Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita.If you don't have an Azure account, you can sign up for a free trial.

Introduzione alla configurazioneGet started with the configuration

Questo articolo descrive come creare un servizio di bilanciamento del carico interno usando Azure Resource Manager con il modulo Azure PowerShell.This article explains how to create an internal load balancer by using Azure Resource Manager with the Azure PowerShell module. Nel modello di distribuzione di Azure Resource Manager gli oggetti necessari per creare un servizio di bilanciamento del carico interno vengono configurati singolarmente.In the Resource Manager deployment model, the objects that are needed to create an internal load balancer are configured individually. Una volta creati e configurati, gli oggetti vengono combinati per creare un servizio di bilanciamento del carico.After the objects are created and configured, they are combined to create a load balancer.

Per distribuire un servizio di bilanciamento del carico, è necessario creare gli oggetti seguenti:To deploy a load balancer, the following objects must be created:

  • Pool di indirizzi IP front-end: indirizzo IP privato per tutto il traffico di rete in ingresso.Front-end IP pool: The private IP address for all incoming network traffic.
  • Pool di indirizzi back-end: interfacce di rete che ricevono il traffico con carico bilanciato proveniente dall'indirizzo IP front-end.Back-end address pool: The network interfaces to receive the load-balanced traffic from the front-end IP address.
  • Regole di bilanciamento del carico: configurazione delle porte, di origine e locali, per il servizio di bilanciamento del carico.Load balancing rules: The port (source and local) configuration for the load balancer.
  • Configurazione del probe: probe dello stato di integrità per le macchine virtuali.Probe configuration: The health status probes for virtual machines.
  • Regole NAT in ingresso: regole delle porte per l'accesso diretto alle macchine virtuali.Inbound NAT rules: The port rules for direct access to virtual machines.

Per altre informazioni sui componenti del servizio di bilanciamento del carico, vedere Supporto di Azure Resource Manager per il servizio di bilanciamento del carico.For more information about load balancer components, see Azure Resource Manager support for load balancer.

La procedura seguente illustra come configurare un servizio di bilanciamento del carico tra due macchine virtuali.The following steps explain how to configure a load balancer between two virtual machines.

Configurazione di PowerShell per l'uso di Resource ManagerSet up PowerShell to use Resource Manager

Assicurarsi di avere la versione di produzione più recente del modulo Azure PowerShell.Make sure you have the latest production version of the Azure PowerShell module. PowerShell deve essere configurato correttamente per accedere alla sottoscrizione di Azure.PowerShell must be correctly configured to access your Azure subscription.

Passaggio 1: Avviare PowerShellStep 1: Start PowerShell

Avviare il modulo PowerShell per Azure Resource Manager.Start the PowerShell module for Azure Resource Manager.

Login-AzureRmAccount

Passaggio 2: Visualizzare le sottoscrizioniStep 2: View your subscriptions

Controllare le sottoscrizione di Azure disponibili.Check your available Azure subscriptions.

Get-AzureRmSubscription

Immettere le credenziali quando viene chiesto di autenticarsi.Enter your credentials when you're prompted for authentication.

Passaggio 3: Selezionare la sottoscrizione da usareStep 3: Select the subscription to use

Scegliere le sottoscrizioni di Azure da usare per la distribuzione del servizio di bilanciamento del carico.Choose which of your Azure subscriptions to use for deploying the load balancer.

Select-AzureRmSubscription -Subscriptionid "GUID of subscription"

Passaggio 4: Scegliere il gruppo di risorse per il servizio di bilanciamento del caricoStep 4: Choose the resource group for the load balancer

Creare un nuovo gruppo di risorse per il servizio di bilanciamento del carico.Create a new resource group for the load balancer. Se si usa un gruppo di risorse esistente, ignorare questo passaggio.Skip this step if you're using an existing resource group.

New-AzureRmResourceGroup -Name NRP-RG -location "West US"

Gestione risorse di Azure richiede che tutti i gruppi di risorse specifichino un percorsoAzure Resource Manager requires that all resource groups specify a location. che viene usato come percorso predefinito per tutte le risorse in questo gruppo di risorse.The location is used as the default for all resources in the resource group. Usare sempre lo stesso gruppo di risorse per tutti i comandi correlati alla creazione del servizio di bilanciamento del carico.Always use the same resource group for all commands related to creating the load balancer.

Nell'esempio è stato creato un gruppo di risorse denominato NRP-RG nell'area Stati Uniti occidentali.In the example, we created a resource group named NRP-RG with the location West US.

Creare la rete virtuale e l'indirizzo IP pubblico per il pool di indirizzi IP front-endCreate the virtual network and IP address for the front-end IP pool

Creare una subnet per la rete virtuale e assegnarla alla variabile $backendSubnet.Create a subnet for the virtual network and assign it to the variable $backendSubnet.

$backendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24

Creare una rete virtuale.Create a virtual network.

$vnet= New-AzureRmVirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet

La rete virtuale viene creata.The virtual network is created. La subnet LB-Subnet-BE viene aggiunta alla rete virtuale NRPVNet.The LB-Subnet-BE subnet is added to the NRPVNet virtual network. Questi valori vengono assegnati alla variabile $vnet.These values are assigned to the $vnet variable.

Creare il pool di indirizzi IP front-end e il pool di indirizzi back-endCreate the front-end IP pool and back-end address pool

Creare un pool di indirizzi IP front-end per il traffico in ingresso e un pool di indirizzi back-end per ricevere il traffico con carico bilanciato.Create a front-end IP pool for the incoming traffic and a back-end address pool to receive the load-balanced traffic.

Passaggio 1: Creare un pool di indirizzi IP front-endStep 1: Create a front-end IP pool

Creare un pool di indirizzi IP front-end con l'indirizzo IP privato 10.0.2.5 per la subnet 10.0.2.0/24.Create a front-end IP pool with the private IP address 10.0.2.5 for the subnet 10.0.2.0/24. Questo indirizzo è l'endpoint del traffico di rete in ingresso.This address is the incoming network traffic endpoint.

$frontendIP = New-AzureRmLoadBalancerFrontendIpConfig -Name LB-Frontend -PrivateIpAddress 10.0.2.5 -SubnetId $vnet.subnets[0].Id

Passaggio 2: Creare un pool di indirizzi back-endStep 2: Create a back-end address pool

Creare un pool di indirizzi back-end per ricevere il traffico in ingresso dal pool di indirizzi IP front-end:Create a back-end address pool to receive incoming traffic from the front-end IP pool:

$beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend"

Creare le regole di configurazione, il probe e il servizio di bilanciamento del caricoCreate the configuration rules, probe, and load balancer

Dopo aver creato il pool di indirizzi IP front-end e il pool di indirizzi back-end, specificare le regole per la risorsa di bilanciamento del carico.After the front-end IP pool and the back-end address pool are created, specify the rules for the load balancer resource.

Passaggio 1: Creare le regole di configurazioneStep 1: Create the configuration rules

L'esempio crea i quattro oggetti regola seguenti:The example creates the following four rule objects:

  • Regola NAT in ingresso per Remote Desktop Protocol (RDP): reindirizza tutto il traffico in ingresso sulla porta 3441 alla porta 3389.An inbound NAT rule for the Remote Desktop Protocol (RDP): Redirects all incoming traffic on port 3441 to port 3389.
  • Seconda regola NAT in ingresso per RDP: reindirizza tutto il traffico in ingresso sulla porta 3442 alla porta 3389.A second inbound NAT rule for RDP: Redirects all incoming traffic on port 3442 to port 3389.
  • Regola per il probe di integrità: controlla lo stato di integrità del percorso di HealthProbe.aspx.A health probe rule: Checks the health status of the HealthProbe.aspx path.
  • Regola di bilanciamento del carico: bilancia il carico di tutto il traffico in ingresso sulla porta pubblica 80 alla porta locale 80 nel pool di indirizzi back-end.A load balancer rule: Load-balances all incoming traffic on public port 80 to local port 80 in the back-end address pool.
$inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP1" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389

$inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP2" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3442 -BackendPort 3389

$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe" -RequestPath "HealthProbe.aspx" -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2

$lbrule = New-AzureRmLoadBalancerRuleConfig -Name "HTTP" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80

Passaggio 2: Creare il servizio di bilanciamento del caricoStep 2: Create the load balancer

Creare il servizio di bilanciamento del carico e combinare gli oggetti regola (NAT in ingresso per RDP, bilanciamento del carico e probe di integrità):Create the load balancer and combine the rule objects (inbound NAT for RDP, load balancer, and health probe):

$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName "NRP-RG" -Name "NRP-LB" -Location "West US" -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe

Creare le interfacce di reteCreate the network interfaces

Dopo avere creato il servizio di bilanciamento del carico interno, definire le interfacce di rete (NIC) che riceveranno il traffico di rete in ingresso con carico bilanciato, le regole NAT e il probe.After creating the internal load balancer, define the network interfaces (NICs) that will receive the incoming load-balanced network traffic, NAT rules, and probe. Ogni interfaccia di rete viene configurata singolarmente e viene successivamente assegnata a una macchina virtuale.Each network interface is configured individually and is assigned later to a virtual machine.

Passaggio 1: Creare la prima interfaccia di reteStep 1: Create the first network interface

Ottenere la rete virtuale e la subnet delle risorse.Get the resource virtual network and subnet. Per creare le interfacce di rete, vengono usati questi valori:These values are used to create the network interfaces:

$vnet = Get-AzureRmVirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG

$backendSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet

Creare la prima interfaccia di rete con il nome lb-nic1-be.Create the first network interface with the name lb-nic1-be. Assegnare l'interfaccia di rete al pool back-end del servizio di bilanciamento del carico.Assign the interface to the load balancer back-end pool. Associare la prima regola NAT per RDP a questa scheda di interfaccia di rete:Associate the first NAT rule for RDP with this NIC:

$backendnic1= New-AzureRmNetworkInterface -ResourceGroupName "NRP-RG" -Name lb-nic1-be -Location "West US" -PrivateIpAddress 10.0.2.6 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[0]

Passaggio 2: Creare la seconda interfaccia di reteStep 2: Create the second network interface

Creare la seconda interfaccia di rete con il nome lb-nic2-be.Create the second network interface with the name lb-nic2-be. Assegnare la seconda interfaccia di rete allo stesso pool back-end del servizio di bilanciamento del carico della prima interfaccia.Assign the second interface to the same load balancer back-end pool as the first interface. Associare la seconda scheda di interfaccia di rete alla seconda regola NAT per RDP:Associate the second NIC with the second NAT rule for RDP:

$backendnic2= New-AzureRmNetworkInterface -ResourceGroupName "NRP-RG" -Name lb-nic2-be -Location "West US" -PrivateIpAddress 10.0.2.7 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[1]

Rivedere la configurazione:Review the configuration:

$backendnic1

Le impostazioni devono essere le seguenti:The settings should be as follows:

Name                 : lb-nic1-be
ResourceGroupName    : NRP-RG
Location             : westus
Id                   : /subscriptions/f50504a2-1865-4541-823a-b32842e3e0ee/resourceGroups/NRP-RG/providers/Microsoft.Network/networkInterfaces/lb-nic1-be
Etag                 : W/"d448256a-e1df-413a-9103-a137e07276d1"
ProvisioningState    : Succeeded
Tags                 :
VirtualMachine       : null
IpConfigurations     : [
                     {
                       "PrivateIpAddress": "10.0.2.6",
                       "PrivateIpAllocationMethod": "Static",
                       "Subnet": {
                         "Id": "/subscriptions/f50504a2-1865-4541-823a-b32842e3e0ee/resourceGroups/NRP-RG/providers/Microsoft.Network/virtualNetworks/NRPVNet/subnets/LB-Subnet-BE"
                       },
                       "PublicIpAddress": {
                         "Id": null
                       },
                       "LoadBalancerBackendAddressPools": [
                         {
                           "Id": "/subscriptions/f50504a2-1865-4541-823a-b32842e3e0ee/resourceGroups/NRP-RG/providers/Microsoft.Network/loadBalancers/NRPlb/backendAddressPools/LB-backend"
                         }
                       ],
                       "LoadBalancerInboundNatRules": [
                         {
                           "Id": "/subscriptions/f50504a2-1865-4541-823a-b32842e3e0ee/resourceGroups/NRP-RG/providers/Microsoft.Network/loadBalancers/NRPlb/inboundNatRules/RDP1"
                         }
                       ],
                       "ProvisioningState": "Succeeded",
                       "Name": "ipconfig1",
                       "Etag": "W/\"d448256a-e1df-413a-9103-a137e07276d1\"",
                       "Id": "/subscriptions/f50504a2-1865-4541-823a-b32842e3e0ee/resourceGroups/NRP-RG/providers/Microsoft.Network/networkInterfaces/lb-nic1-be/ipConfigurations/ipconfig1"
                     }
                   ]
DnsSettings          : {
                     "DnsServers": [],
                     "AppliedDnsServers": []
                   }
AppliedDnsSettings   :
NetworkSecurityGroup : null
Primary              : False

Passaggio 3: Assegnare la scheda di interfaccia di rete a una macchina virtualeStep 3: Assign the NIC to a VM

Assegnare la scheda di interfaccia di rete a una macchina virtuale usando il comando Add-AzureRmVMNetworkInterface.Assign the NIC to a virtual machine by using the Add-AzureRmVMNetworkInterface command.

Per istruzioni dettagliate per la creazione di una macchina virtuale e l'assegnazione della scheda di interfaccia di rete, vedere Creare una macchina virtuale di Azure con PowerShell.For step-by-step instructions to create a virtual machine and assign the NIC, see Create an Azure VM by using PowerShell.

Aggiungere l'interfaccia di reteAdd the network interface

Dopo aver creato la macchina virtuale, aggiungere l'interfaccia di rete.After the virtual machine has been created, add the network interface.

Passaggio 1: Archiviare la risorsa di bilanciamento del caricoStep 1: Store the load balancer resource

Se non è già stato fatto, archiviare la risorsa di bilanciamento del carico in una variabile.Store the load balancer resource in a variable (if you haven't done that yet). Viene usato il nome di variabile $lb. Per i valori degli attributi nello script, usare i nomi per le risorse di bilanciamento del carico create nei passaggi precedenti.We're using the variable name $lb. For the attribute values in the script, use the names for the load balancer resources that were created in the previous steps.

$lb = Get-AzureRmLoadBalancer –name NRP-LB -resourcegroupname NRP-RG

Passaggio 2: Archiviare la configurazione back-endStep 2: Store the back-end configuration

Archiviare la configurazione back-end nella variabile $backend.Store the back-end configuration into the $backend variable.

$backend = Get-AzureRmLoadBalancerBackendAddressPoolConfig -name LB-backend -LoadBalancer $lb

Passaggio 3: Archiviare l'interfaccia di reteStep 3: Store the network interface

Archiviare l'interfaccia di rete in un'altra variabile.Store the network interface in another variable. Questa interfaccia è stata creata nel passaggio 1 "Creare le interfacce di rete".This interface was created in "Create the network interfaces, Step 1." Viene usato il nome di variabile $nic1.We're using the variable name $nic1. Usare lo stesso nome di interfaccia di rete dell'esempio precedente.Use the same network interface name from the previous example.

$nic = Get-AzureRmNetworkInterface –name lb-nic1-be -resourcegroupname NRP-RG

Passaggio 4: Modificare la configurazione back-endStep 4: Change the back-end configuration

Modificare la configurazione back-end nell'interfaccia di rete.Change the back-end configuration on the network interface.

$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$backend

Passaggio 5: Salvare l'oggetto interfaccia di reteStep 5: Save the network interface object

Salvare l'oggetto interfaccia di rete.Save the network interface object.

Set-AzureRmNetworkInterface -NetworkInterface $nic

Dopo aver aggiunto l'interfaccia al pool back-end, il carico del traffico di rete viene bilanciato in base alle regole.After the interface is added to the back-end pool, network traffic is load-balanced according to the rules. Queste regole sono state configurate in "Creare le regole di configurazione, il probe e il servizio di bilanciamento del carico".These rules were configured in "Create the configuration rules, probe, and load balancer."

Aggiornare un bilanciamento del carico esistenteUpdate an existing load balancer

Passaggio 1: Assegnare l'oggetto servizio bilanciamento del carico a una variabileStep 1: Assign the load balancer object to a variable

Assegnare l'oggetto servizio di bilanciamento del carico (dall'esempio precedente) alla variabile $slb usando il comando Get-AzureRmLoadBalancer:Assign the load balancer object (from the previous example) to the $slb variable by using the Get-AzureRmLoadBalancer command:

$slb = Get-AzureRmLoadBalancer -Name NRPLB -ResourceGroupName NRP-RG

Passaggio 2: Aggiungere una regola NATStep 2: Add a NAT rule

Aggiungere una regola NAT in ingresso a un servizio di bilanciamento del carico esistente.Add a new inbound NAT rule to an existing load balancer. Usare la porta 81 per il pool front-end e la porta 8181 per il pool back-end:Use port 81 for the front-end pool and port 8181 for the back-end pool:

$slb | Add-AzureRmLoadBalancerInboundNatRuleConfig -Name NewRule -FrontendIpConfiguration $slb.FrontendIpConfigurations[0] -FrontendPort 81  -BackendPort 8181 -Protocol Tcp

Passaggio 3: Salvare la configurazioneStep 3: Save the configuration

Salvare la nuova configurazione usando il comando Set-AzureLoadBalancer:Save the new configuration by using the Set-AzureLoadBalancer command:

$slb | Set-AzureRmLoadBalancer

Rimuovere un servizio di bilanciamento del carico esistenteRemove an existing load balancer

Eliminare il servizio di bilanciamento del carico NRP-LB nel gruppo di risorse NRP-RG usando il comando Remove-AzureRmLoadBalancer:Delete the NRP-LB load balancer in the NRP-RG resource group by using the Remove-AzureRmLoadBalancer command:

Remove-AzureRmLoadBalancer -Name NRPLB -ResourceGroupName NRP-RG

Nota

Usare l'opzione -Force facoltativa per impedire la richiesta di conferma dell'eliminazione.Use the optional -Force switch to prevent the confirmation prompt for the deletion.

Passaggi successiviNext steps