Упражнение. Запуск автоматической отработки отказа с применением приоритетной маршрутизации
Предположим, что ваше приложение для потоковой передачи музыки имеет равное распределение пользователей в западной США и западной Европе. В одном регионе вы хотели бы развернуть версию приложения с отработкой отказа.
Пример приложения, используемого для этого упражнения, отображает регион, в котором он выполняется. Один из двух экземпляров имеет более высокий приоритет и является первичной конечной точкой. Другой экземпляр имеет более низкий приоритет и является конечной точкой отработки отказа. Отключение первичной конечной точки от сети автоматически направляет весь трафик на конечную точку отработки отказа.
В этом упражнении вы настроите Диспетчер трафика использовать конечную точку США в качестве основной, отработку отказа в европейскую конечную точку при возникновении ошибок.
Создание нового профиля диспетчера трафика
Выполните следующую команду в Cloud Shell, чтобы создать новый профиль Диспетчер трафика:
az network traffic-manager profile create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --routing-method Priority \ --unique-dns-name TM-MusicStream-Priority-$RANDOM
Эти параметры используются в команде:
- --routing-method Priority: создает профиль Диспетчер трафика с помощью метода маршрутизации приоритета.
- --unique-dns-name. Создает уникальное на глобальном уровне доменное имя
<unique-dns-name>.trafficmanager.net
. Чтобы гарантировать уникальность имени, мы используем функцию Bash$RANDOM
, которая возвращает случайное целое число.
Развертывание веб-приложений
Выполните приведенную ниже команду, чтобы развернуть шаблон Resource Manager. Шаблон создает два сервера, один в регионе Западной Европы и один в регионе "Западная часть США 2". Будьте терпеливыми, так как развертывание может занять несколько минут.
az deployment group create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager/master/azuredeploy.json \ --parameters password="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
Добавление конечных точек в диспетчер трафика
Теперь веб-приложения работают на виртуальных машинах. Выполните следующие команды, чтобы добавить ресурсы общедоступного IP-адреса виртуальных машин в качестве конечных точек в профиль Диспетчер трафика:
WestId=$(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query id \ --output tsv) az network traffic-manager endpoint create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --name "Primary-WestUS" \ --type azureEndpoints \ --priority 1 \ --target-resource-id $WestId
WestId=$(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query id \ --output tsv) az network traffic-manager endpoint create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --name "Failover-WestEurope" \ --type azureEndpoints \ --priority 2 \ --target-resource-id $WestId
Код получает идентификаторы ресурсов из обеих виртуальных машин. Затем код использует эти идентификаторы для добавления их в профиль диспетчера трафика в качестве конечных точек. Код использует флаг
--priority
, чтобы установить наивысший приоритет для приложения региона "Западная часть США".Далее коротко рассмотрим настроенные конечные точки. Выполните следующую команду:
az network traffic-manager endpoint list \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --output table
Тестирование приложения
Проверим, что показывает служба доменных имен (DNS) для веб-приложений и для нашего профиля диспетчера трафика. Выполните приведенные ниже команды для отображения IP-адресов каждого из созданных нами ресурсов.
Получите адрес веб-приложения "Западная часть США 2":
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Получите адрес для веб-приложения Западной Европы:
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Получите адрес для профиля Диспетчер трафика:
# Retrieve the address for the Traffic Manager profile nslookup $(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Адрес профиля диспетчера трафика должен соответствовать IP-адресу для общедоступного IP-адреса westus2-vm-nic-pip, назначенного виртуальной машине westus2-vm.
Выполните приведенную ниже команду для перехода к полному доменному имени (FQDN) профиля Диспетчера трафика. Ваш запрос направляется в конечную точку, которая отвечает самым высоким приоритетом.
echo http://$(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Код выводит полное доменное имя (FQDN) в Cloud Shell. Выберите полное доменное имя, чтобы открыть новое окно браузера или вкладку.
Убедитесь, что приложение работает, и расположение, отображаемое в нижней части страницы, — западная часть США 2:
Выполните следующую команду, чтобы отключить основную конечную точку:
az network traffic-manager endpoint update \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name "Primary-WestUS" \ --profile-name TM-MusicStream-Priority \ --type azureEndpoints \ --endpoint-status Disabled
Давайте еще раз проверим, что показывает служба доменных имен (DNS) для веб-приложений и нашего профиля диспетчера трафика.
Получите адрес веб-приложения "Западная часть США 2":
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Получите адрес для веб-приложения Западной Европы.
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Получите адрес для профиля Диспетчер трафика:
nslookup $(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Адрес профиля Диспетчер трафика теперь должен соответствовать веб-приложению Западной Европы.
Обновите веб-страницу, чтобы еще раз протестировать работу веб-приложения в браузере. Диспетчер трафика должен автоматически перенаправлять трафик в конечную точку Западной Европы. В зависимости от используемого браузера, может потребоваться несколько минут для истечения срока действия адреса, кэшированного локально. Открытие сайта в отдельном окне в конфиденциальном режиме должно обойти кэширование, поэтому вы сможете просмотреть изменения сразу же.