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.
Vous pouvez également suivre ce guide de démarrage rapide en utilisant Azure CLI ou le portail Azure.
Remarque
Le front-end de la passerelle d’application prend désormais en charge les adresses IP à double pile (préversion). Vous pouvez désormais créer jusqu’à quatre adresses IP front-end : deux adresses IPv4 (publiques et privées) et deux adresses IPv6 (publiques et privées).
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Azure PowerShell version 1.0.0 ou ultérieure (si vous exécutez Azure PowerShell localement).
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. | |
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. | |
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. |
Pour utiliser Azure Cloud Shell :
Démarrez Cloud Shell.
Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.
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.
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 bien démarrer, 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.
- Créez les configurations de sous-réseau en utilisant
New-AzVirtualNetworkSubnetConfig
. - Créez le réseau virtuel à l’aide des configurations de sous-réseau en utilisant
New-AzVirtualNetwork
. - 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
La référence SKU Standard v2 est utilisée dans cet exemple.
Créer les configurations IP et le port frontal
- Utilisez
New-AzApplicationGatewayIPConfiguration
pour créer la configuration qui associe le sous-réseau que vous avez créé à la passerelle d’application. - 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. - 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
- 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. - 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.
- 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. - 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 :
- Utilisez
New-AzApplicationGatewaySku
pour spécifier les paramètres de la passerelle d’application. - 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
Conseil
Vous pouvez modifier les valeurs des paramètres Name
et Tier
pour utiliser une autre référence SKU. Par exemple : Basic
.
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
- Procurez-vous la configuration du pool de back-ends Application Gateway récemment créé avec
Get-AzApplicationGatewayBackendAddressPool
. - Créez une interface réseau avec
New-AzNetworkInterface
. - Créez une configuration de machine virtuelle avec
New-AzVMConfig
. - 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 :
- Exécutez
Get-AzPublicIPAddress
pour récupérer l’adresse IP publique de la passerelle d’application. - 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
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