0Pricing
Azure Fundamentals · Урок

Основы Azure DNS и балансировщика нагрузки

Управляйте разрешением доменных имен внутри Azure с помощью частных зон Azure DNS и распределяйте входящий трафик между серверными пулами VM с помощью Azure Load Balancer.

«Основы Azure DNS и балансировщика нагрузки» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.

DNS в Azure: основы

DNS (система доменных имён) преобразует понятные человеку доменные имена (например, api.mycompany.com) в IP-адреса, которые компьютеры используют для обмена данными. Azure предоставляет две службы DNS: Azure DNS для размещения общедоступных зон DNS (доменов, доступных из интернета) и Azure Private DNS для внутреннего разрешения имён внутри виртуальных сетей. Без правильной настройки DNS на ресурсы Azure приходится ссылаться по IP-адресам, из-за чего архитектуры становятся хрупкими: любое изменение IP-адреса нарушает все зависимые конфигурации. Azure DNS — это высокодоступная, глобально распределённая служба, работающая на основе anycast-сети Microsoft.

Общедоступные зоны Azure DNS

Общедоступные зоны Azure DNS размещают записи DNS для доменов, доступных из интернета. Вы делегируете свой домен (зарегистрированный у регистратора, например GoDaddy) Azure DNS, изменяя записи NS домена так, чтобы они указывали на серверы имён Azure. После делегирования вы управляете всеми записями DNS (A, CNAME, MX, TXT и т. д.) на портале Azure или через CLI вместо отдельного поставщика DNS. Общедоступные зоны Azure DNS обеспечивают 100%-ное время доступности по SLA, глобальное распространение изменений менее чем за секунду и доступ с контролем RBAC, поэтому изменять записи DNS могут только авторизованные участники команды.

# Create a DNS zone and add an A record
az network dns zone create \
  --resource-group myRG \
  --name mycompany.com

az network dns record-set a add-record \
  --resource-group myRG \
  --zone-name mycompany.com \
  --record-set-name www \
  --ipv4-address 20.10.20.30

Частные зоны Azure DNS

Частные зоны Azure DNS обеспечивают разрешение имён для ресурсов внутри виртуальных сетей, не публикуя записи DNS. Например, можно создать частную зону myapp.internal и зарегистрировать в ней виртуальные машины, чтобы к ним можно было обращаться по имени (db.myapp.internal), а не по IP-адресу. Частные зоны DNS связываются с виртуальными сетями — разрешать частные записи могут только ресурсы связанных виртуальных сетей. Также можно включить автоматическую регистрацию, при которой записи DNS для виртуальных машин создаются автоматически при их подключении к виртуальной сети. Это позволяет поддерживать DNS в актуальном состоянии без ручного управления.

# Create a private DNS zone and link it to a VNet
az network private-dns zone create \
  --resource-group myRG \
  --name myapp.internal

az network private-dns link vnet create \
  --resource-group myRG \
  --zone-name myapp.internal \
  --name myVNetLink \
  --virtual-network myVNet \
  --registration-enabled true

Частный DNS для служб Azure

Для Private Endpoint (например, для Azure SQL, Blob Storage и Key Vault) требуется, чтобы DNS разрешал общедоступное имя узла службы в частный IP-адрес, а не в общедоступный. Azure предоставляет частные зоны DNS для каждой службы (например, privatelink.blob.core.windows.net для Blob Storage). При создании Private Endpoint Azure создаёт в этой частной зоне запись DNS A, указывающую на частный IP-адрес. Свяжите эту зону с виртуальной сетью, и все запросы DNS для URL учётной записи Storage будут автоматически разрешаться в частный IP-адрес — трафик будет направляться через частную магистральную сеть без изменений кода приложения.

Что такое Azure Load Balancer?

Azure Load Balancer распределяет входящий сетевой трафик между несколькими внутренними ресурсами (виртуальными машинами или экземплярами в наборе масштабирования), чтобы ни один ресурс не оказался перегружен. Он работает на уровне 4 (транспортном уровне) модели OSI: маршрутизирует пакеты TCP и UDP на основе IP-адресов и портов источника и назначения, не анализируя содержимое HTTP. Azure Load Balancer — это высокодоступная служба с избыточностью по зонам и SLA 99,99% (SKU Standard), которая поддерживает как балансировку входящего трафика (из интернета или виртуальной сети), так и исходящий SNAT для выхода виртуальных машин в интернет.

Компоненты Load Balancer

Azure Load Balancer состоит из четырёх основных компонентов: конфигурация внешнего IP-адреса — общедоступный или частный IP-адрес, к которому подключаются клиенты; внутренний пул — набор виртуальных машин или экземпляров набора масштабирования, получающих трафик; правила балансировки нагрузки — сопоставляют внешний IP-адрес и порт с внутренним портом и задают алгоритм распределения нагрузки (по умолчанию хеширование по 5 кортежам); проверки работоспособности — периодически проверяют каждый внутренний экземпляр; экземпляры, не прошедшие проверку, перестают получать новые подключения до восстановления. Вместе эти компоненты определяют, как трафик принимается, проверяется и распределяется.

# Create a Standard Load Balancer with a public IP
az network lb create \
  --resource-group myRG \
  --name myLoadBalancer \
  --sku Standard \
  --public-ip-address myPublicIP \
  --frontend-ip-name myFrontend \
  --backend-pool-name myBackendPool

Проверки работоспособности

Проверки работоспособности — это периодические запросы, которые Load Balancer отправляет каждому внутреннему экземпляру, чтобы определить, исправен ли он и должен ли получать трафик. Вы настраиваете протокол проверки (HTTP, HTTPS или TCP), порт и интервал. Для проверок HTTP/HTTPS Load Balancer отправляет запрос GET по указанному пути URL — экземпляр считается исправным, если возвращает HTTP 200. Для проверок TCP успешное TCP-соединение означает, что экземпляр исправен. Если внутренний ресурс не проходит заданное число последовательных проверок, Load Balancer перестаёт отправлять ему новые подключения, пока он снова не начнёт проходить проверки. Это обеспечивает автоматическую отказоустойчивость без ручного вмешательства.

Базовый и Standard Load Balancer

Azure Load Balancer доступен в двух SKU: базовый — бесплатный, поддерживает до 300 внутренних экземпляров, не имеет SLA и поддержки зон доступности, а также не требует защищённых по умолчанию NSG; Standard — платный (около 20 долларов в месяц за базовую конфигурацию), поддерживает до 1 000 внутренних экземпляров, SLA 99,99%, внешний интерфейс с избыточностью по зонам, защищён по умолчанию (для разрешения трафика требуются явные правила NSG) и поддерживает несколько внешних IP-адресов. Для любой рабочей нагрузки в рабочей среде настоятельно рекомендуется SKU Standard. Microsoft прекращает поддержку SKU Basic — в новых развертываниях всегда следует использовать Standard.

Внутренний и внешний Load Balancer

Azure Load Balancer можно развернуть в двух конфигурациях: общедоступный (внешний) Load Balancer — имеет общедоступный IP-адрес во внешнем интерфейсе и распределяет интернет-трафик между внутренними виртуальными машинами. Он используется для приложений, доступных из интернета, например веб-серверов и шлюзов API. внутренний (частный) Load Balancer — имеет частный IP-адрес во внешнем интерфейсе внутри виртуальной сети и распределяет трафик внутри виртуальной сети. Он используется в многоуровневых приложениях, где Load Balancer уровня приложения не должен быть доступен из интернета, а только из веб-уровня в той же виртуальной сети. Можно развернуть оба варианта одновременно: общедоступный LB для веб-уровня и внутренний LB для уровня приложения.

Azure: балансировщик нагрузки и шлюз приложений

Azure предлагает два основных сервиса балансировки нагрузки для разных сценариев: Azure Load Balancer — уровень 4, TCP/UDP, сверхнизкая задержка, обработка миллионов подключений в секунду. Лучше всего подходит для рабочих нагрузок, не использующих HTTP, или когда приоритетом являются максимальная пропускная способность и минимальная задержка. Application Gateway — уровень 7, HTTP/HTTPS, распознаёт пути URL и заголовки, включает брандмауэр веб-приложений (WAF), завершение SSL-соединений, привязку сеансов на основе файлов cookie и маршрутизацию по URL. Лучше всего подходит для веб-приложений, которым необходимы балансировка нагрузки с учётом содержимого, вынос обработки TLS и защита WAF. Для простой балансировки нагрузки TCP используйте Load Balancer. Для веб-приложений Application Gateway предоставляет существенные преимущества.

DNS и балансировщик нагрузки вместе

DNS и балансировщик нагрузки работают вместе, создавая отказоустойчивые и удобные для пользователей конечные точки. Распространённый сценарий: 1) создайте Azure Load Balancer со стандартным общедоступным IP-адресом и внутренним пулом виртуальных машин веб-серверов. 2) создайте запись CNAME в Azure DNS, указывающую www.mycompany.com на общедоступный IP-адрес балансировщика нагрузки (или его DNS-имя). 3) когда пользователи посещают www.mycompany.com, DNS разрешает это имя в IP-адрес балансировщика нагрузки, а балансировщик распределяет запросы между работоспособными экземплярами виртуальных машин. Это обеспечивает удобный URL, автоматическое распределение трафика и отказоустойчивость.

Быстрая проверка

Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.

Итоги урока

В этом уроке Вы узнали, что Azure DNS размещает общедоступные и частные зоны DNS с доступностью, близкой к 100 %, обеспечивая понятные человеку имена для ресурсов Azure, частные зоны DNS с автоматической регистрацией поддерживают записи DNS VNet в актуальном состоянии без ручного управления, а Azure Load Balancer распределяет трафик TCP/UDP уровня 4 между работоспособными внутренними экземплярами виртуальных машин, используя проверки работоспособности для автоматического обнаружения неисправных экземпляров и исключения их из распределения. Далее мы перейдём к курсу по базам данных Azure, начав с Azure SQL Database.

Часто задаваемые вопросы

Урок «Основы Azure DNS и балансировщика нагрузки» бесплатный?

Да — полный текст урока «Основы Azure DNS и балансировщика нагрузки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Основы Azure DNS и балансировщика нагрузки»?

Управляйте разрешением доменных имен внутри Azure с помощью частных зон Azure DNS и распределяйте входящий трафик между серверными пулами VM с помощью Azure Load Balancer. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Azure Fundamentals?

Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Основы Azure DNS и балансировщика нагрузки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Azure Fundamentals?

Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Виртуальные сети и подсети
  2. Группы сетевой безопасности и группы безопасности приложений
  3. Пиринг виртуальных сетей и конечные точки служб
  4. Основы Azure DNS и балансировщика нагрузки
← Назад к Azure Fundamentals