Partager via


Tutoriel : Créer une passerelle d’application qui améliore l’accès aux applications web

Si vous êtes un administrateur informatique cherchant à améliorer l'accès aux applications web, vous pouvez optimiser votre passerelle d'application afin qu'elle s'adapte de manière dynamique à la demande des clients et couvre plusieurs zones de disponibilité. Ce tutoriel vous aide à configurer les principales fonctionnalités Azure Application Gateway v2, notamment la mise à l’échelle automatique, la redondance de zone et les adresses IP virtuelles statiques, pour obtenir ces améliorations. Vous allez utiliser des applets de commande Azure PowerShell et le modèle de déploiement Azure Resource Manager pour résoudre le problème.

Dans ce tutoriel, vous allez apprendre à :

  • Créer un certificat auto-signé
  • Créer un réseau virtuel de mise à l’échelle automatique
  • Créer une adresse IP publique réservée
  • Configurer votre infrastructure application gateway
  • Spécifier la mise à l’échelle automatique
  • Créer la passerelle Application Gateway
  • Tester la passerelle d’application

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Pour plus d’informations sur la prise en charge des zones de disponibilité dans Application Gateway v2, consultez Fiabilité pour Application Gateway v2.

Conditions préalables

Remarque

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.

Ce tutoriel nécessite l’exécution locale d’une session Azure PowerShell administrative. Vous devez avoir installé le module Azure PowerShell version 1.0.0 ou ultérieure. Exécutez Get-Module -ListAvailable Az pour trouver la version. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Après avoir vérifié la version PowerShell, exécutez Connect-AzAccount pour créer une connexion avec Azure.

Connexion à Azure

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

Créer un groupe de ressources

Créez un groupe de ressources dans l’un des emplacements disponibles.

$location = "East US 2"
$rg = "AppGW-rg"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

Créer un certificat auto-signé

Dans un environnement de production, vous devez importer un certificat valide signé par un fournisseur approuvé. Pour ce didacticiel, vous créez un certificat auto-signé à l’aide de New-SelfSignedCertificate. Vous pouvez utiliser Export-PfxCertificate avec l’empreinte numérique qui a été retournée pour exporter un fichier pfx du certificat.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

Un résultat comme l’exemple suivant devrait s’afficher :

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

Utilisez l’empreinte numérique pour créer le fichier pfx. Remplacez <le mot de passe par un mot de passe> de votre choix :

$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Créer un réseau virtuel

Créez un réseau virtuel avec un sous-réseau dédié pour une passerelle d’application de mise à l’échelle automatique. Actuellement, une seule passerelle d’application de mise à l’échelle automatique peut être déployée dans chaque sous-réseau dédié.

#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
       -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2

Créer une adresse IP publique réservée

Spécifiez la méthode d’allocation de PublicIPAddress en tant que statique. Une adresse IP virtuelle de passerelle d’application de mise à l’échelle automatique peut être uniquement statique. Les adresses IP dynamiques ne sont pas prises en charge. Seule la référence SKU PublicIpAddress standard est prise en charge.

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3

Récupérer les détails

Récupérez les détails du groupe de ressources, du sous-réseau et de l’adresse IP dans un objet local pour créer les détails de configuration IP de la passerelle d’application.

$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

Créer des applications web

Configurez deux applications web pour le pool principal. Remplacez <site1-name et site2-name><par des noms uniques dans le domaine.>azurewebsites.net

New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01"  -Location $location -Tier Basic `
   -NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $location -AppServicePlan ASP-01

Configurer l’infrastructure

Configurez la configuration IP, la configuration IP frontale, le pool principal, les paramètres HTTP, le certificat, le port, l’écouteur et la règle dans un format identique à la passerelle d’application Standard existante. La nouvelle référence SKU suit le même modèle objet que la référence SKU Standard.

Remplacez vos deux noms de domaine complets d’application web (par exemple : mywebapp.azurewebsites.net) dans la définition de variable $pool.

$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPConfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
       -BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80

$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
            -CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
             -Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
             -Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02

$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
          -Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2

Spécifier la mise à l’échelle automatique

Vous pouvez maintenant spécifier la configuration de mise à l’échelle automatique pour la passerelle Application Gateway.

$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2

Dans ce mode, la passerelle d’application s'adapte automatiquement en fonction du schéma de trafic de l'application.

Créer la passerelle Application Gateway

Créez la passerelle d'application et incluez les zones de redondance ainsi que la configuration de la mise à l'échelle automatique.

$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
  -ResourceGroupName $rg -Location $location -BackendAddressPools $pool `
  -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
  -FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
  -HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
  -Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig

Tester la passerelle d’application

Utilisez Get-AzPublicIPAddress pour obtenir l’adresse IP publique de la passerelle d’application. Copiez l’adresse IP publique ou le nom DNS, puis collez-le dans la barre d’adresses de votre navigateur.

$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress

Nettoyer les ressources

Commencez par explorer les ressources qui ont été créées avec la passerelle Application Gateway. Ensuite, lorsqu’elles ne sont plus nécessaires, vous pouvez utiliser la Remove-AzResourceGroup commande pour supprimer le groupe de ressources, la passerelle d’application et toutes les ressources associées.

Remove-AzResourceGroup -Name $rg

Étapes suivantes