Übung: Erstellen von Websites

Abgeschlossen

In dieser Übung erstellen Sie ein Paar von VMs hinter einem internen Lastenausgleich und installieren die Web-App für die Fahrzeugregistrierung. Sie konfigurieren auch ein virtuelles Netzwerk mit einem privaten Endpunkt, über den Front Door eine private Verbindung mit den VMs herstellen kann. Schließlich stellen Sie die Website für die Lizenzerneuerung auf einer Instanz von Azure App Service bereit und stellen auch eine private Verbindung mit Front Door her.

Erstellen der VMs und Bereitstellen der Fahrzeugregistrierungswebsite

  1. Öffnen Sie Azure Cloud Shell in Ihrem Browser, und melden Sie sich beim Verzeichnis mit Zugriff auf das Abonnement an, in dem Sie Ressourcen erstellen möchten.

  2. Führen Sie den folgenden Befehl in Cloud Shell aus, um eine Variable zum Speichern Ihres Ressourcengruppennamens und eine Ressourcengruppe für Ihre Ressourcen zu erstellen. Ersetzen Sie <resource group name> durch einen Namen für Ihre Ressourcengruppe und <location> durch die Azure-Region, in der Sie Ihre Ressourcen bereitstellen möchten.

    Hinweis

    Wenn Sie den Namen des Standorts ermitteln müssen, können Sie den folgenden Befehl verwenden: az account list-locations -o table

    RG=<resource group name>
    az group create --name $RG --location <location>
    
  3. Führen Sie den folgenden Befehl im Cloud Shell-Fenster rechts aus. Mit diesem Befehl wird die Azure-Befehlszeilenschnittstelle zum Erstellen eines virtuellen Netzwerks namens vehicleappvnet verwendet. Dies ist ein privates Netzwerk, das Adressen im Adressbereich von 10.0.0.0 bis 10.0.255.255 bereitstellt. Mit dem Befehl wird außerdem ein Subnetz namens webServerSubnet erstellt, das einen Adressbereich von 10.0.1.0 bis 10.0.1.255 aufweist. Dieses Subnetz enthält die VMs.

    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. Führen Sie den folgenden Befehl aus, um das Skript zum Erstellen der VMs herunterzuladen.

    git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
    
  5. Erstellen Sie eine Netzwerksicherheitsgruppe (NSG) und eine NSG-Regel, die während der Erstellung für die Webserver gelten soll.

    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. Führen Sie die folgenden Befehle aus, um die VMs für die Webserver zu erstellen und zu konfigurieren. Die Namen der virtuellen Computer lauten webServer1 und webServer2. Auf beiden virtuellen Computern wird Ubuntu Server ausgeführt. Für jede VM wird ein administratives Benutzerkonto mit dem Benutzernamen azureuser erstellt. Auf beiden VMs ist die Web-App für die Fahrzeugregistrierung installiert.

    Der erste Befehl wird asynchron ausgeführt, damit beide VMs gleichzeitig erstellt werden können.

    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. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob beide VMs erfolgreich erstellt wurden.

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

    Eine Ausgabe ähnlich der folgenden sollte angezeigt werden. Stellen Sie sicher, dass für beide VMs unter PowerState der Status Virtueller Computer wird ausgeführt angezeigt wird, bevor Sie fortfahren.

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

Erstellen eines internen Lastenausgleichs und Hinzufügen virtueller Computer zum Back-End-Pool

  1. Führen Sie den folgenden Befehl aus, um eine Ressource für den internen Lastenausgleich zu erstellen:

    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. Führen Sie den folgenden Befehl aus, um einen Integritätstest zur Überprüfung der Verfügbarkeit der einzelnen VM-Instanzen zu erstellen:

    az network lb probe create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name webServerHealthProbe \
        --protocol tcp \
        --port 80
    
  3. Führen Sie den folgenden Befehl aus, um eine Lastenausgleichsregel zur Verteilung des Datenverkehrs auf die Webserver zu erstellen:

    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. Führen Sie die folgenden Befehle aus, um dem Back-End-Pool des internen Lastenausgleichs die beiden Webserver hinzuzufügen:

    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
    

Der Private Link-Dienst ist erforderlich, um eine private Kommunikation zwischen Front Door und den Ursprungsressourcen einzurichten. Front Door stellt eine Verbindung mit einem privaten Endpunkt her, um eine interne Verbindung über das Microsoft-Netzwerk zu ermöglichen.

  1. Führen Sie die folgenden Befehle aus, um einen Private Link-Dienst zu erstellen und dem internen Lastenausgleich zuzuordnen. Mit dem ersten Befehl wird die Private Link-Netzwerkrichtlinie für das Subnetz deaktiviert, damit der Private Link-Dienst erstellt werden kann.

    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. Führen Sie die folgenden Befehle aus, um den privaten Endpunkt in einem virtuellen Netzwerk zu erstellen. Anforderungen zum Einrichten einer Verbindung mit diesem privaten Endpunkt werden automatisch genehmigt.

    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
    

Hiermit haben Sie die VMs erstellt, auf denen die Web-App für die Fahrzeugregistrierung ausgeführt wird. Beide VMs sind identisch und Teil des gleichen virtuellen Netzwerks. Außerdem haben Sie einen Private Link-Dienst und einen privaten Endpunkt für den Zugriff auf die VMs hinter einem internen Lastenausgleich eingerichtet.

Erstellen des App Service-Plans und Bereitstellen der Website für die Führerscheinerneuerung

  1. Führen Sie zunächst den folgenden Befehl aus, um einen eindeutigen Namen für die Website zu generieren.

    APPSERVICE="licenserenewal$RANDOM"
    
  2. Führen Sie als Nächstes den folgenden Befehl aus, um einen App Service-Plan für die Web-App zu erstellen.

    az appservice plan create \
        --resource-group $RG \
        --name vehicleAppServicePlan \
        --location eastus \
        --sku FREE
    
  3. Erstellen Sie schließlich die Web-App, und stellen Sie die Website für die Führerscheinerneuerung bereit.

    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
    

In der nächsten Lerneinheit erfahren Sie, wie Sie Front Door konfigurieren.