Creazione di un servizio di bilanciamento del carico per Internet in Resource Manager con PowerShellCreating an Internet-facing load balancer in Resource Manager by using PowerShell

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.

Azure Load Balancer è un servizio di bilanciamento del carico di livello 4 (TCP, UDP).An Azure load balancer is a Layer-4 (TCP, UDP) load balancer. Il servizio di bilanciamento del carico offre disponibilità elevata distribuendo il traffico in ingresso tra istanze del servizio integre in servizi cloud o macchine virtuali in un set di bilanciamento del carico .The load balancer provides high availability by distributing incoming traffic among healthy service instances in cloud services or virtual machines in a load balancer set. Azure Load Balancer può anche presentare tali servizi su più porte, più indirizzi IP o entrambi.Azure Load Balancer can also present those services on multiple ports, multiple IP addresses, or both.

È possibile configurare un servizio bilanciamento del carico per:You can configure a load balancer to:

  • Bilanciare il carico del traffico Internet in ingresso nelle macchine virtuali (VMs).Load balance incoming Internet traffic to virtual machines (VMs). Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come bilanciamento del carico con connessione Internet.We refer to a load balancer in this scenario as an Internet-facing load balancer.
  • Bilanciare il carico del traffico tra macchine virtuali in una rete virtuale, tra macchine virtuali nei servizi cloud o tra computer locali e macchine virtuali in una rete virtuale cross-premise.Load balance traffic between VMs in a virtual network (VNet), between VMs in cloud services, or between on-premises computers and VMs in a cross-premises virtual network. Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come un Bilanciamento del carico interno.We refer to a load balancer in this scenario as an internal load balancer (ILB).
  • Inoltrare il traffico esterno a una specifica istanza di macchina virtualeForward external traffic to a specific VM instance.

In questo scenario verranno eseguite le seguenti attività:The following tasks will be done in this scenario:

  • Creare un servizio di bilanciamento del carico che riceve il traffico di rete sulla porta 80 e invia il traffico con carico bilanciato alle macchine virtuali "web1" e "web2"Create a load balancer that receives network traffic on port 80 and send load-balanced traffic to virtual machines "web1" and "web2"
  • Creare regole NAT per l'accesso desktop remoto/SSH per le macchine virtuali dietro il servizio di bilanciamento del caricoCreate NAT rules for remote desktop access/SSH for virtual machines behind the load balancer
  • Creare probe di integritàCreate health probes

Scenario del bilanciamento del carico

Distribuzione della soluzione mediante Azure PowerShellDeploying the solution by using Azure PowerShell

Le procedure seguenti illustrano come creare un servizio di bilanciamento del carico con connessione Internet usando Azure Resource Manager con PowerShell.The following procedures explain how to create an Internet-facing load balancer by using Azure Resource Manager with PowerShell. Con Azure Resource Manager, ogni risorsa viene creata e configurata singolarmente e poi integrata per creare una servizio di bilanciamento del carico.With Azure Resource Manager, each resource is created and configured individually, and then put together to create a load balancer.

Per distribuire un servizio di bilanciamento del carico è necessario creare e configurare gli oggetti seguenti:You must create and configure the following objects to deploy a load balancer:

  • Configurazione IP front-end: contiene gli indirizzi IP pubblici (PIP) per il traffico di rete in ingresso.Front-end IP configuration: contains public IP (PIP) addresses for incoming network traffic.
  • Pool di indirizzi back-end: contiene le interfacce di rete (NIC) per consentire alle macchine virtuali di ricevere il traffico di rete dal servizio di bilanciamento del carico.Back-end address pool: contains network interfaces (NICs) for the virtual machines to receive network traffic from the load balancer.
  • Regole di bilanciamento del carico: contiene le regole che eseguono il mapping di una porta pubblica sul servizio di bilanciamento del carico a una porta nel pool di indirizzi back-end.Load-balancing rules: contains rules that map a public port on the load balancer to a port in the back-end address pool.
  • Regole NAT: contiene le regole che eseguono il mapping di una porta pubblica sul servizio di bilanciamento del carico a una porta per una macchina virtuale specifica nel pool di indirizzi back-end.Inbound NAT rules: contains rules that map a public port on the load balancer to a port for a specific virtual machine in the back-end address pool.
  • Probe: contiene probe di integrità usati per verificare la disponibilità di istanze di macchine virtuali nel pool di indirizzi back-end.Probes: contains health probes used to check availability of virtual machine instances in the back-end address pool.

Per altre informazioni, vedere Supporto di Azure Resource Manager per Load Balancer.For more information, see Azure Resource Manager support for Load Balancer.

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 Resource Manager per PowerShell:Make sure you have the latest production version of the Azure Resource Manager module for PowerShell:

  1. Accedere ad Azure.Sign in to Azure.

    Login-AzureRmAccount
    

    Immettere le credenziali quando richiesto.Enter your credentials when prompted.

  2. Controllare le sottoscrizioni per l'account.Check the subscriptions for the account.

    Get-AzureRmSubscription
    
  3. Scegliere le sottoscrizioni ad Azure da usare.Choose which of your Azure subscriptions to use.

    Select-AzureRmSubscription -SubscriptionId 'GUID of subscription'
    
  4. Creare un gruppo di risorse.Create a resource group. 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"
    

Creare una rete virtuale e un indirizzo IP pubblico per il pool di indirizzi IP front-endCreate a virtual network and a public IP address for the front-end IP pool

  1. Creare una subnet e una rete virtualeCreate a subnet and a virtual network.

    $backendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24
    New-AzureRmvirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet
    
  2. Creare una risorsa di indirizzo IP pubblico di Azure denominata PublicIP che dovrà essere usata da un pool di indirizzi IP front-end con nome DNS loadbalancernrp.westus.cloudapp.azure.com. Il comando seguente usa il tipo di allocazione statica.Create an Azure public IP address resource, named PublicIP, to be used by a front-end IP pool with the DNS name loadbalancernrp.westus.cloudapp.azure.com. The following command uses the static allocation type.

    $publicIP = New-AzureRmPublicIpAddress -Name PublicIp -ResourceGroupName NRP-RG -Location 'West US' -AllocationMethod Static -DomainNameLabel loadbalancernrp
    

    Importante

    Il servizio di bilanciamento del carico usa l'etichetta di dominio dell'indirizzo IP pubblico come prefisso per il nome di dominio completo.The load balancer uses the domain label of the public IP as a prefix for its FQDN. Questa è una differenza rispetto al modello di distribuzione classica, che usa il servizio cloud come nome di dominio completo del servizio di bilanciamento del carico.This is different from the classic deployment model, which uses the cloud service as the load balancer FQDN. In questo esempio il nome di dominio completo è loadbalancernrp.westus.cloudapp.azure.com.In this example, the FQDN is loadbalancernrp.westus.cloudapp.azure.com.

Creazione di un pool di indirizzi IP front-end e un pool di indirizzi back-endCreate a front-end IP pool and a back-end address pool

  1. Creare un pool di indirizzi IP front-end denominato LB-Frontend che usa la risorsa PublicIp.Create a front-end IP pool named LB-Frontend that uses the PublicIp resource.

    $frontendIP = New-AzureRmLoadBalancerFrontendIpConfig -Name LB-Frontend -PublicIpAddress $publicIP
    
  2. Creare un pool di indirizzi back-end denominato LB-backend.Create a back-end address pool named LB-backend.

    $beaddresspool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name LB-backend
    

Creazione di regole NAT, una regola di bilanciamento del carico, un probe e un servizio di bilanciamento del caricoCreate NAT rules, a load balancer rule, a probe, and a load balancer

Questo esempio crea gli elementi seguenti:This example creates the following items:

  • Una regola NAT per la conversione di tutto il traffico in ingresso nella porta 3441 alla porta 3389A NAT rule to translate all incoming traffic on port 3441 to port 3389
  • Una regola NAT per la conversione di tutto il traffico in ingresso nella porta 3442 alla porta 3389A NAT rule to translate all incoming traffic on port 3442 to port 3389
  • Una regola probe per il controllo dello stato di integrità in una pagina denominata HealthProbe.aspxA probe rule to check the health status on a page named HealthProbe.aspx
  • Una regola di bilanciamento del carico per il bilanciamento di tutto il traffico in ingresso nella porta 80 alla porta 80 negli indirizzi nel pool back-endA load balancer rule to balance all incoming traffic on port 80 to port 80 on the addresses in the back-end pool
  • Un servizio di bilanciamento del carico che usa tutti questi oggettiA load balancer that uses all these objects

Usare i passaggi seguenti:Use these steps:

  1. Creare le regole NAT.Create the NAT rules.

    $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
    
  2. Creare un probe di integrità.Create a health probe. Esistono due modi per configurare un probe:There are two ways to configure a probe:

    Probe HTTPHTTP probe

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

    Probe TCPTCP probe

    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    
  3. Creare una regola del servizio di bilanciamento del carico.Create a load balancer rule.

    $lbrule = New-AzureRmLoadBalancerRuleConfig -Name HTTP -FrontendIpConfiguration $frontendIP -BackendAddressPool  $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    
  4. Creare il servizio di bilanciamento del carico usando gli oggetti creati in precedenza.Create the load balancer by using the previously created objects.

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

Creare NICCreate NICs

Creare interfacce di rete (o modificare quelle esistenti) e associarle a regole NAT, regole di bilanciamento del carico e probe:Create network interfaces (or modify existing ones) and then associate them to NAT rules, load balancer rules, and probes:

  1. Ottenere la rete virtuale e la subnet per la rete virtuale in cui devono essere create le NIC.Get the virtual network and a virtual network subnet, where the NICs need to be created.

    $vnet = Get-AzureRmVirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. Creare una NIC denominata lb-nic1-bee associarla alla prima regola NAT, quindi al primo (e unico) pool di indirizzi back-end.Create a NIC named lb-nic1-be, and associate it with the first NAT rule and the first (and only) back-end address pool.

    $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]
    
  3. Creare una NIC denominata lb-nic2-bee associarla alla seconda regola NAT, quindi al primo (e unico) pool di indirizzi back-end.Create a NIC named lb-nic2-be, and associate it with the second NAT rule and the first (and only) back-end address pool.

    $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]
    
  4. Creare le NIC.Check the NICs.

     $backendnic1
    

    Output previsto:Expected output:

     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"
     ResourceGuid         : 896cac4f-152a-40b9-b079-3e2201a5906e
     ProvisioningState    : Succeeded
     Tags                 :
     VirtualMachine       : null
     IpConfigurations     : [
                         {
                         "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",
                         "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"
                         },
                         "ProvisioningState": "Succeeded",
                         "PrivateIpAddressVersion": "IPv4",
                         "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"
                             }
                         ],
                         "Primary": true,
                         "ApplicationGatewayBackendAddressPools": []
                         }
                     ]
     DnsSettings          : {
                         "DnsServers": [],
                         "AppliedDnsServers": [],
                         "InternalDomainNameSuffix": "prcwibzcuvie5hnxav0yjks2cd.dx.internal.cloudapp.net"
                     }
     EnableIPForwarding   : False
     NetworkSecurityGroup : null
     Primary              :
    
  5. Usare il cmdlet Add-AzureRmVMNetworkInterface per assegnare le schede NIC a macchine virtuali diverse.Use the Add-AzureRmVMNetworkInterface cmdlet to assign the NICs to different VMs.

Creare una macchina virtualeCreate a virtual machine

Per indicazioni sulla creazione di una macchina virtuale e sull'assegnazione di una scheda di interfaccia di rete, vedere Creare una VM di Azure con PowerShell.For guidance on creating a virtual machine and assigning a NIC, see Create an Azure VM using PowerShell.

Aggiunta dell'interfaccia di rete al servizio di bilanciamento del caricoAdd the network interface to the load balancer

  1. Recuperare il servizio di bilanciamento del carico da Azure.Retrieve the load balancer from Azure.

    Se non è ancora stata eseguita questa operazione, caricare la risorsa di bilanciamento del carico in una variabile.Load the load balancer resource into a variable (if you haven't done that yet). La variabile si chiama $lb. Usare gli stessi nomi della risorsa di bilanciamento del carico creata in precedenza.The variable is called $lb. Use the same names from the load balancer resource that you created earlier.

    $lb= get-azurermloadbalancer -name NRP-LB -resourcegroupname NRP-RG
    
  2. Caricare la configurazione back-end in una variabile.Load the back-end configuration to a variable.

    $backend=Get-AzureRmLoadBalancerBackendAddressPoolConfig -name LB-backend -LoadBalancer $lb
    
  3. Caricare l'interfaccia di rete già creata in una variabile.Load the already created network interface into a variable. Il nome della variabile è $nic.The variable name is $nic. Il nome dell'interfaccia di rete è lo stesso dell'esempio precedente.The network interface name is the same one from the earlier example.

    $nic =get-azurermnetworkinterface -name lb-nic1-be -resourcegroupname NRP-RG
    
  4. Modificare la configurazione back-end nell'interfaccia di rete.Change the back-end configuration on the network interface.

    $nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$backend
    
  5. Salvare l'oggetto interfaccia di rete.Save the network interface object.

    Set-AzureRmNetworkInterface -NetworkInterface $nic
    

    Dopo che un'interfaccia di rete viene aggiunta al pool di back-end di bilanciamento del carico, inizia a ricevere il traffico di rete in base alle regole di bilanciamento del carico per la risorsa di bilanciamento del carico.After a network interface is added to the load balancer back-end pool, it starts receiving network traffic based on the load-balancing rules for that load balancer resource.

Aggiornare un bilanciamento del carico esistenteUpdate an existing load balancer

  1. Usando il servizio di bilanciamento del carico dell'esempio precedente, assegnare un oggetto di bilanciamento del carico alla variabile $slb usando Get-AzureLoadBalancer.By using the load balancer from the earlier example, assign a load balancer object to the variable $slb by using Get-AzureLoadBalancer.

    $slb = get-AzureRmLoadBalancer -Name NRP-LB -ResourceGroupName NRP-RG
    
  2. Nell'esempio seguente, si aggiunge una regola NAT in ingresso mediante la porta 81 nel pool di front-end e la porta 8181 per il pool di back-end a un servizio di bilanciamento del carico esistente.In the following example, you add an inbound NAT rule--by using port 81 in the front-end pool and port 8181 for the back-end pool--to an existing load balancer.

    $slb | Add-AzureRmLoadBalancerInboundNatRuleConfig -Name NewRule -FrontendIpConfiguration $slb.FrontendIpConfigurations[0] -FrontendPort 81  -BackendPort 8181 -Protocol TCP
    
  3. Salvare la nuova configurazione tramite Set-AzureLoadBalancer.Save the new configuration by using Set-AzureLoadBalancer.

    $slb | Set-AzureRmLoadBalancer
    

Rimuovere un bilanciamento del caricoRemove a load balancer

Usare il comando Remove-AzureLoadBalancer per eliminare un servizio di bilanciamento del carico creato in precedenza denominato NRP-LB in un gruppo di risorse di nome NRP-RG.Use the command Remove-AzureLoadBalancer to delete a previously created load balancer named NRP-LB in a resource group called NRP-RG.

Remove-AzureRmLoadBalancer -Name NRP-LB -ResourceGroupName NRP-RG

Nota

È possibile usare l'opzione facoltativa -Force per evitare la richiesta di eliminazione.You can use the optional switch -Force to avoid the prompt for deletion.

Passaggi successiviNext steps

Introduzione alla configurazione del bilanciamento del carico internoGet started configuring an internal load balancer

Configurare una modalità di distribuzione del servizio di bilanciamento del caricoConfigure a load balancer distribution mode

Configurare le impostazioni del timeout di inattività TCP per il bilanciamento del caricoConfigure idle TCP timeout settings for your load balancer