練習 - 建立網站

已完成

在本練習中,您會在內部負載平衡器後面建立一對虛擬機器,並安裝車輛登記 Web 應用程式。 您也會使用 Front Door 可以用來私下連線到虛擬機器的私人端點來設定虛擬網路。 最後,您會將授權續約網站部署到 Azure App Service 的執行個體,也會建立與 Front Door 的私人連線。

建立虛擬機器並部署車輛登記網站

  1. 在瀏覽器中開啟 Azure Cloud Shell,並使用您要在其中建立資源的訂用帳戶存取權登入目錄。

  2. 在 Cloud Shell 中執行下列命令,以建立變數來儲存資源群組名稱,並為資源建立資源群組。 以資源群組名稱取代 <resource group name>,並以您要在其中部署資源的 Azure 區域取代 <location>

    注意

    如果需要尋找位置名稱,可以使用下列命令:az account list-locations -o table

    RG=<resource group name>
    az group create --name $RG --location <location>
    
  3. 在右側的 Cloud Shell 視窗中,執行下列命令。 此命令會使用 Azure 命令列介面來建立名為 vehicleappvnet 的虛擬網路。 其為私人網路,而且會提供範圍介於 10.0.0.0 至 10.0.255.255 的位址。 該命令也會建立名為 webServerSubnet 的子網路,其具有介於 10.0.1.0 至 10.0.1.255 的位址範圍。 此子網路會包含虛擬機器。

    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. 若要下載用於建立虛擬機器的指令碼,請執行下列命令。

    git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
    
  5. 建立網路安全性群組 (NSG) 和 NSG 規則,以在建立期間套用至 Web 伺服器。

    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. 若要建立並設定網頁伺服器的虛擬機器,請執行下列命令。 這些虛擬機器的名稱會是 webServer1webServer2。 每部虛擬機器都會執行 Ubuntu Server。 系統會針對每個虛擬機器建立系統管理使用者帳戶,其使用者名稱為 azureuser。 每部虛擬機器都會安裝車輛登記 Web 應用程式。

    第一個命令會以非同步方式執行,讓系統同時建立這兩部虛擬機器。

    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. 若要確認系統已成功建立這兩部虛擬機器,請執行下列命令。

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

    您應該會看到如下所示的輸出。 在繼續之前,請確定兩部虛擬機器的 [PowerState] 都是 [VM 執行中]

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

建立內部負載平衡器,並將虛擬機器新增至後端集區

  1. 若要建立內部負載平衡器資源,請執行下列命令。

    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. 若要建立健全狀態探查以檢查每個 VM 執行個體的可用性,請執行下列命令。

    az network lb probe create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name webServerHealthProbe \
        --protocol tcp \
        --port 80
    
  3. 若要建立負載平衡規則以將流量散發至 Web 伺服器,請執行下列命令。

    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. 若要將這兩部 Web 伺服器新增至內部負載平衡器的後端集區,請執行下列命令。

    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
    

需要私人連結服務,才能在 Front Door 與原始資源之間建立私人通訊。 私人端點是 Front Door 會與其建立連線的端點,其會透過 Microsoft 網路實現內部連線。

  1. 若要建立私人連結服務,並將其與內部負載平衡器建立關聯,請執行下列命令。 第一個命令會停用子網路上的私人連結網路原則,以允許建立私人連結服務。

    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. 若要在虛擬網路中建立私人端點,請執行下列命令。 系統會自動核准與此私人端點建立連線的要求。

    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
    

您現已建立執行車輛登記 Web 應用程式的虛擬機器。 這兩部虛擬機器是完全相同的,同時也屬於相同的虛擬網路。 您也已設定私人連結服務和私人端點,以存取內部負載平衡器後面的虛擬機器。

建立 App Service 並部署駕照更新網站

  1. 一開始,若要產生網站的唯一名稱,請執行下列命令。

    APPSERVICE="licenserenewal$RANDOM"
    
  2. 接下來,若要建立 Web 應用程式使用的 App Service 方案,請執行下列命令。

    az appservice plan create \
        --resource-group $RG \
        --name vehicleAppServicePlan \
        --location eastus \
        --sku FREE
    
  3. 最後,請建立 Web 應用程式並部署駕照更新網站。

    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
    

現在,讓我們仔細看看如何設定 Front Door。