Guida introduttiva: Indirizzare il traffico Web con un gateway applicazione Azure mediante Azure PowerShell

In questa guida di avvio rapido si userà Azure PowerShell per creare un gateway applicazione. Successivamente, verrà testato il gateway per verificare che funzioni correttamente.

Il gateway applicazione indirizza il traffico Web dell'applicazione a risorse specifiche in un pool back-end. Verranno assegnati i listener alle porte, verranno create le regole e verranno aggiunte le risorse a un pool back-end. Per motivi di semplicità, questo articolo usa una semplice configurazione con un indirizzo IP front-end pubblico, un listener di base per ospitare un singolo sito nel gateway applicazione, una regola di routing di richiesta di base e due macchine virtuali nel pool back-end.

risorse del gateway applicazione

È anche possibile completare questa guida di avvio rapido usando l'interfaccia della riga di comando di Azure oppure il portale di Azure.

Prerequisiti

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi Cloud Shell preinstallati per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo in alto a destra di un codice o di un blocco di comandi. Selezionando Prova non copia automaticamente il codice o il comando in Cloud Shell. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Screenshot che mostra come avviare Cloud Shell in una nuova finestra.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o blocco di comandi) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux oppure selezionando Cmd+Maiusc+V in macOS.

  4. Selezionare Invio per eseguire il codice o il comando.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Connettersi ad Azure

Per connettersi ad Azure, eseguire Connect-AzAccount.

Creare un gruppo di risorse

In Azure, si allocano le risorse correlate a un gruppo di risorse. È possibile usare un gruppo di risorse esistente o crearne uno nuovo.

Per creare un nuovo gruppo di risorse, usare il cmdlet New-AzResourceGroup:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Creare risorse di rete

Per le comunicazioni tra le risorse create in Azure è necessaria una rete virtuale. La subnet del gateway applicazione può contenere solo i gateway applicazione. Non sono consentite altre risorse. È possibile creare una nuova subnet per il gateway applicazione o usarne una esistente. In questo esempio vengono create due subnet: una per il gateway applicazione e l'altra per i server back-end. È possibile configurare l'indirizzo IP front-end del gateway applicazione come pubblico o privato in base al caso d'uso. In questo esempio si sceglierà un indirizzo IP front-end pubblico.

  1. Creare le configurazioni delle subnet usando New-AzVirtualNetworkSubnetConfig.
  2. Crea la rete virtuale con le configurazioni delle subnet usando New-AzVirtualNetwork.
  3. Creare l'indirizzo IP pubblico usando New-AzPublicIpAddress.

Nota

I criteri degli endpoint servizio di rete virtuale non sono attualmente supportati in una subnet del gateway applicazione.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Creare un gateway applicazione

Creare le configurazioni IP e la porta front-end

  1. Usare New-AzApplicationGatewayIPConfiguration per creare la configurazione che associa la subnet creata al gateway applicazione.
  2. Usare New-AzApplicationGatewayFrontendIPConfig per creare la configurazione che assegna l'indirizzo IP pubblico creato in precedenza per il gateway applicazione.
  3. Usare New-AzApplicationGatewayFrontendPort per assegnare la porta 80 per accedere al gateway applicazione.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

Creare il pool back-end

  1. Usare New-AzApplicationGatewayBackendAddressPool per creare il pool back-end per il gateway applicazione. Il pool back-end è vuoto per il momento. Quando si creano le schede di interfaccia di rete del server back-end nella sezione successiva, verranno aggiunte al pool back-end.
  2. Configurare le impostazioni per il pool back-end con New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Creare il listener e aggiungere una regola

Azure richiede un listener per consentire al gateway applicazione di instradare il traffico in modo appropriato al pool back-end. È necessaria inoltre una regola per comunicare al listener quale pool back-end usare per il traffico in ingresso.

  1. Creare il listener usando New-AzApplicationGatewayHttpListener con la configurazione front-end e la porta front-end creata prima.
  2. Usare New-AzApplicationGatewayRequestRoutingRule per creare una regola denominata rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Creare il gateway applicazione

Dopo aver creato le risorse di supporto necessarie, creare il gateway applicazione:

  1. Usare New-AzApplicationGatewaySku per specificare i parametri per il gateway applicazione.
  2. Usare New-AzApplicationGateway per creare il gateway applicazione.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

Server back-end

Dopo aver creato il gateway applicazione, creare le macchine virtuali back-end che ospiteranno i siti Web. Un back-end può essere costituito da schede di interfaccia di rete, set di scalabilità di macchine virtuali, indirizzo IP pubblico, indirizzo IP interno, nomi di dominio completi (FQDN) e back-end multi-tenant come Servizio app di Azure.

In questo esempio vengono create due macchine virtuali da usare come server back-end per il gateway applicazione. È anche possibile installare IIS nelle macchine virtuali per verificare l'avvenuta creazione del gateway applicazione in Azure.

Creare due macchine virtuali

  1. Ottenere la configurazione del pool back-end del gateway applicazione creata di recente con il comando Get-AzApplicationGatewayBackendAddressPool.
  2. Creare un'interfaccia di rete con New-AzNetworkInterface.
  3. Creare una configurazione di macchina virtuale con New-AzVMConfig.
  4. Creare la macchina virtuale con New-AzVM.

Quando si esegue l'esempio di codice seguente per creare le macchine virtuali, Azure richiede le credenziali. Immettere un nome utente e una password:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Testare il gateway applicazione

Nonostante l'installazione di IIS non sia necessaria per creare il gateway applicazione, è stata eseguita in questa guida di avvio rapido per verificare se il gateway applicazione è stato creato correttamente in Azure.

Usare IIS per testare il gateway applicazione:

  1. Eseguire Get-AzPublicIPAddress per ottenere l'indirizzo IP pubblico del gateway applicazione.
  2. Copiare e incollare l'indirizzo IP pubblico nella barra degli indirizzi del browser. Quando si aggiorna il browser, dovrebbe apparire il nome della macchina virtuale. Una risposta valida verifica che il gateway applicazione sia stato creato correttamente e possa connettersi al back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Testare il gateway applicazione

Pulire le risorse

Quando le risorse create con il gateway applicazione non sono più necessarie, eliminare il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione del gateway applicazione e di tutte le risorse correlate.

Per eliminare il gruppo di risorse, chiamare il cmdlet Remove-AzResourceGroup:

Remove-AzResourceGroup -Name myResourceGroupAG

Passaggi successivi