Creare, avviare o eliminare un gateway applicazione tramite Gestione risorse di AzureCreate, start, or delete an application gateway by using Azure Resource Manager

Il gateway applicazione di Azure è un dispositivo di bilanciamento del carico di livello 7.Azure Application Gateway is a layer-7 load balancer. Fornisce richieste HTTP con routing delle prestazioni e failover tra server diversi, sia nel cloud che in locale.It provides failover and performance-routing HTTP requests between different servers, whether they are on the cloud or on-premises. Il gateway applicazione offre numerose funzionalità di controller per la distribuzione di applicazioni (ADC, Application Delivery Controller), tra cui bilanciamento del carico HTTP, affinità di sessione basata su cookie, offload SSL (Secure Sockets Layer), probe di integrità personalizzati, supporto per più siti e molte altre.Application Gateway provides many application delivery controller (ADC) features including HTTP load balancing, cookie-based session affinity, Secure Sockets Layer (SSL) offload, custom health probes, support for multi-site, and many others. Per un elenco completo delle funzionalità supportate, vedere Panoramica del gateway applicazione.To find a complete list of supported features, visit Application Gateway overview.

Questo articolo illustra in dettaglio i passaggi necessari per creare e configurare, avviare ed eliminare un gateway applicazione.This article walks you through the steps to create, configure, start, and delete an application gateway.

Importante

Prima di iniziare a usare le risorse di Azure, è importante comprendere che Azure al momento offre due modelli di distribuzione, quello classico e Gestione risorse. È importante conoscere i modelli e gli strumenti di distribuzione prima di usare le risorse di Azure. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo. Questo documento illustra la creazione di un gateway applicazione con Azure Resource Manager. Per usare la versione classica, passare a Creare, avviare o eliminare un gateway applicazione.

Prima di iniziareBefore you begin

  1. Installare la versione più recente dei cmdlet di Azure PowerShell usando l'Installazione guidata piattaforma Web.Install the latest version of the Azure PowerShell cmdlets by using the Web Platform Installer. È possibile scaricare e installare la versione più recente dalla sezione Windows PowerShell della pagina Download.You can download and install the latest version from the Windows PowerShell section of the Downloads page.
  2. Se è già disponibile una rete virtuale, selezionare una subnet vuota esistente oppure creare una subnet nella rete virtuale esclusivamente per l'uso da parte del gateway applicazione.If you have an existing virtual network, either select an existing empty subnet or create a subnet in your existing virtual network solely for use by the application gateway. Non è possibile distribuire il gateway applicazione in una rete virtuale diversa da quella delle risorse da distribuire dietro il gateway applicazione.You cannot deploy the application gateway to a different virtual network than the resources you intend to deploy behind the application gateway.
  3. È necessario che i server configurati per l'uso del gateway applicazione esistano oppure che i relativi endpoint siano stati creati nella rete virtuale o con un indirizzo IP/VIP pubblico assegnato.The servers that you configure to use the application gateway must exist or have their endpoints created either in the virtual network or with a public IP/VIP assigned.

Elementi necessari per creare un gateway applicazioneWhat is required to create an application gateway?

  • Pool di server back-end: elenco di indirizzi IP, FQDN o schede di interfaccia di rete dei server back-end.Backend server pool: The list of IP addresses, FQDNs, or NICs of the backend servers. Se si usano gli indirizzi IP, questi devono appartenere alla subnet della rete virtuale o devono essere indirizzi IP/VIP pubblici.If IP addresses are used, they should either belong to the virtual network subnet or should be a public IP/VIP.
  • Impostazioni del pool di server back-end: ogni pool ha impostazioni come porta, protocollo e affinità basata sui cookie.Backend server pool settings: Every pool has settings like port, protocol, and cookie-based affinity. Queste impostazioni sono associate a un pool e vengono applicate a tutti i server nel pool.These settings are tied to a pool and are applied to all servers within the pool.
  • Porta front-end: porta pubblica aperta sul gateway applicazione.frontend port: This port is the public port that is opened on the application gateway. Il traffico raggiunge questa porta e quindi viene reindirizzato a uno dei server back-end.Traffic hits this port, and then gets redirected to one of the backend servers.
  • Listener: ha una porta front-end, un protocollo (Http o Https, con distinzione tra maiuscole e minuscole) e il nome del certificato SSL (se si configura l'offload SSL).Listener: The listener has a frontend port, a protocol (Http or Https, these values are case-sensitive), and the SSL certificate name (if configuring SSL offload).
  • Regola: la regola associa il listener e il pool di server back-end e definisce il pool di server back-end a cui deve essere indirizzato il traffico quando raggiunge un listener specifico.Rule: The rule binds the listener, the backend server pool and defines which backend server pool the traffic should be directed to when it hits a particular listener.

Creare un gruppo di risorse per Gestione risorseCreate a resource group for Resource Manager

Assicurarsi di usare la versione più recente di Azure PowerShell.Make sure that you are using the latest version of Azure PowerShell. Altre informazioni sono disponibili in Uso di Azure PowerShell con Azure Resource Manager.More info is available at Using Windows PowerShell with Resource Manager.

  1. Accedere ad Azure e immettere le credenziali.Log in to Azure and enter your credentials.

    Login-AzureRmAccount
    
  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. Ignorare questo passaggio se si usa un gruppo di risorse esistente.Create a resource group (skip this step if you're using an existing resource group).

    New-AzureRmResourceGroup -Name ContosoRG -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 le risorse presenti in tale gruppo di risorse.This location is used as the default location for resources in that resource group. Assicurarsi che tutti i comandi per creare un gateway applicazione usino lo stesso gruppo di risorse.Make sure that all commands to create an application gateway uses the same resource group.

Nell'esempio precedente è stato creato un gruppo di risorse denominato ContosoRG nella località East US.In the example above, we created a resource group called ContosoRG and location East US.

Nota

Se è necessario configurare un probe personalizzato per il gateway applicazione, visitare: Creare un probe personalizzato per il gateway applicazione con PowerShell. Per altre informazioni, vedere l'articolo relativo a probe personalizzati e monitoraggio dell'integrità .

Creare gli oggetti di configurazione gateway applicazioneCreate the application gateway configuration objects

Prima di creare il gateway applicazione, è necessario impostare tutti gli elementi di configurazione.All configuration items must be set up before creating the application gateway. La procedura seguente consente di creare gli elementi di configurazione necessari per una risorsa del gateway applicazione.The following steps create the configuration items that are needed for an application gateway resource.

# Create a subnet and assign the address space of 10.0.0.0/24
$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

# Create a virtual network with the address space of 10.0.0.0/16 and add the subnet
$vnet = New-AzureRmVirtualNetwork -Name ContosoVNET -ResourceGroupName ContosoRG -Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Retrieve the newly created subnet
$subnet=$vnet.Subnets[0]

# Create a public IP address that is used to connect to the application gateway. Application Gateway does not support custom DNS names on public IP addresses.  If a custom name is required for the public endpoint, a CNAME record should be created to point to the automatically generated DNS name for the public IP address.
$publicip = New-AzureRmPublicIpAddress -ResourceGroupName ContosoRG -name publicIP01 -location "East US" -AllocationMethod Dynamic

# Create a gateway IP configuration. The gateway picks up an IP addressfrom the configured subnet and routes network traffic to the IP addresses in the backend IP pool. Keep in mind that each instance takes one IP address.
$gipconfig = New-AzureRmApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

# Configure a backend pool with the addresses of your web servers. These backend pool members are all validated to be healthy by probes, whether they are basic probes or custom probes.  Traffic is then routed to them when requests come into the application gateway. Backend pools can be used by multiple rules within the application gateway, which means one backend pool could be used for multiple web applications that reside on the same host.
$pool = New-AzureRmApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221, 134.170.185.50

# Configure backend http settings to determine the protocol and port that is used when sending traffic to the backend servers. Cookie-based sessions are also determined by the backend HTTP settings.  If enabled, cookie-based session affinity sends traffic to the same backend as previous requests for each packet.
$poolSetting = New-AzureRmApplicationGatewayBackendHttpSettings -Name "besetting01" -Port 80 -Protocol Http -CookieBasedAffinity Disabled -RequestTimeout 120

# Configure a frontend port that is used to connect to the application gateway through the public IP address
$fp = New-AzureRmApplicationGatewayFrontendPort -Name frontendport01  -Port 80

# Configure the frontend IP configuration with the public IP address created earlier.
$fipconfig = New-AzureRmApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

# Configure the listener.  The listener is a combination of the front end IP configuration, protocol, and port and is used to receive incoming network traffic. 
$listener = New-AzureRmApplicationGatewayHttpListener -Name listener01 -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

# Configure a basic rule that is used to route traffic to the backend servers. The backend pool settings, listener, and backend pool created in the previous steps make up the rule. Based on the criteria defined traffic is routed to the appropriate backend.
$rule = New-AzureRmApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

# Configure the SKU for the application gateway, this determines the size and whether or not WAF is used.
$sku = New-AzureRmApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

# Create the application gateway
$appgw = New-AzureRmApplicationGateway -Name ContosoAppGateway -ResourceGroupName ContosoRG -Location "East US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

Al termine, recuperare i dettagli relativi a DNS e indirizzo VIP del gateway applicazione dalla risorsa IP pubblica associata al gateway applicazione.When complete, retrieve DNS and VIP details of the application gateway from the public IP resource attached to the application gateway.

Get-AzureRmPublicIpAddress -Name publicIP01 -ResourceGroupName ContosoRG

Eliminare il gateway applicazioneDelete the application gateway

L'esempio seguente elimina il gateway applicazione.The following example deletes the application gateway.

# Retrieve the application gateway
$gw = Get-AzureRmApplicationGateway -Name ContosoAppGateway -ResourceGroupName ContosoRG

# Stops the application gateway
Stop-AzureRmApplicationGateway -ApplicationGateway $gw

# Once the application gateway is in a stopped state, use the `Remove-AzureRmApplicationGateway` cmdlet to remove the service.
Remove-AzureRmApplicationGateway -Name ContosoAppGateway -ResourceGroupName ContosoRG -Force

Nota

L'opzione -force può essere usata per eliminare il messaggio di conferma della rimozione.

Per verificare che il servizio sia stato rimosso, è possibile usare il cmdlet Get-AzureRmApplicationGateway.To verify that the service has been removed, you can use the Get-AzureRmApplicationGateway cmdlet. Questo passaggio non è obbligatorio.This step is not required.

Get-AzureRmApplicationGateway -Name ContosoAppGateway -ResourceGroupName ContosoRG

Ottenere il nome DNS del gateway applicazioneGet application gateway DNS name

Dopo avere creato il gateway, il passaggio successivo prevede la configurazione del front-end per la comunicazione.Once the gateway is created, the next step is to configure the front end for communication. Quando si usa un IP pubblico, il gateway applicazione richiede un nome DNS assegnato in modo dinamico, non descrittivo.When using a public IP, application gateway requires a dynamically assigned DNS name, which is not friendly. Per assicurarsi che gli utenti finali possano raggiungere il gateway applicazione, è possibile usare un record CNAME per fare riferimento all'endpoint pubblico del gateway applicazione.To ensure end users can hit the application gateway, a CNAME record can be used to point to the public endpoint of the application gateway. A questo scopo, recuperare i dettagli del gateway applicazione e il nome DNS e l'IP associati, usando l'elemento PublicIPAddress collegato al gateway applicazione.To do this, retrieve details of the application gateway and its associated IP/DNS name using the PublicIPAddress element attached to the application gateway. Questa operazione può essere eseguita con il servizio DNS di Azure o altri provider DNS, creando un record CNAME che punti all'indirizzo IP pubblico.This can be done with Azure DNS or other DNS providers, by creating a CNAME record that points to the public IP address. Non è consigliabile usare record A perché l'indirizzo VIP può cambiare al riavvio del gateway applicazione.The use of A-records is not recommended since the VIP may change on restart of application gateway.

Nota

All'avvio del servizio viene assegnato un indirizzo IP al gateway applicazione.

Get-AzureRmPublicIpAddress -ResourceGroupName ContosoRG -Name publicIP01
Name                     : publicIP01
ResourceGroupName        : ContosoRG
Location                 : westus
Id                       : /subscriptions/<subscription_id>/resourceGroups/ContosoRG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag                     : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid             : 00000000-0000-0000-0000-000000000000
ProvisioningState        : Succeeded
Tags                     : 
PublicIpAllocationMethod : Dynamic
IpAddress                : xx.xx.xxx.xx
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                                "Id": "/subscriptions/<subscription_id>/resourceGroups/ContosoRG/providers/Microsoft.Network/applicationGateways/ContosoAppGateway/frontendIP
                            Configurations/frontend1"
                            }
DnsSettings              : {
                                "Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
                            }

Eliminare tutte le risorseDelete all resources

Per eliminare tutte le risorse create in questo articolo, completare il passaggio seguente:To delete all resources created in this article, complete the following step:

Remove-AzureRmResourceGroup -Name ContosoRG

Passaggi successiviNext steps

Per configurare l'offload SSL, visitare Configurare un gateway applicazione per l'offload SSL.If you want to configure SSL offload, visit: Configure an application gateway for SSL offload.

Per configurare un gateway applicazione da usare con un servizio di bilanciamento del carico interno, visitare Creare un gateway applicazione con un dispositivo di bilanciamento del carico interno (ILB).If you want to configure an application gateway to use with an internal load balancer, visit: Create an application gateway with an internal load balancer (ILB).

Per altre informazioni generali sulle opzioni di bilanciamento del carico, vedere:If you want more information about load balancing options in general, visit: