Упражнение. Создание веб-сайтов
В этом упражнении вы создадите пару виртуальных машин за внутренней подсистемой балансировки нагрузки и установите веб-приложение регистрации автомобиля. Вы также настраиваете виртуальную сеть с частной конечной точкой, которую Front Door может использовать для подключения к виртуальным машинам в частном порядке. Наконец, вы развертываете веб-сайт продления лицензии на экземпляре службы приложений Azure и устанавливаете частное подключение к распределённой сети Front Door.
Создание виртуальных машин и развертывание сайта регистрации транспортных средств
Откройте Azure Cloud Shell в браузере и войдите в каталог с доступом к подписке, в которой вы хотите создать ресурсы.
Выполните следующую команду в Cloud Shell, чтобы создать переменную для сохранения имени вашей группы ресурсов и группу ресурсов для ваших ресурсов. Замените
<resource group name>
именем группы ресурсов и<location>
регионом Azure, в который вы хотите развернуть ресурсы.Заметка
Если вам нужно найти имя расположения, можно использовать следующую команду: az account list-location -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 для применения к веб-серверам во время создания.
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
. На каждой виртуальной машине установлено веб-приложение для регистрации транспортных средств.Первая команда выполняется асинхронно, чтобы одновременно создавать обе виртуальные машины.
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 running" для обеих виртуальных машин.
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
Чтобы создать пробу работоспособности для проверки доступности каждого экземпляра виртуальной машины, выполните следующую команду.
az network lb probe create \ --resource-group $RG \ --lb-name webServerILB \ --name webServerHealthProbe \ --protocol tcp \ --port 80
Чтобы создать правило балансировки нагрузки для распределения трафика на веб-серверах, выполните следующую команду.
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
Чтобы добавить оба веб-сервера в внутренний пул внутренней подсистемы балансировки нагрузки, выполните следующие команды.
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
Теперь вы создали виртуальные машины под управлением веб-приложения регистрации автомобилей. Обе виртуальные машины идентичны и являются частью одной виртуальной сети. Вы также настроили службу приватного соединения и частную конечную точку для доступа к виртуальным машинам за внутренним балансировщиком нагрузки.
Создание службы приложений и развертывание сайта продления лицензии
Чтобы начать, чтобы создать уникальное имя веб-сайта, выполните следующую команду.
APPSERVICE="licenserenewal$RANDOM"
Затем, чтобы создать план службы приложений для использования веб-приложения, выполните следующую команду.
az appservice plan create \ --resource-group $RG \ --name vehicleAppServicePlan \ --location eastus \ --sku FREE
Наконец, создайте веб-приложение и разверните сайт продления лицензии.
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.