Azure Application Gateway
Introduction
La passerelle Azure Application Gateway est un équilibreur de charge de couche 7. Elle assure l’exécution des requêtes HTTP de basculement et de routage des performances entre serveurs locaux ou dans le cloud. Une passerelle Application Gateway offre les fonctionnalités de livraison d’applications suivantes : équilibrage de charge HTTP, affinité de session basée sur les cookies et déchargement SSL (Secure Sockets Layer).
Voir aussi : https://azure.microsoft.com/fr-fr/services/application-gateway/
Pré-requis à la mise en oeuvre d'Application Gateway
- Il n'existe pas aujourd'hui d'interface sur le portail windows Azure permettant la mise en oeuvre d'Application Gateway, c'est pourquoi il faudra utiliser les les applets de commande Azure Powershell. Il vous faudra télécharger et installer la derniere version des applets ici : Applets Azure Powershell
- Vous devez disposer d'un réseau virtuel (Virtual network (classic)) qui fonctionne avec un sous-réseau valide. Assurez-vous qu’aucun ordinateur virtuel ou déploiement cloud n’utilise le sous-réseau.
- Les serveurs que vous configurerez pour utiliser la passerelle Application Gateway doivent avoir un ip privé statique sur le réseau virtuel précédemment paramétré.
Création de l'Application Gateway
- Obtention du nom complet du réseau virtuel
Pour créer votre Application Gateway vous aurez besoins du nom complet du réseau virtuel, nous vous recommandons de faire une extraction des réseaux virtuel afin d'avoir le nom complet.
Get-AzureVNetConfig -ExportToFile "c:\temp\MyAzureVirtNets.netcfg"
- Création de l'Application Gateway
Vous devrez donner
- un nom de l'application gateway : LabGwAPP
- le nom complet du réseau virtuel : Group RsGrpVNet vNetGW
- le nom du sous réseau auquel sera associé l'application gateway : Subnet-1
New-AzureApplicationGateway -Name LabGwApp -VnetName "Group RsGrpVNet vNetGW" -Subnets "Subnet-1"
Installation d'un certificat SSL
L'installation d'un certificat est nécessaire à l'exécution d'une Application Gateway écoutant sur le flux Https.
Voici la commande a exécuter pour installer un certificat SSL au format pfx :
Add-AzureApplicationGatewaySslCertificate -Name LabGwApp -CertificateName LabGwAppCert -Password ******************* -CertificateFile "c:\Users\Jérôme\SSL\AzureApplicationGateway.pfx"
Paramétrage de l'Application Gateway
L'application gateway est a présent créé, il faut maintenant la configurer. La configuration s'appuie sur un fichier de paramètres qui sera transmis à l'application gateway via une ligne de commande.
Dans notre exemple nous souhaitons que l'application gateway écoute le flux https sur le port 443 et que les requêtes soient routé vers les serveurs du pool qui sont 192.168.10.4 et 192.168.10.10. Les serveurs du pool écoutent sur le port 80. Afin que l'application gateway puisse fonctionnée sur https il est nécessaire de lui indiqué le certificat qu'elle doit utiliser. Il faut également activer l'affinité de session.
- Example de fichier de configuration
Les paramètres en gras sont personnalisable.
<?xml version="1.0" encoding="utf-8"?> <ApplicationGatewayConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure"> <FrontendPorts> <FrontendPort> <Name>FrontEndPort</Name> <Port>443</Port> </FrontendPort> </FrontendPorts> <BackendAddressPools> <BackendAddressPool> <Name>BackEndPool1</Name> <IPAddresses> <IPAddress>192.168.10.4</IPAddress> <IPAddress>192.168.10.10</IPAddress> </IPAddresses> </BackendAddressPool> </BackendAddressPools> <BackendHttpSettingsList> <BackendHttpSettings> <Name>BackEndSetting1</Name> <Port>80</Port> <Protocol>Http</Protocol> <CookieBasedAffinity>Enabled</CookieBasedAffinity> </BackendHttpSettings> </BackendHttpSettingsList> <HttpListeners> <HttpListener> <Name>HTTPListener</Name> <FrontendPort>FrontEndPort</FrontendPort> <Protocol>Https</Protocol> <SslCert>LabGwAppCert</SslCert> </HttpListener> </HttpListeners> <HttpLoadBalancingRules> <HttpLoadBalancingRule> <Name>HttpLBRule1</Name> <Type>basic</Type> <BackendHttpSettings>BackendSetting1</BackendHttpSettings> <Listener>HTTPListener</Listener> <BackendAddressPool>BackEndPool1</BackendAddressPool> </HttpLoadBalancingRule> </HttpLoadBalancingRules> </ApplicationGatewayConfiguration>
Commande de paramétrage de l'application gateway
Set-AzureApplicationGatewayConfig -Name LabGwApp -ConfigFile "c:\Users\Jérôme\AzureApplicationGatewway\ConfigFileGatewayApplicationLB.xml"
Démarrage de l'Application Gateway
Dans les étapes précédente nous avons créé l'application gateway, intaller le certificat et configuré l'application gateway, à présent il faut démarrer l'application gateway
Start-AzureApplicationGateway -Name LabGwApp