Démarrage rapide : Diriger le trafic web avec Azure Application Gateway à l’aide d’Azure PowerShell

Dans le cadre de ce guide de démarrage rapide, vous allez utiliser Azure PowerShell pour créer une passerelle d’application. Puis, vous la testerez pour vous assurer qu’elle fonctionne correctement.

La passerelle d’application dirige le trafic web des applications vers des ressources spécifiques d’un pool de back-ends. Vous attribuez des écouteurs aux ports, créez des règles et ajoutez des ressources à un pool de back-ends. Pou simplifier, cet article utilise une configuration simple avec une adresse IP front-end publique, un écouteur de base pour héberger un site unique sur la passerelle applicative, une règle de routage des requêtes simple et deux machines virtuelles dans le pool de back-ends.

application gateway resources

Vous pouvez également suivre ce guide de démarrage rapide en utilisant Azure CLI ou le portail Azure.

Prérequis

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Button to launch Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Pour utiliser Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrer pour exécuter le code ou la commande.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Connexion à Azure

Pour vous connecter à Azure, exécutez Connect-AzAccount.

Créer un groupe de ressources

Dans Azure, vous allouez les ressources associées à un groupe de ressources. Vous pouvez utiliser un groupe de ressources existant ou en créer un.

Pour créer un groupe de ressources, utilisez l’applet de commande New-AzResourceGroup :

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Créer des ressources réseau

Azure a besoin d’un réseau virtuel pour communiquer avec les différentes ressources que vous créez. Le sous-réseau de passerelle d’application peut contenir uniquement des passerelles d’application. Aucune autre ressource n’est autorisée. Vous pouvez créer un sous-réseau pour Application Gateway ou en utiliser qui existe déjà. Vous créez deux sous-réseaux dans cet exemple : un pour la passerelle d’application et un autre pour les serveurs back-end. Vous pouvez configurer l’adresse IP front-end d’Application Gateway pour qu’elle soit publique ou privée conformément à votre cas d’usage. Dans cet exemple, vous allez choisir une adresse IP front-end publique.

  1. Créez les configurations de sous-réseau en utilisant New-AzVirtualNetworkSubnetConfig.
  2. Créez le réseau virtuel à l’aide des configurations de sous-réseau en utilisant New-AzVirtualNetwork.
  3. Créez l’adresse IP publique en utilisant New-AzPublicIpAddress.

Notes

Les stratégies de points de terminaison de service de réseau virtuel ne sont pas prises en charge dans un sous-réseau Application Gateway.

$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

Créer une passerelle Application Gateway

Créer les configurations IP et le port frontal

  1. Utilisez New-AzApplicationGatewayIPConfiguration pour créer la configuration qui associe le sous-réseau que vous avez créé à la passerelle d’application.
  2. Utilisez New-AzApplicationGatewayFrontendIPConfig pour créer la configuration qui attribue l’adresse IP publique que vous avez créée précédemment pour la passerelle d’application.
  3. Utilisez New-AzApplicationGatewayFrontendPort pour configurer le port 80 comme port d’accès à la passerelle d’application.
$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

Remarque

Le serveur frontal d’Application Gateway prend désormais en charge les adresses IP à double pile (préversion publique). Vous pouvez désormais créer jusqu’à quatre adresses IP frontales : deux adresses IPv4 (publiques et privées) et deux adresses IPv6 (publiques et privées).

Créer le pool principal

  1. Utilisez New-AzApplicationGatewayBackendAddressPool pour créer le pool de back-ends pour la passerelle d’application. Le pool de back-ends est vide pour l’instant. Lorsque vous créerez les cartes réseau du serveur back-end dans la section suivante, vous les ajouterez au pool de back-ends.
  2. Configurez les paramètres du pool de back-ends avec New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Créer l’écouteur et ajouter une règle

Azure nécessite un écouteur pour permettre à la passerelle d’application d’acheminer le trafic de manière appropriée vers le pool de back-ends. Azure nécessite également une règle pour que l’écouteur sache quel pool de back-ends utiliser pour le trafic entrant.

  1. Créez un écouteur à l’aide de New-AzApplicationGatewayHttpListener avec la configuration front-end et le port front-end que vous avez créés précédemment.
  2. Utilisez New-AzApplicationGatewayRequestRoutingRule pour créer une règle nommée 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

Créer la passerelle Application Gateway

Maintenant que vous avez créé les ressources de prise en charge nécessaires, créez la passerelle d’application :

  1. Utilisez New-AzApplicationGatewaySku pour spécifier les paramètres de la passerelle d’application.
  2. Utilisez New-AzApplicationGateway pour créer la passerelle d’application.
$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

Serveurs principaux

Maintenant que vous avez créé la passerelle d’application, créez les machines virtuelles back-end qui vont héberger les sites web. Un back-end peut se composer de cartes d’interface réseau, de groupes de machines virtuelles identiques, d’une adresse IP publique, d’une adresse IP interne, de noms de domaine complets (FQDN) et de back-ends multilocataires comme Azure App Service.

Dans cet exemple, vous allez créer deux machines virtuelles à utiliser comme serveurs back-end pour la passerelle d’application. Vous installez également IIS sur les machines virtuelles pour vérifier qu’Azure a bien créé la passerelle d’application.

Créer deux machines virtuelles

  1. Procurez-vous la configuration du pool de back-ends Application Gateway récemment créé avec Get-AzApplicationGatewayBackendAddressPool.
  2. Créez une interface réseau avec New-AzNetworkInterface.
  3. Créez une configuration de machine virtuelle avec New-AzVMConfig.
  4. Créez la machine virtuelle avec New-AzVM.

Quand vous exécutez l’exemple de code suivant pour créer les machines virtuelles, Azure vous invite à entrer les informations d’identification. Entrez un nom d’utilisateur et un mot de passe :

$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
}

Tester la passerelle d’application

IIS n’est pas obligatoire pour créer la passerelle d’application, mais vous l’avez installé dans ce guide de démarrage rapide pour vérifier si Azure avait bien créé la passerelle d’application.

Utilisez IIS pour tester la passerelle d’application :

  1. Exécutez Get-AzPublicIPAddress pour récupérer l’adresse IP publique de la passerelle d’application.
  2. Copiez et collez l’adresse IP publique dans la barre d’adresse de votre navigateur. Quand vous actualisez le navigateur, vous devez voir s’afficher le nom de la machine virtuelle. Une réponse valide vérifie que la passerelle d’application a bien été créée avec succès et qu’elle est capable de se connecter au back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Test application gateway

Nettoyer les ressources

Quand vous n’avez plus besoin des ressources que vous avez créées avec la passerelle d’application, supprimez le groupe de ressources. Quand vous supprimez le groupe de ressources, vous supprimez aussi la passerelle d’application et toutes ses ressources associées.

Pour supprimer le groupe de ressources, appelez l’applet de commande Remove-AzResourceGroup :

Remove-AzResourceGroup -Name myResourceGroupAG

Étapes suivantes