Exercice - Créer des sites web

Effectué

Dans cet exercice, vous allez créer deux machines virtuelles derrière un équilibreur de charge, et installer l’application web d’obtention d'immatriculation des véhicules. Vous allez également configurer un réseau virtuel avec un point de terminaison privé utilisable par Front Door pour se connecter aux machines virtuelles en privé. Pour finir, vous allez déployer le site web de renouvellement de permis sur une instance d’Azure App Service, et établir une connectivité privée avec Front Door.

Créer des machines virtuelles et déployer le site d’obtention des cartes grises

  1. Ouvrez Azure Cloud Shell dans votre navigateur et connectez-vous à l’annuaire avec accès à l’abonnement dans lequel vous voulez créer des ressources.

  2. Exécutez la commande suivante dans Cloud Shell afin de créer une variable pour stocker le nom de votre groupe de ressources et un groupe de ressources pour vos ressources. Remplacez <resource group name> par le nom de votre groupe de ressources et <location> par la région Azure dans laquelle vous voulez déployer vos ressources.

    Notes

    Si vous avez besoin de trouver le nom de l’emplacement, vous pouvez utiliser la commande suivante : az account list-locations -o table

    RG=<resource group name>
    az group create --name $RG --location <location>
    
  3. Dans la fenêtre Cloud Shell située à droite, exécutez la commande suivante. Cette commande utilise l’interface de ligne de commande Azure pour créer un réseau virtuel nommé vehicleappvnet. Il s’agit d’un réseau privé qui fournit les adresses comprises dans la plage allant de 10.0.0.0 à 10.0.255.255. La commande crée également un sous-réseau appelé webServerSubnet, avec la plage d’adresses allant de 10.0.1.0 à 10.0.1.255. Ce sous-réseau contient les machines virtuelles.

    az network vnet create \
        --resource-group $RG \
        --name vehicleAppVnet \
        --address-prefixes 10.0.0.0/16 \
        --subnet-name webServerSubnet \
        --subnet-prefixes 10.0.1.0/24
    
  4. Pour téléchargez le script qui crée les machines virtuelles, exécutez la commande suivante.

    git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
    
  5. Créez un groupe de sécurité réseau (NSG) et une règle NSG à appliquer aux serveurs web lors de la création.

    az network nsg create \
        --resource-group $RG \
        --name webNSG
    
    az network nsg rule create \
        --resource-group $RG \
        --nsg-name webNSG \
        --name myNSGRuleHTTP \
        --protocol '*' \
        --direction inbound \
        --source-address-prefix '*' \
        --source-port-range '*' \
        --destination-address-prefix '*' \
        --destination-port-range 80 \
        --access allow \
        --priority 200
    
  6. Pour créer et configurer les machines virtuelles pour les serveurs web, exécutez les commandes suivantes. Les machines virtuelles sont appelées webServer1 et webServer2. Chaque machine virtuelle exécute Ubuntu Server. Un compte d’utilisateur administratif est créé pour chaque machine virtuelle, avec le nom d’utilisateurazureuser. L’application web d’obtention des cartes grises est installée sur chacune des machines virtuelles.

    La première commande s’exécute de façon asynchrone pour activer la création simultanée des deux machines virtuelles.

    az vm create \
        --resource-group $RG \
        --name webServer1 \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --generate-ssh-keys \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --public-ip-address "" \
        --nsg webNSG \
        --custom-data module-files/scripts/vmconfig.sh \
        --no-wait
    
    az vm create \
        --resource-group $RG \
        --name webServer2 \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --generate-ssh-keys \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --public-ip-address "" \
        --nsg webNSG \
        --custom-data module-files/scripts/vmconfig.sh
    
  7. Pour confirmer la création correcte des deux machines virtuelles, exécutez la commande suivante.

    az vm list \
        --resource-group $RG \
        --show-details \
        --output table
    

    Vous devez voir une sortie semblable à la suivante. Avant de continuer, vérifiez que PowerState est exécuté par machine virtuelle pour les deux machines virtuelles.

    Name          ResourceGroup      PowerState    PublicIps    Fqdns    Location        Zones
    ------------  -----------------  ------------  -----------  -------  --------------  -------
    webServer1    MyResourceGroup    VM running                          southcentralus
    webServer2    MyResourceGroup    VM running                          southcentralus
    

Créer un équilibreur de charge interne et ajouter des machines virtuelles au pool de back-ends

  1. Pour créer une ressource d’équilibreur de charge interne, exécutez la commande suivante.

    az network lb create \
        --resource-group $RG \
        --name webServerILB \
        --sku standard \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --frontend-ip-name webServerIP \
        --backend-pool-name webServerBackendPool
    
  2. Pour créer une sonde d’intégrité afin de vérifier la disponibilité de chaque instance de machine virtuelle, exécutez la commande suivante.

    az network lb probe create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name webServerHealthProbe \
        --protocol tcp \
        --port 80
    
  3. Pour créer une règle d’équilibrage de charge afin de distribuer le trafic aux serveurs web, exécutez la commande suivante.

    az network lb rule create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name myHTTPRule \
        --protocol tcp \
        --frontend-port 80 \
        --backend-port 80 \
        --frontend-ip-name webServerIP \
        --backend-pool-name webServerBackendPool \
        --probe-name webServerHealthProbe \
        --idle-timeout 15 \
        --enable-tcp-reset true
    
  4. Pour ajouter les deux serveurs web au pool de back-ends de l’équilibreur de charge interne, exécutez les commandes suivantes.

    az network nic ip-config address-pool add \
        --address-pool webServerBackendPool \
        --lb-name webServerILB \
        --ip-config-name ipconfigwebServer1 \
        --nic-name webServer1VMNic \
        --resource-group $RG
    
    az network nic ip-config address-pool add \
        --address-pool webServerBackendPool \
        --lb-name webServerILB \
        --ip-config-name ipconfigwebServer2 \
        --nic-name webServer2VMNic \
        --resource-group $RG
    

Le service Private Link est nécessaire pour établir une communication privée entre Front Door et les ressources d’origine. Un point de terminaison privé est ce que Front Door utilisera pour établir une connexion interne sur le réseau Microsoft.

  1. Pour créer un service de liaison privée et l’associer à l’équilibreur de charge interne, exécutez les commandes suivantes. La première commande désactive la stratégie réseau de liaison privée sur le sous-réseau pour permettre la création du service de liaison privée.

    az network vnet subnet update \
        --name webServerSubnet \
        --resource-group $RG \
        --vnet-name vehicleAppVnet \
        --disable-private-link-service-network-policies true
    
    az network private-link-service create \
        --resource-group $RG \
        --name myPrivateLinkService \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --lb-name webServerILB \
        --lb-frontend-ip-configs webServerIP
    
  2. Pour créer le point de terminaison privé dans un réseau virtuel, exécutez les commandes suivantes. Les demandes d’établissement de la connectivité à ce point de terminaison privé sont automatiquement approuvées.

    export resourceid=$(az network private-link-service show \
        --name myPrivateLinkService \
        --resource-group $RG \
        --query id \
        --output tsv)
    
    az network private-endpoint create \
        --connection-name myPEconnectiontoPLS \
        --name myPrivateEndpoint \
        --private-connection-resource-id $resourceid \
        --resource-group $RG \
        --subnet webServerSubnet \
        --manual-request false \
        --vnet-name vehicleAppVnet
    

Vous venez de créer les machines virtuelles qui exécutent l’application web d’obtention des cartes grises. Les deux machines virtuelles sont identiques et font partie du même réseau virtuel. Vous avez également configuré un service de liaison privée et un point de terminaison privé pour accéder aux machines virtuelles derrière un équilibreur de charge interne.

Créer une instance App Service et déployer le site de renouvellement des permis de conduire

  1. Tout d’abord, afin de générer un nom unique pour le site web, exécutez la commande suivante.

    APPSERVICE="licenserenewal$RANDOM"
    
  2. Ensuite, pour créer un plan App Service pour l’application web à utiliser, exécutez la commande suivante.

    az appservice plan create \
        --resource-group $RG \
        --name vehicleAppServicePlan \
        --location eastus \
        --sku FREE
    
  3. Enfin, créez l’application web et déployez le site de renouvellement des permis de conduire.

    az webapp create \
        --resource-group $RG \
        --name $APPSERVICE \
        --plan vehicleAppServicePlan \
        --deployment-source-url https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway \
        --deployment-source-branch appService
    

Maintenant, examinons de plus près la configuration de Front Door.