Démarrage rapide : Diriger le trafic web avec Azure Application Gateway - Azure CLI

Dans le cadre de ce guide de démarrage rapide, vous allez utiliser Azure CLI 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 PowerShell ou le portail Azure.

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

Prérequis

  • Cet article nécessite la version 2.0.4 ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Créer un groupe de ressources

Dans Azure, vous allouez les ressources associées à un groupe de ressources. Créez un groupe de ressources avec az group create.

L’exemple suivant crée un groupe de ressources nommé myResourceGroupAG à l’emplacement eastus.

az group create --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à. Dans cet exemple, vous créez deux sous-réseaux : un pour la passerelle d’application et un autre pour les serveurs back-end. Vous pouvez l’adresse IP frontale d’Application Gateway pour qu’elle soit publique ou privée conformément à votre cas d’utilisation. Dans cet exemple, vous allez choisir une adresse IP front-end publique.

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).

Pour créer le réseau virtuel et le sous-réseau, utilisez az network vnet create. Exécutez az network public-ip create pour créer l’adresse IP publique.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.21.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.21.0.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet   \
  --address-prefix 10.21.1.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Créer les serveurs back-end

Un pool de back-ends peut avoir des cartes d’interface réseau, des groupes de machines virtuelles identiques, des adresses IP publiques, des adresses IP internes, des noms de domaine complets (FQSN) et des back-ends multi-locataires 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 allez également installer NGINX sur les machines virtuelles pour tester la passerelle d’application.

Créer deux machines virtuelles

Installez le serveur web NGINX sur les machines virtuelles pour vérifier que la passerelle d’application a bien été créée. Vous pouvez utiliser un fichier de configuration cloud-init pour installer NGINX et exécuter une application Node.js « Hello World » sur une machine virtuelle Linux. Pour plus d’informations sur cloud-init, consultez Prise en charge de cloud-init pour les machines virtuelles dans Azure.

Dans Azure Cloud Shell, copiez et collez la configuration suivante dans un fichier appelé cloud-init.txt. Entrez editor cloud-init.txt pour créer le fichier.

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Créez les interfaces réseau avec az network nic create. Pour créer les machines virtuelles, vous utilisez az vm create.

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Créer la passerelle Application Gateway

Créez une passerelle d’application en utilisant az network application-gateway create. Quand vous créez une passerelle d’application avec Azure CLI, vous spécifiez des informations de configuration, telles que la capacité, la référence SKU et les paramètres HTTP. Azure ajoute ensuite les adresses IP privées des interfaces réseau en tant que serveurs dans le pool de back-ends de la passerelle d’application.

address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --capacity 2 \
  --sku Standard_v2 \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$address1" "$address2" \
  --priority 100

La création de la passerelle d’application par Azure peut prendre jusqu’à 30 minutes. Une fois la passerelle d’application créée, vous pouvez afficher les paramètres suivants dans la section Paramètres de la page Application Gateway :

  • appGatewayBackendPool : situé dans la page Pools principaux, ce paramètre spécifie le pool de back-ends nécessaire.
  • appGatewayBackendHttpSettings : situé dans la page Paramètres HTTP, ce paramètre spécifie que la passerelle d’application utilise le port 80 et le protocole HTTP pour la communication.
  • appGatewayHttpListener : situé dans la page Écouteurs, ce paramètre spécifie l’écouteur par défaut associé à appGatewayBackendPool.
  • appGatewayFrontendIP : situé dans la page Configurations d’adresses IP frontales, ce paramètre assigne myAGPublicIPAddress à appGatewayHttpListener.
  • rule1 : situé dans la page Règles, ce paramètre spécifie la règle de routage par défaut associée à appGatewayHttpListener.

Tester la passerelle d’application

Azure ne nécessite pas de serveur web NGINX pour créer la passerelle d’application, mais vous avez installé ce serveur dans ce guide de démarrage rapide pour vérifier qu’Azure avait bien créé la passerelle d’application. Pour récupérer l’adresse IP publique de la nouvelle passerelle d’application, utilisez az network public-ip show.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Copiez et collez l’adresse IP publique dans la barre d’adresse de votre navigateur. ​ Test application gateway

Quand vous actualisez le navigateur, vous devez voir s’afficher le nom de la deuxième machine virtuelle. Cela indique que la passerelle d’application a été correctement créée et peut se connecter au back-end.

Nettoyer les ressources

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

az group delete --name myResourceGroupAG

Étapes suivantes