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

C помощью Azure Load Balancer можно масштабировать приложения и обеспечивать высокий уровень доступности служб.With Azure Load Balancer, you can scale your applications and create high availability for your services. Load Balancer поддерживает входящие и исходящие сценарии, обеспечивает низкую задержку и высокую пропускную способность, а также увеличение масштаба до миллионов потоков для всех приложений, которые используют протоколы TCP и UDP.Load Balancer supports inbound and outbound scenarios, provides low latency and high throughput, and scales up to millions of flows for all TCP and UDP applications.

Балансировщик нагрузки распределяет новые входящие потоки, поступающие на внешний интерфейс подсистемы балансировки нагрузки, в экземпляры серверных пулов в соответствии с правилами и проверками работоспособности.Load Balancer distributes new inbound flows that arrive on the Load Balancer's frontend to backend pool instances, according to rules and health probes.

Кроме того, общедоступный балансировщик нагрузки может предоставить исходящие подключения для виртуальных машин в рамках виртуальной сети путем преобразования их частных IP-адресов в общедоступные IP-адреса.Additionally, a public Load Balancer can provide outbound connections for virtual machines (VMs) inside your virtual network by translating their private IP addresses to public IP addresses.

Доступны два номера SKU Azure Load Balancer: ценовых категорий "Базовый" и "Стандартный".Azure Load Balancer is available in two SKUs: Basic and Standard. В них есть различия по масштабу, возможностям и цене.There are differences in scale, features, and pricing. Любой сценарий, который можно выполнить в рамках Load Balancer уровня "Базовый", также можно создать с помощью Load Balancer уровня "Стандартный", хотя подход может несколько отличаться.Any scenario that's possible with Basic Load Balancer can also be created with Standard Load Balancer, although the approaches might differ slightly. По мере получения дополнительных сведений о Load Balancer, необходимо ознакомиться с основами и различиями в SKU.As you learn about Load Balancer, it is important to familiarize yourself with the fundamentals and SKU-specific differences.

Преимущества Load BalancerWhy use Load Balancer?

Azure Load Balancer можно использовать для следующих целей:You can use Azure Load Balancer to:

  • Балансировка нагрузки входящего интернет-трафика виртуальных машин.Load-balance incoming internet traffic to your VMs. Такая конфигурация называется общедоступным балансировщиком нагрузки.This configuration is known as a Public Load Balancer.
  • Балансировка нагрузки трафика между виртуальными машинами внутри виртуальной сети.Load-balance traffic across VMs inside a virtual network. Кроме того, можно подключиться к внешнему интерфейсу балансировщика нагрузки из локальной сети в гибридном сценарии.You can also reach a Load Balancer front end from an on-premises network in a hybrid scenario. В обоих сценариях используется конфигурация, известная как внутренняя подсистема балансировки нагрузки.Both scenarios use a configuration that is known as an Internal Load Balancer.
  • Перенаправление трафика на определенный порт в определенных виртуальных машинах с правилами преобразования входящих сетевых адресов (NAT).Port forward traffic to a specific port on specific VMs with inbound network address translation (NAT) rules.
  • Обеспечение исходящего подключения для виртуальных машин в виртуальной сети путем использования общедоступной подсистемы балансировки нагрузки.Provide outbound connectivity for VMs inside your virtual network by using a public Load Balancer.

Примечание

Azure предоставляет набор полностью управляемых решений балансировки нагрузки для пользовательских сценариев.Azure provides a suite of fully managed load-balancing solutions for your scenarios. Если вам необходима обработка подключений по протоколу TLS (разгрузка SSL) или обработка прикладного уровня HTTP- или HTTPS-запросов, ознакомьтесь со статьей Обзор шлюза приложений.If you are looking for Transport Layer Security (TLS) protocol termination ("SSL offload") or per-HTTP/HTTPS request, application-layer processing, review Application Gateway. Если вам нужна глобальная балансировка нагрузки DNS, ознакомьтесь со статьей о диспетчере трафика.If you are looking for global DNS load balancing, review Traffic Manager. В комплексных сценариях может быть целесообразно объединить эти решения.Your end-to-end scenarios might benefit from combining these solutions as needed.

Ресурсы подсистемы балансировки нагрузкиWhat are Load Balancer resources?

Ресурс Load Balancer может существовать как общедоступный или внутренний Load Balancer.A Load Balancer resource can exist as either a public Load Balancer or an internal Load Balancer. Функции ресурса подсистемы балансировки нагрузки выражаются в виде внешнего интерфейса, правила, проверки работоспособности и определения внутреннего пула.The Load Balancer resource's functions are expressed as a front end, a rule, a health probe, and a backend pool definition. Поместите виртуальные машины в серверный пул, указав серверный пул из виртуальной машины.You place VMs into the backend pool by specifying the backend pool from the VM.

Ресурсы подсистемы балансировки нагрузки представляют собой объекты, в которых можно выразить, как служба Azure должна запрограммировать свою мультитенантную инфраструктуру, чтобы получить сценарий, который необходимо создать.Load Balancer resources are objects within which you can express how Azure should program its multi-tenant infrastructure to achieve the scenario that you want to create. Между ресурсами подсистемы балансировки нагрузки и фактической инфраструктурой нет прямой связи.There is no direct relationship between Load Balancer resources and actual infrastructure. Создание подсистемы балансировки нагрузки не приводит к созданию экземпляра, а емкость доступна всегда.Creating a Load Balancer doesn't create an instance, and capacity is always available.

Основные функции Load BalancerFundamental Load Balancer features

Load Balancer предоставляет следующие основные возможности для приложений TCP и UDP:Load Balancer provides the following fundamental capabilities for TCP and UDP applications:

  • Балансировка нагрузкиLoad balancing

    С помощью Azure Load Balancer можно создать правило балансировки нагрузки, чтобы распределять входящий трафик внешнего интерфейса между экземплярами внутреннего пула.With Azure Load Balancer, you can create a load-balancing rule to distribute traffic that arrives at frontend to backend pool instances. Load Balancer использует алгоритм на основе хэша для распределения входящих потоков и соответствующим образом перезапишет заголовки потоков экземпляров внутреннего пула.Load Balancer uses a hash-based algorithm for distribution of inbound flows and rewrites the headers of flows to backend pool instances accordingly. Сервер может получать новые потоки, когда в результате проверки работоспособности получается работоспособная серверная конечная точка.A server is available to receive new flows when a health probe indicates a healthy backend endpoint.

    По умолчанию для сопоставления трафика с доступными серверами Load Balancer использует хэш с 5 кортежами (исходный IP-адрес, порт источника, IP-адрес назначения, порт назначения и тип протокола).By default, Load Balancer uses a 5-tuple hash composed of source IP address, source port, destination IP address, destination port, and IP protocol number to map flows to available servers. Вы можете создать сходство с определенным исходным IP-адресом путем включения 2- или 3-кортежного хэша для данного правила.You can choose to create affinity to a specific source IP address by opting into a 2- or 3-tuple hash for a given rule. Все пакеты из одного потока пакетов поступают на один и тот же экземпляр за внешним интерфейсом с балансировкой нагрузки.All packets of the same packet flow arrive on the same instance behind the load-balanced front end. Когда клиент инициирует новый поток из того же исходного IP-адреса, исходный порт изменяется.When the client initiates a new flow from the same source IP, the source port changes. В результате использование 5 кортежей может привести к тому, что трафик перейдет к другой конечной точке сервера.As a result, the 5-tuple might cause the traffic to go to a different backend endpoint.

    Дополнительные сведения см. в статье Настройка режима распределения для Azure Load Balancer.For more information, see Load Balancer distribution mode. На представленном ниже рисунке показано распределение на основе хэша.The following image displays the hash-based distribution:

    Распространение на основе хэша

    Рисунок. Распространение на основе хэшаFigure: Hash-based distribution

  • Перенаправление портовPort forwarding

    С помощью Load Balancer можно создать правило преобразования сетевых адресов для входящих подключений для перенаправления трафика из определенного порта определенного IP-адреса внешнего интерфейса на определенный порт определенного серверного экземпляра в виртуальной сети.With Load Balancer, you can create an inbound NAT rule to port forward traffic from a specific port of a specific frontend IP address to a specific port of a specific backend instance inside the virtual network. Кроме того, это также достигается за счет того же распространения на основе хэша, что и при балансировке нагрузки.This is also accomplished by the same hash-based distribution as load balancing. Распространенными сценариями этой возможности являются сеансы протокола удаленного рабочего стола или Secure Shell для отдельных экземпляров виртуальной машины в виртуальной сети Azure.Common scenarios for this capability are Remote Desktop Protocol (RDP) or Secure Shell (SSH) sessions to individual VM instances inside the Azure Virtual Network. Несколько внутренних конечных точек можно сопоставить с различными портами в том же интерфейсном IP-адресе.You can map multiple internal endpoints to the various ports on the same frontend IP address. Внешние IP-адреса можно использовать для удаленного администрирования виртуальных машин через Интернет без дополнительных переходов.You can use the frontend IP addresses to remotely administer your VMs over the internet without the need for an additional jump box.

  • Независимые и прозрачные приложенияApplication agnostic and transparent

    Load Balancer напрямую не взаимодействует с TCP, UDP или со слоем приложения, поэтому можно реализовать поддержку любого сценария приложения.Load Balancer does not directly interact with TCP or UDP or the application layer, and any TCP or UDP application scenario can be supported. Load Balancer не завершает и не создает потоки, не взаимодействует с полезными данными потока, не предоставляет функции шлюза на уровне приложения, а подтверждения протоколов всегда происходят непосредственно между клиентом и экземпляром внутреннего пула.Load Balancer does not terminate or originate flows, interact with the payload of the flow, provides no application layer gateway function, and protocol handshakes always occur directly between the client and the backend pool instance. Ответом на входящий поток всегда является ответ от виртуальной машины.A response to an inbound flow is always a response from a virtual machine. Когда поток поступает в виртуальную машину, исходный IP-адрес источника также сохраняется.When the flow arrives on the virtual machine, the original source IP address is also preserved. Рассмотрим несколько примеров, которые более подробно иллюстрируют прозрачность:A couple of examples to further illustrate transparency:

    • На каждый запрос конечной точки поступает ответ только от виртуальной машины.Every endpoint is only answered by a VM. Например, подтверждение TCP всегда возникает между клиентом и выбранной серверной виртуальной машиной.For example, a TCP handshake always occurs between the client and the selected backend VM. Ответ на запрос к внешнему интерфейсу — это ответ, созданный серверной виртуальной машиной.A response to a request to a front end is a response generated by backend VM. При успешной проверке связи с внешним интерфейсом вы проверяете сквозное соединение по крайней мере с одной серверной виртуальной машиной.When you successfully validate connectivity to a frontend, you are validating the end to end connectivity to at least one backend virtual machine.
    • Полезные данные приложений прозрачны для Load Balancer, и поддерживается любое приложение UDP или TCP.Application payloads are transparent to Load Balancer and any UDP or TCP application can be supported. Для рабочих нагрузок, которые требуют обработку полезных данных на уровне приложения (например, синтаксический анализ URL-адресов HTTP) для HTTP-запроса, следует использовать подсистему балансировки нагрузки уровня 7, например, шлюз приложений.For workloads which require per HTTP request processing or manipulation of application layer payloads (for example, parsing of HTTP URLs), you should use a layer 7 load balancer like Application Gateway.
    • Так как Load Balancer не зависит от полезных данных TCP и разгрузка TLS ("SSL") не предоставляется, вы можете создать комплексные зашифрованные сценарии, в которых используется Load Balancer, и обеспечить увеличение масштаба приложений TLS путем завершения подключений TLS на виртуальной машине.Because Load Balancer is agnostic to the TCP payload and TLS offload ("SSL") is not provided, you can build end to end encrypted scenarios using Load Balancer and gain large scale-out for TLS applications by terminating the TLS connection on the VM itself. Например, емкости ключей в сеансах TLS ограничиваются только типом и числом виртуальных машин, добавленных в серверный пул.For example, your TLS session keying capacity is only limited by the type and number of VMs you add to the backend pool. Если требуется выполнить разгрузку SSL, обработку на уровне приложения или делегировать управление сертификатами Azure, следует использовать подсистему балансировки нагрузки уровня 7 Azure в виде шлюза приложений.If you require "SSL offloading", application layer treatment, or wish to delegate certificate management to Azure, you should use Azure's layer 7 load balancer Application Gateway instead.
  • Автоматическая перенастройкаAutomatic reconfiguration

    Load Balancer мгновенно перенастраивает сам себя при горизонтальном и вертикальном масштабировании экземпляров.Load Balancer instantly reconfigures itself when you scale instances up or down. Добавление или удаление виртуальных машин из серверного пула перенастраивает подсистему балансировки нагрузки без дополнительных операций в ресурсе подсистемы балансировки нагрузки.Adding or removing VMs from the backend pool reconfigures the Load Balancer without additional operations on the Load Balancer resource.

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

    Load Balancer использует заданные проверки работоспособности, чтобы определить работоспособность экземпляров в серверном пуле.To determine the health of instances in the backend pool, Load Balancer uses health probes that you define. Если проверка не отвечает, балансировщик нагрузки Azure прекращает отправлять новое подключение неработоспособным экземплярам.When a probe fails to respond, the Load Balancer stops sending new connections to the unhealthy instances. Имеющиеся подключения не затрагиваются и будут работать, пока приложение не завершит работу потока, не истечет время ожидания перед переходом в режим простоя или работа виртуальной машины не завершится.Existing connections are not affected, and they continue until the application terminates the flow, an idle timeout occurs, or the VM is shut down.

    Load Balancer предоставляет разные типы проверки работоспособности для конечных точек TCP, HTTP и HTTPS.Load Balancer provides different health probe types for TCP, HTTP, and HTTPS endpoints.

    Кроме того, при использовании классических облачных служб допускается еще один тип: гостевой агент.Additionally, when using Classic cloud services, an additional type is allowed: Guest agent. Его следует рассматривать как проверку работоспособности на крайний случай и не рекомендуется использовать, если другие варианты также являются приемлемыми.This should be considered to be a health probe of last resort and is not recommended when other options are viable.

  • Исходящие подключения (SNAT) .Outbound connections (SNAT)

    Все исходящие потоки из частных IP-адресов в виртуальной сети к общедоступным IP-адресам в Интернете можно преобразовать во внешние IP-адреса подсистемы балансировки нагрузки.All outbound flows from private IP addresses inside your virtual network to public IP addresses on the internet can be translated to a frontend IP address of the Load Balancer. Если общедоступный внешний интерфейс привязан к серверной виртуальной машине с помощью правила балансировки нагрузки, Azure настраивает автоматическое преобразование исходящих подключений в общедоступный интерфейсный IP-адрес.When a public front end is tied to a backend VM by way of a load balancing rule, Azure programs outbound connections to be automatically translated to the public frontend IP address.

    • Упрощение обновления и аварийного восстановления служб, так как внешний интерфейс можно динамически сопоставить с другим экземпляром службы.Enable easy upgrade and disaster recovery of services, because the front end can be dynamically mapped to another instance of the service.

    • Упрощение управления списком управления доступом (ACL).Easier access control list (ACL) management to. С точки зрения интерфейсных IP-адресов списки управления доступом не меняются при масштабировании или повторном развертывании служб.ACLs expressed in terms of frontend IPs do not change as services scale up or down or get redeployed. Преобразование исходящих подключений для получения меньшего числа IP-адресов, чем количество компьютеров, может упростить ведение списка разрешений.Translating outbound connections to a smaller number of IP addresses than machines can reduce the burden of whitelisting.

      Дополнительные сведения см. в статье об исходящих подключениях.For more information, see outbound connections.

Load Balancer уровня "Стандартный" имеет дополнительные возможности, связанные со SKU, которые не относятся к этим принципам.Standard Load Balancer has additional SKU-specific capabilities beyond these fundamentals. Ознакомьтесь со сведениями, приведенными в остальной части этой статьи.Review the remainder of this article for details.

Сравнение SKU Load BalancerLoad Balancer SKU comparison

Load Balancer поддерживает SKU уровня "Базовый" и "Стандартный", которые отличаются в возможностях масштабирования, функциях и ценах.Load Balancer supports both Basic and Standard SKUs, each differing in scenario scale, features, and pricing. Любой сценарий, который можно выполнить в рамках Load Balancer уровня "Базовый", также можно создать с помощью Load Balancer уровня "Стандартный".Any scenario that's possible with Basic Load Balancer can be created with Standard Load Balancer as well. На самом деле API обоих SKU аналогичны и вызываются через спецификацию SKU.In fact, the APIs for both SKUs are similar and invoked through the specification of a SKU. API для поддержки SKU Load Balancer и общедоступного IP-адреса доступны, начиная с API 2017-08-01.The API for supporting SKUs for Load Balancer and the public IP is available starting with the 2017-08-01 API. Оба SKU имеют один общий API и структуру.Both SKUs have the same general API and structure.

Однако, в зависимости от того, какой SKU выбран, полный сценарий конфигурации может несколько отличаться.However, depending on which SKU you choose, the complete scenario configuration might differ slightly. Документация Load Balancer вызывается, когда статья применима только к определенному SKU.Load Balancer documentation calls out when an article applies only to a specific SKU. Ознакомьтесь со следующей таблицей, чтобы сравнить сведения и понять различия.To compare and understand the differences, see the following table. Дополнительные сведения см. в статье Обзор Azure Load Balancer уровня "Стандартный".For more information, see Standard Load Balancer overview.

Примечание

В новых проектах рекомендуем использовать Load Balancer (ценовая категория "Стандартный").New designs should adopt Standard Load Balancer.

Изолированные виртуальные машины, наборы доступности и масштабируемые наборы виртуальных машин можно подключить только к одному SKU, но никогда к обоим.Standalone VMs, availability sets, and virtual machine scale sets can be connected to only one SKU, never both. При использовании общедоступных IP-адресов номера SKU Load Balancer и IP-адреса должны совпадать.When you use them with public IP addresses, both Load Balancer and the public IP address SKU must match. SKU Load Balancer и общедоступные IP-адреса неизменяемы.Load Balancer and public IP SKUs are not mutable.

Рекомендуется явно указать SKU, даже если это необязательно.It is a best practice to specify the SKUs explicitly, even though it is not yet mandatory. В настоящее время требуемые изменения сведены к минимуму.At this time, required changes are being kept to a minimum. Если SKU не указан, это интерпретируется как намерение использовать SKU "Базовый" в версии API 2017-08-01.If a SKU is not specified, it is interpreted as an intention to use the 2017-08-01 API version of the Basic SKU.

Важно!

Load Balancer уровня "Стандартный" — новый продукт в серии Load Balancer, который во многом подобен супермножеству Load Balancer уровня "Базовый".Standard Load Balancer is a new Load Balancer product and largely a superset of Basic Load Balancer. Между двумя продуктами есть значительные и намеренные различия.There are important and deliberate differences between the two products. Любой комплексный сценарий, который можно выполнить в рамках Load Balancer уровня "Базовый", также можно создать с помощью Load Balancer уровня "Стандартный".Any end-to-end scenario that's possible with Basic Load Balancer can also be created with Standard Load Balancer. Если вы уже используете Load Balancer уровня "Базовый", следует ознакомиться с Load Balancer уровня "Стандартный", чтобы понять критические изменения в поведении между этими уровнями и их влиянием.If you're already used to Basic Load Balancer, you should familiarize yourself with Standard Load Balancer to understand the latest changes in behavior between Standard and Basic and their impact. Внимательно просмотрите этот раздел.Review this section carefully.

SKU "Стандартный"Standard SKU SKU "Базовый"Basic SKU
Размер серверного пулаBackend pool size Поддерживается до 1000 экземпляров.Supports up to 1000 instances. Поддерживается до 100 экземпляров.Supports up to 100 instances.
Конечные точки серверного пулаBackend pool endpoints Любая виртуальная машина в одной виртуальной сети, включая комбинацию виртуальных машин, групп доступности и масштабируемых наборов виртуальных машин.Any virtual machine in a single virtual network, including blend of virtual machines, availability sets, virtual machine scale sets. Виртуальные машины в одной группе доступности или масштабируемом наборе виртуальных машин.Virtual machines in a single availability set or virtual machine scale set.
Проверки работоспособностиHealth probes TCP, HTTP, HTTPSTCP, HTTP, HTTPS TCP, HTTPTCP, HTTP
Реакция на сбой проверки работоспособностиHealth probe down behavior TCP-подключения остаются активными при сбое проверки экземпляра и сбое всех проверок.TCP connections stay alive on instance probe down and on all probes down. TCP-подключения остаются активными при сбое проверки экземпляра.TCP connections stay alive on instance probe down. Все подключения TCP завершаются при сбое всех проверок.All TCP connections terminate on all probes are down.
зоны доступности;Availability Zones В рамках номера SKU (цен. категория "Стандартный") избыточные в пределах зоны и зональных внешних интерфейсов для входящего и исходящего трафика сопоставления потоков исходящего трафика сохраняются при сбоях зоны, межзональной балансировки нагрузки.In Standard SKU, zone-redundant and zonal frontends for inbound and outbound, outbound flows mappings survive zone failure, cross-zone load balancing. Недоступен.Not available.
ДиагностикаDiagnostics Azure Monitor, многомерные метрики, включающие счетчики пакетов и байтов, состояние проверки работоспособности, попытки подключения (TCP SYN), работоспособность исходящего подключения (успешные и завершившиеся со сбоем потоки SNAT), активные измерения в плоскости данных.Azure Monitor, multi-dimensional metrics including byte and packet counters, health probe status, connection attempts (TCP SYN), outbound connection health (SNAT successful and failed flows), active data plane measurements Azure Log Analytics только для общедоступной подсистемы балансировки нагрузки, оповещение о нехватке SNAT, счетчик работоспособности серверного пула.Azure Log Analytics for public Load Balancer only, SNAT exhaustion alert, backend pool health count.
Порты HAHA Ports Внутренний балансировщик нагрузкиInternal Load Balancer Недоступен.Not available.
Обеспечение безопасности по умолчаниюSecure by default Входящий трафик для общедоступных IP-адресов и конечных точек Load Balancer (общедоступных и внутренних) запрещен, если они не указаны в списке разрешений группы безопасности сети.Public IP, public Load Balancer endpoints, internal Load Balancer endpoints are closed to inbound flows unless whitelisted by a network security group. Открыто по умолчанию, группа безопасности сети необязательна.Open by default, network security group optional.
Исходящие подключенияOutbound connections Вы можете явно определить NAT для исходящего трафика на основе пула, используя правила для исходящего трафика.You can explicitly define pool-based outbound NAT with outbound rules. Можно использовать несколько внешних интерфейсов с условиями для каждого правила балансировки нагрузки. Чтобы виртуальная машина, группа доступности или масштабируемый набор виртуальных машин могли использовать исходящие подключения, необходимо явно создать сценарий для исходящих подключений.You can use multiple frontends with per load balancing rule opt-out. An outbound scenario must be explicitly created for the virtual machine, availability set, virtual machine scale set to use outbound connectivity. К конечным точкам служб для виртуальной сети можно получить доступ без определения исходящего подключения, и они не считаются обработанными данными.Virtual Network Service Endpoints can be reached without defining outbound connectivity and don't count towards data processed. Любые общедоступные IP-адреса, включая службы Azure PaaS, недоступные в качестве конечных точек службы виртуальной сети, должны быть доступны посредством исходящего подключения и учитываются как обработанные данные.Any public IP addresses, including Azure PaaS services not available as VNet Service Endpoints, must be reached via outbound connectivity and count towards data processed. Когда виртуальную машину, группу доступности или масштабируемый набор виртуальных машин обслуживает только внутренний экземпляр Load Balancer, исходящие подключения через SNAT по умолчанию недоступны. Вместо этого используйте правила для исходящего трафика.When only an internal Load Balancer is serving a virtual machine, availability set, or virtual machine scale set, outbound connections via default SNAT aren't available; use outbound rules instead. Программирование исходящих SNAT-подключений осуществляется для конкретного транспортного протокола из правила балансировки нагрузки входящего трафика.Outbound SNAT programming is transport protocol specific based on protocol of the inbound load balancing rule. Один внешний интерфейс, который выбирается случайно при наличии нескольких внешних интерфейсов.Single frontend, selected at random when multiple frontends are present. Когда виртуальную машину, группу доступности или масштабируемый набор виртуальных машин обслуживает только внутренний экземпляр Load Balancer, используется SNAT по умолчанию.When only internal Load Balancer is serving a virtual machine, availability set, or virtual machine scale set, default SNAT is used.
Правила для исходящего трафикаOutbound Rules Декларативная конфигурация NAT для исходящего трафика, использование общедоступных IP-адресов и (или) префиксов IP-адресов, настраиваемое для исходящего трафика время ожидания (4—120 минут) перед переходом в режим простоя и выделение пользовательского порта SNAT.Declarative outbound NAT configuration, using public IP addresses or public IP prefixes or both, configurable outbound idle timeout (4-120 minutes), custom SNAT port allocation Недоступен.Not available.
Сброс подключений TCP в режиме простояTCP Reset on Idle Включение сброса подключений TCP при истечении времени ожидания простоя на основе любого правилаEnable TCP Reset (TCP RST) on Idle Timeout on any rule НедоступноNot available
Несколько внешних интерфейсовMultiple frontends Входящий и исходящий.Inbound and outbound Только входящийInbound only
Операции управленияManagement Operations Большинство операций длятся менее 30 секундMost operations < 30 seconds Обычно 60–90 и более секунд.60-90+ seconds typical.
Соглашение об уровне обслуживанияSLA 99,99 % для пути данных с двумя работоспособными виртуальными машинами.99.99% for data path with two healthy virtual machines. Не применяетсяNot applicable.
ЦеныPricing Плата взимается с учетом числа правил, обработанных входящих и исходящих данных, связанных с ресурсом.Charged based on number of rules, data processed inbound and outbound associated with resource. Бесплатно.No charge.

Дополнительные сведения см. в статье об ограничениях службы для Load Balancer.For more information, see service limits for Load Balancer. Для Load Balancer уровня "Стандартный" см. общие сведения, а также сведения о ценах и Соглашении об уровне обслуживания.For Standard Load Balancer details, see overview, pricing, and SLA.

Основные понятияConcepts

Общедоступный Load BalancerPublic Load Balancer

Общедоступная подсистема балансировки нагрузки сопоставляет общедоступный IP-адрес и номер порта для входящего трафика с частным IP-адресом и номером порта виртуальной машины и наоборот для ответного трафика из виртуальной машины.A public Load Balancer maps the public IP address and port number of incoming traffic to the private IP address and port number of the VM, and vice versa for the response traffic from the VM. Применяя правила балансировки нагрузки, можно распределять определенные типы трафика между несколькими различными виртуальными машинами или службами.By applying load-balancing rules, you can distribute specific types of traffic across multiple VMs or services. Например, можно распределить нагрузку от трафика веб-запросов на несколько веб-серверов.For example, you can spread the load of web request traffic across multiple web servers.

На следующем рисунке показана конечная точка с балансировкой нагрузки для веб-трафика, которая является общей для трех виртуальных машин на общедоступном TCP-порту 80.The following figure shows a load-balanced endpoint for web traffic that is shared among three VMs for the public and TCP port 80. Эти три виртуальные машины находятся в наборе балансировки нагрузки.These three VMs are in a load-balanced set.

Пример общедоступной подсистемы балансировки нагрузки

Рисунок. Балансировка нагрузки веб-трафика с помощью общедоступной подсистемы балансировки нагрузкиFigure: Load balancing web traffic by using a public Load Balancer

Когда интернет-клиенты отправляют запросы к веб-страницам на общедоступный IP-адрес веб-приложения в TCP-порт 80, Azure Load Balancer распределяет эти запросы между тремя виртуальными машинами в наборе балансировки нагрузки.When internet clients send webpage requests to the public IP address of a web app on TCP port 80, Azure Load Balancer distributes the requests across the three VMs in the load-balanced set. Дополнительные сведения об алгоритме балансировщика нагрузки см. в разделе о функциях балансировщика нагрузки этой статьи.For more information about Load Balancer algorithms, see the Load Balancer features section of this article.

По умолчанию Azure Load Balancer распределяет сетевой трафик между несколькими экземплярами виртуальных машин.By default, Azure Load Balancer distributes network traffic equally among multiple VM instances. Кроме того, можно настроить сходство сеансов.You can also configure session affinity. Дополнительные сведения см. в статье Настройка режима распределения для Azure Load Balancer.For more information, see Load Balancer distribution mode.

Внутренний Load BalancerInternal Load Balancer

Внутренняя подсистема балансировки нагрузки направляет трафик к тем ресурсам, которые находятся внутри виртуальной сети или используют VPN для доступа к инфраструктуре Azure.An internal Load Balancer directs traffic only to resources that are inside a virtual network or that use a VPN to access Azure infrastructure. В этом отношении внутренняя подсистема балансировки нагрузки отличается от общедоступной.In this respect, an internal Load Balancer differs from a public Load Balancer. Инфраструктура Azure ограничивает доступ к интерфейсным IP-адресам (с балансировкой нагрузки) виртуальной сети.Azure infrastructure restricts access to the load-balanced frontend IP addresses of a virtual network. Интерфейсные IP-адреса и виртуальные сети никогда не предоставляются напрямую конечной точке Интернета.Frontend IP addresses and virtual networks are never directly exposed to an internet endpoint. Внутренние бизнес-приложения выполняются в Azure и доступны из Azure или из локальных ресурсов.Internal line-of-business applications run in Azure and are accessed from within Azure or from on-premises resources.

Внутренняя подсистема балансировки нагрузки реализует следующие типы балансировки нагрузки:An internal Load Balancer enables the following types of load balancing:

  • В виртуальной сети: распределение нагрузки между виртуальными машинами в виртуальной сети и набором виртуальных машин, размещенных в той же виртуальной сети.Within a virtual network: Load balancing from VMs in the virtual network to a set of VMs that reside within the same virtual network.
  • Для распределенной виртуальной сети: балансировка нагрузки локальных компьютеров к набору виртуальных машин, размещенных в той же виртуальной сети.For a cross-premises virtual network: Load balancing from on-premises computers to a set of VMs that reside within the same virtual network.
  • Для многоуровневых приложений: балансировка нагрузки для многоуровневых приложений с доступом в Интернет, где серверные уровни не имеют доступа к Интернету.For multi-tier applications: Load balancing for internet-facing multi-tier applications where the backend tiers are not internet-facing. Серверные уровни требуют балансировки нагрузки трафика уровня с выходом в Интернет (см. следующий рисунок).The backend tiers require traffic load-balancing from the internet-facing tier (see the next figure).
  • Для бизнес-приложений: Балансировка нагрузки для бизнес-приложений, размещенных в Azure без дополнительного оборудования или программного обеспечения подсистемы балансировки нагрузки.For line-of-business applications: Load balancing for line-of-business applications that are hosted in Azure without additional load balancer hardware or software. Сценарий включает в себя локальные серверы в наборе компьютеров, чей трафик балансируется.This scenario includes on-premises servers that are in the set of computers whose traffic is load-balanced.

Пример внутренней подсистемы балансировки нагрузки

Рисунок. Балансировка нагрузки многоуровневых приложений с помощью общедоступных и внутренних подсистем балансировки нагрузкиFigure: Load balancing multi-tier applications by using both public and internal Load Balancer

ЦеныPricing

За использование Load Balancer (цен. категория "Стандартный") взимается плата, размер которой зависит от таких факторов:Standard Load Balancer usage is charged.

  • количество настроенных правил балансировки нагрузки и правил для исходящего трафика (правила NAT для входящего трафика не учитываются в общем количестве правил);Number of configured load-balancing and outbound rules (inbound NAT rules do not count against the total number of rules)
  • обработанного объема входящих и исходящих данных независимо от правил.Amount of data processed inbound and outbound irrespective of rule.

Сведения о ценах на Load Balancer уровня "Стандартный" см. на странице цен.For Standard Load Balancer pricing information, go to the Load Balancer pricing page.

Load Balancer уровня "Базовый" предоставляется бесплатно.Basic Load Balancer is offered at no charge.

Соглашение об уровне обслуживанияSLA

Дополнительные сведения о Соглашении об уровне обслуживания Load Balancer уровня "Стандартный" см. на этой странице.For information about the Standard Load Balancer SLA, go to the Load Balancer SLA page.

ОграниченияLimitations

  • Load Balancer — это продукт TCP или UDP для балансировки нагрузки и перенаправления портов для этих протоколов IP.Load Balancer is a TCP or UDP product for load balancing and port forwarding for these specific IP protocols. Правила балансировки нагрузки и правила NAT для входящих подключений поддерживаются для TCP и UDP, но не поддерживаются для других протоколов IP, в том числе ICMP.Load balancing rules and inbound NAT rules are supported for TCP and UDP and not supported for other IP protocols including ICMP. Load Balancer не завершает полезные данные потока UDP или TCP, не отвечает на них и не взаимодействует с ними каким-либо другим способом.Load Balancer does not terminate, respond, or otherwise interact with the payload of a UDP or TCP flow. Это не прокси-сервер.It is not a proxy. Успешная проверка подключения к внешнему интерфейсу должна проходить через канал по тому же протоколу, который используется в правиле балансировки нагрузки или NAT для входящих подключений (TCP или UDP), и по крайней мере одна из ваших виртуальных машин должна генерировать ответ внешнего интерфейса для клиента.Successful validation of connectivity to a frontend must take place in-band with the same protocol used in a load balancing or inbound NAT rule (TCP or UDP) and at least one of your virtual machines must generate a response for a client to see a response from a frontend. Если ответ по каналу от внешнего интерфейса Load Balancer не получен, это означает, что никакие виртуальные машины не могли дать ответ.Not receiving an in-band response from the Load Balancer frontend indicates no virtual machines were able to respond. С внешним интерфейсом Load Balancer невозможно взаимодействовать, если виртуальная машина не может отвечать.It is not possible to interact with a Load Balancer frontend without a virtual machine able to respond. Это также применимо к исходящим подключениям, в которых SNAT с маскировкой портов поддерживается только для TCP и UDP. Использование любых других протоколов IP, включая ICMP, также приведет к сбою.This also applies to outbound connections where port masquerade SNAT is only supported for TCP and UDP; any other IP protocols including ICMP will also fail. Назначьте общедоступный IP-адрес на уровне экземпляра для обхода проблемы.Assign an instance-level Public IP address to mitigate.
  • В отличие от общедоступных Load Balancer, предоставляющих исходящие подключения при переходе с частных IP-адресов виртуальной сети на общедоступные, внутренний Load Balancer не передает исходящие подключения на внешний интерфейс внутреннего Load Balancer, так как они оба расположены в частном диапазоне IP-адресов.Unlike public Load Balancers which provide outbound connections when transitioning from private IP addresses inside the virtual network to public IP addresses, internal Load Balancers do not translate outbound originated connections to the frontend of an internal Load Balancer as both are in private IP address space. Это исключает вероятность возникновения нехватки портов SNAT в рамках уникального диапазона внутренних IP-адресов, в котором не требуется проводить преобразование.This avoids potential for SNAT port exhaustion inside unique internal IP address space where translation is not required. Побочным эффектом является то, что если исходящий поток из виртуальной машины в серверном пуле направляется к внешнему интерфейсу внутреннего балансировщика нагрузки, в пуле которого она находится, и сопоставляется с собой, оба маршрута потока не совпадают и поток не будет передан.The side effect is that if an outbound flow from a VM in the backend pool attempts a flow to frontend of the internal Load Balancer in which pool it resides and is mapped back to itself, both legs of the flow don't match and the flow will fail. Если поток не сопоставляется с той же виртуальной машиной в серверном пуле, которая создала поток к внешнему интерфейсу, поток будет успешно передан.If the flow did not map back to the same VM in the backend pool which created the flow to the frontend, the flow will succeed. Когда поток сопоставляется с собой, получается, что исходящий поток передается из виртуальной машины на внешний интерфейс, а соответствующий входящий поток поступает от виртуальной машины к себе.When the flow maps back to itself the outbound flow appears to originate from the VM to the frontend and the corresponding inbound flow appears to originate from the VM to itself. С точки зрения гостевой ОС входящие и исходящие части того же потока не совпадают в виртуальной машине.From the guest OS's point of view, the inbound and outbound parts of the same flow don't match inside the virtual machine. Стек TCP не будет распознавать эти половины одного потока как часть того же потока, так как источник и получатель не совпадают.The TCP stack will not recognize these halves of the same flow as being part of the same flow as the source and destination don't match. При сопоставлении потока с любой другой виртуальной машиной в серверном пуле половины потоков будут соответствовать, и виртуальная машина может успешно реагировать на поток.When the flow maps to any other VM in the backend pool, the halves of the flow will match and the VM can successfully respond to the flow. Симптомом этого сценария является периодическое истечение времени ожидания подключения, когда поток возвращается к той же серверной части, из которой он возник.The symptom for this scenario is intermittent connection timeouts when the flow returns to the same backend which originated the flow. Имеется несколько общих обходных решений для надежной реализации этого сценария (отправка исходящих потоков из серверного пула в серверные пулы, соответствующие внешнему интерфейсу внутреннего Load Balancer), которые включают либо размещение прокси-уровня за внутренним Load Balancer, либо использование правил стиля DSR.There are several common workarounds for reliably achieving this scenario (originating flows from a backend pool to the backend pools respective internal Load Balancer frontend) which include either insertion of a proxy layer behind the internal Load Balancer or using DSR style rules. Клиенты могут объединить внутренний Load Balancer со сторонним прокси-сервером или заменить внутренний шлюз приложений для сценариев прокси-сервера, ограниченных протоколами HTTP и HTTPS.Customers can combine an internal Load Balancer with any 3rd party proxy or substitute internal Application Gateway for proxy scenarios limited to HTTP/HTTPS. Хотя вы можете использовать общедоступный Load Balancer в качестве обходного решения, полученный сценарий подвержен исчерпанию SNAT и без тщательного управления его следует избегать.While you could use a public Load Balancer to mitigate, the resulting scenario is prone to SNAT exhaustion and should be avoided unless carefully managed.
  • Обычно переадресация IP-фрагментов или выполнение фрагментации IP-адресов для UDP- и TCP-пакетов не поддерживается в правилах балансировки нагрузки.In general, forwarding IP fragments or performing IP fragmentation of UDP and TCP packets are not supported on load balancing rules. Правила балансировки нагрузки для портов с высоким уровнем доступности являются исключением для этого общего случая и могут использоваться для переадресации существующих IP-фрагментов.HA Ports load balancing rules are an exception to this general statement and can be used to forward existing IP fragments.

Дополнительная информацияNext steps

Вы ознакомились с общими сведениями об Azure Load Balancer.You now have an overview of Azure Load Balancer. Чтобы приступить к работе с подсистемой балансировки нагрузки, создайте ее, создайте виртуальные машины с установленным пользовательским расширением IIS и распределяйте нагрузку веб-приложения между виртуальными машинами.To get started with using a Load Balancer, create one, create VMs with a custom IIS extension installed, and load-balance the web app between the VMs. Дополнительные сведения см. в кратком руководстве по созданию общедоступной подсистемы балансировки нагрузки уровня "Базовый" с помощью портала Azure.To learn how, see the Create a Basic Load Balancer quickstart.