練習 - 建立網站
在本練習中,您會在內部負載平衡器後面建立一對虛擬機器,並安裝車輛登記 Web 應用程式。 您也會使用 Front Door 可以用來私下連線到虛擬機器的私人端點來設定虛擬網路。 最後,您會將授權續約網站部署到 Azure App Service 的執行個體,也會建立與 Front Door 的私人連線。
建立虛擬機器並部署車輛登記網站
在瀏覽器中開啟 Azure Cloud Shell,並使用您要在其中建立資源的訂用帳戶存取權登入目錄。
在 Cloud Shell 中執行下列命令,以建立變數來儲存資源群組名稱,並為資源建立資源群組。 以資源群組名稱取代
<resource group name>
,並以您要在其中部署資源的 Azure 區域取代<location>
。注意
如果需要尋找位置名稱,可以使用下列命令:az account list-locations -o table
RG=<resource group name> az group create --name $RG --location <location>
在右側的 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
若要下載用於建立虛擬機器的指令碼,請執行下列命令。
git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
建立網路安全性群組 (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
若要建立並設定網頁伺服器的虛擬機器,請執行下列命令。 這些虛擬機器的名稱會是
webServer1
和webServer2
。 每部虛擬機器都會執行 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
若要確認系統已成功建立這兩部虛擬機器,請執行下列命令。
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
建立內部負載平衡器,並將虛擬機器新增至後端集區
若要建立內部負載平衡器資源,請執行下列命令。
az network lb create \ --resource-group $RG \ --name webServerILB \ --sku standard \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool
若要建立健全狀態探查以檢查每個 VM 執行個體的可用性,請執行下列命令。
az network lb probe create \ --resource-group $RG \ --lb-name webServerILB \ --name webServerHealthProbe \ --protocol tcp \ --port 80
若要建立負載平衡規則以將流量散發至 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
若要將這兩部 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 網路實現內部連線。
若要建立私人連結服務,並將其與內部負載平衡器建立關聯,請執行下列命令。 第一個命令會停用子網路上的私人連結網路原則,以允許建立私人連結服務。
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
若要在虛擬網路中建立私人端點,請執行下列命令。 系統會自動核准與此私人端點建立連線的要求。
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 並部署駕照更新網站
一開始,若要產生網站的唯一名稱,請執行下列命令。
APPSERVICE="licenserenewal$RANDOM"
接下來,若要建立 Web 應用程式使用的 App Service 方案,請執行下列命令。
az appservice plan create \ --resource-group $RG \ --name vehicleAppServicePlan \ --location eastus \ --sku FREE
最後,請建立 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。