Стремясь снизить затраты на 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, чтобы весь трафик шел на новый сайт без простоев?