Как удалить установку Azure Traffic Manager с нулевым временем простоя?

Стремясь снизить затраты на Azure, мы стараемся удалить неиспользуемые ресурсы.

У нас есть служба приложений, которая является частью настройки диспетчера трафика и доступна, когда пользователи вводят x.com в своем браузере. Существуют две службы приложений:

eus-x-com.azurewebsites.net
wus-x-com.azurewebsites.net

Они добавляются в профиль диспетчера трафика, и когда они были добавлены в TM, они были настроены так, чтобы оба пользовательских домена были x.com

DNS для x.com указывает на x-com.trafficmanager.net, имя конечной точки диспетчера трафика, которая управляет этими двумя сайтами.

Это означает, что сейчас есть:

//sites under Traffic Manager control of x.com

EastUS App Service Plan 1
      eus-x-com.azurewebsites.net   (with custom domain x.com -> x-com.trafficmanager.net)

WestUS App Service Plan 1
      wus-x-com.azurewebsites.net   (with custom domain x.com -> x-com.trafficmanager.net)


//sites not assigned to a traffic manager

EastUS App Service Plan 2
      y-com.azurewebsites.net       (with custom domain y.com -> y-com.azurewebsites.net)
      z-com.azurewebsites.net       (with custom domain z.com -> z-com.azurewebsites.net)

По прошествии нескольких лет кажется, что eus-x-com.azurewebsites.net ни разу не отказал, и он мало использовался, поэтому мы планируем разместить один экземпляр x.com, плюс другие сайты, размещенные на Восточно-американском плане обслуживания 2, и избавиться от диспетчера трафика и план обслуживания 1 восток / запад, оставив только план обслуживания 2

Идея заключалась в следующем:

  • создать новую службу приложений в EastUS App Service Plan 2 под названием x-com.azurewebsites.net
  • разверните на нем код, чтобы он работал
  • дайте ему собственный домен x.com (т.е. эквивалент добавления заголовка хоста в IIS)
  • измените DNS так, чтобы он указывал на x-com.azurewebsites.net, чтобы трафик постепенно начинал поступать в новое веб-приложение по мере обновления DNS-серверов по всему миру
  • удалить всю инфраструктуру TM в какой-то момент

Я столкнулся с проблемой: хотя я могу подтвердить право собственности на домен DNS, я столкнулся с ограничением, заключающимся в том, что две разные службы приложений, даже в разных планах служб приложений, не могут иметь одинаковые настройки личного домена, если они не являются частью настройки диспетчера трафика. Я получаю сообщение «Пользовательский домен x.com уже используется в службе приложений eus-x-com.azurewebsites.net» при попытке добавить пользовательский домен x.com в x-com.azurewebsites.net

Это немного раздражает, поскольку я не вижу причин, по которым было бы технически невозможно иметь один и тот же пользовательский домен в двух службах приложений в разных планах, если все это (в старых терминах IIS) является заголовком / привязкой хоста; какая служба приложений действительно используется, зависит от того, на какой IP-адрес поступает трафик на основе DNS. Привязка пользовательского домена - это механизм маршрутизации, позволяющий узнать, в какую службу приложения передавать трафик, когда он поступает на IIS, на котором размещено несколько сайтов. Хотя я считаю разумным, что в Azure не разрешается использовать один и тот же настраиваемый домен для нескольких служб приложений в одном плане, я не понимаю, насколько логично запретить службам приложений в разных планах служб приложений иметь одинаковые параметры настраиваемого домена.

Вместо этого я посмотрел на то, что делаю:

  • создать новый сайт в плане 2 службы приложений EastUS с именем x-com.azurewebsites.net
  • разверните на нем код, чтобы он работал
  • добавить его в диспетчер трафика, чтобы затем я мог установить на нем пользовательский домен x.com (потому что разрешено повторно использовать пользовательские домены, если сайты находятся в одном профиле диспетчера трафика)
  • изменить DNS, чтобы трафик постепенно начинал поступать в новое веб-приложение напрямую, минуя TM
  • удалить всю инфраструктуру TM в какой-то момент

Вот где у меня другая проблема:

Две службы приложений в одном регионе (независимо от того, находятся ли они в другом плане службы приложений) не могут принадлежать одному профилю диспетчера трафика. Несмотря на то, что эти сайты находятся в разных планах обслуживания приложений, эти планы находятся в одном регионе (EUS), и на портале появляется сообщение об ошибке:

Конфигурация диспетчера трафика недействительна, поскольку один или несколько доменов не принадлежат подписке 'xxx'

В обсуждении на github сотрудника MSFT говорится, что это фиктивное сообщение об ошибке, следует интерпретировать как «нельзя, чтобы две службы приложений в одном регионе были частью одной TM». Вы можете получить его, если один из них является внешней конечной точкой, но тогда он не добавляет для вас пользовательский домен, а это единственное, что я хотел от добавления нового сайта в TM.

Затем я обнаружил, что вместо этого могу отредактировать TM и изменить точку, на которую указывает конечная точка:

//existing setup
TM 
  east-us-x-endpoint -> eus-x-com.azurewebsites.net
  west-us-x-endpoint -> wus-x-com.azurewebsites.net

//proposed setup
TM 
  east-us-x-endpoint -> x-com.azurewebsites.net      //edit it to point to the new x-com
                                            //delete the west US one

Я сделал это и отредактировал конечную точку, чтобы настроить таргетинг на другую службу приложений. Хотя портал сообщает, что изменение было внесено, есть проблемы:

  • диспетчер трафика определенно по-прежнему отправляет трафик в старую службу приложений, потому что сайт работает, даже если в новой службе приложений еще нет кода
  • остановка старой службы приложения eus-x-com.azurewebsites.net (которая больше не настроена ни в одной конечной точке TM) приводит к тому, что веб-сайт перестает работать с HTTP 503

Все могло бы обойтись, если бы я еще не удалил запад нас. Хотя это не идеально, потому что это было медленнее (база данных в восточной части США), я, вероятно, мог бы удалить eus-x-com из TM и позволить wus-x-com взять на себя нагрузку, затем добавить x-com (который находится в EUS) в TM и сделать его приоритетом 1, он бы получил пользовательский домен, все в порядке .. за исключением того, что больше нет настройки западного нас. Возможно, мне придется добавить это обратно

Я сейчас застрял; Мне в основном нужны две службы приложений в одном регионе с разными тарифными планами, чтобы какое-то время иметь один и тот же пользовательский домен, чтобы я мог переключить DNS, а затем отключить один из них. Или мне нужен другой способ настроить новую службу приложений, чтобы она была готова принимать трафик, чтобы весь трафик начал идти к ней, а затем удалить старую настройку

Какие шаги я могу предпринять, чтобы запустить новую службу приложений, предоставить ей собственный домен, а затем переключить DNS, чтобы весь трафик шел на новый сайт без простоев?


person Caius Jard    schedule 03.03.2020    source источник


Ответы (1)


Насколько мне известно, DNS-имя диспетчера трафика или службы приложений глобально уникально. Мы не можем использовать один и тот же личный домен для двух разных служб приложений. Прочтите ICANN.

Таким образом, вам по-прежнему нужен балансировщик нагрузки для маршрутизации входящего трафика верхнего уровня DNS для служб ваших серверных приложений, если вы хотите использовать тот же пользовательский домен. Я также не думаю, что вы можете переключить DNS для служб приложений в Azure без диспетчера трафика. Если вы хотите перенаправить трафик на службы приложений в том же регионе, вы можете использовать вложенные профили диспетчера трафика. Прочтите этот ответ подробнее.

person Nancy Xiong    schedule 04.03.2020
comment
Согласитесь с первой частью - имена DNS всех этих служб глобально уникальны: x-com, eus-x-com, wus-x-com, но пользовательские домены, назначенные службам приложений, не уникальны. Для работы в сценарии диспетчера трафика все службы приложений в TM должны иметь один и тот же пользовательский домен x.com. Пользовательский домен - это просто заголовок / привязка хоста в старых терминах IIS. При желании у вас могут быть сотни веб-сайтов в сотнях IIS с одной и той же привязкой. Это то, что я хочу сейчас; два веб-сайта в разных тарифных планах (которые я принял за разные IIS) в одном регионе имеют одинаковый заголовок / привязку хоста - person Caius Jard; 04.03.2020
comment
Вы добавляете один и тот же личный домен в две разные службы приложений, как это? docs.microsoft.com/en-us/azure/app-service/ Я имею в виду вкладку custom domain службы приложений Azure. - person Nancy Xiong; 04.03.2020
comment
Я уверен, что это сделал, и здесь возникают проблемы: вы не можете добавить один и тот же пользовательский домен к двум разным службам приложений. Но если вы добавите эту службу приложений в диспетчер трафика, TM добавит одни и те же пользовательские домены к двум различным службам приложений для вас - ›Следовательно, абсолютно возможно иметь две службы приложений с одним и тем же пользовательским доменом, но только TM может настроить их. Но вы не можете добавить в TM две разные службы приложений, если они находятся в одном регионе Azure. - person Caius Jard; 04.03.2020
comment
Обратите внимание: когда я говорю «личный домен», это не имеет никакого отношения к DNS. Я имею в виду вкладку пользовательских доменов службы приложений Azure. Процесс добавления личного домена подтвердил, что DNS настроен правильно, путем проверки наличия записей CNAME или TXT, подтверждающих право собственности на домен, но это не проблема. Портал Azure, налагающий неправильные ограничения, упомянутые в приведенном выше комментарии, является проблемой. - person Caius Jard; 04.03.2020
comment
Вы пробуете вложенный профиль TM, если хотите добавить службы приложений в том же регионе? - person Nancy Xiong; 04.03.2020
comment
Я попробовал, но это не совсем работает. Чтобы вложить профиль, нам нужно дать вложенной конечной точке имя, отличное от имени родительской конечной точки TM с именем x-com, поэтому я назвал ее nested-x-com. Службы приложений, которые затем добавляются в качестве дочерних к этому гнезду, страдают от двух проблем с пользовательскими доменами: 1) для проверки запись DNS для желаемого имени хоста x.com должна быть либо cname x-com.azurewebsites.net, либо nested-x-com.trafficmanager.net, а x.com в настоящее время является CNAME для x-com.trafficmanager.net. Вероятно, я мог бы заставить его проверить, используя маршрут awverify, но также ... - person Caius Jard; 04.03.2020
comment
... затем мы столкнулись с проблемой 2), которая заключается в том, что пользовательский интерфейс portal.azure.com все еще жалуется на то, что пользовательский домен x.com уже используется на сайте eastus-x-com.azurewebsites.net - это не предъявляет этой жалобы при добавлении пользовательских доменов на сайты, которые являются одноранговыми, но, похоже, не распознает, что служба приложения внутри вложенной конечной точки связана со службами приложений, которые находятся на конечных точках диспетчера трафика верхнего уровня - person Caius Jard; 04.03.2020
comment
Как я уже сказал We can not have the same custom domain to use for two different app services., я не думаю, что сейчас возможно удовлетворить все ваши требования с помощью TM в Azure. - person Nancy Xiong; 05.03.2020
comment
В этом случае я попытаюсь сделать запрос в службу поддержки и заставить их принудительно ввести домен в - person Caius Jard; 05.03.2020
comment
Это хорошо, любой процесс, связанный с вашим вопросом, пожалуйста, поделитесь им. - person Nancy Xiong; 05.03.2020