Высокая доступность

Высокая доступность

Elastic Load Balancing автоматически распределяет трафик по нескольким целевым объектам – инстансам Amazon EC2, контейнерам или IP-адресам – в одной или нескольких зонах доступности.

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

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

Elastic Load Balancing может обнаруживать неработоспособные целевые объекты, прекращать отправку трафика на них, а затем распределять нагрузку между оставшимися работоспособными целевыми объектами.

Возможности обеспечения безопасности

Возможности обеспечения безопасности

Используйте Amazon Virtual Private Cloud (Amazon VPC) для создания групп безопасности, связанных с балансировщиками нагрузки, и управления ими, чтобы обеспечить дополнительные варианты использования сетевой конфигурации и настройки безопасности. Можно также создать внутренний (без выхода в Интернет) балансировщик нагрузки.

Терминация TLS

Терминация TLS

Elastic Load Balancing предоставляет интегрированную систему управления сертификатами и SSL-шифрованием, которая обеспечивает гибкое централизованное управление настройками SSL и освобождение приложений от нагрузки, связанной с интенсивным использованием ресурсов ЦПУ.

Балансировка нагрузки на уровне 4 или уровне 7

Балансировка нагрузки на уровне 4 или уровне 7

Балансировку нагрузки приложений, работающих по протоколам HTTP/HTTPS, можно осуществлять с помощью особых возможностей уровня 7. Для приложений, которые полагаются исключительно на протокол TCP, можно выбрать балансировку нагрузки только на уровне 4.

Мониторинг в процессе работы

Мониторинг в процессе работы

Elastic Load Balancing обеспечивает интеграцию с метриками Amazon CloudWatch и отслеживание запросов для мониторинга производительности приложений в режиме реального времени.

Выбирать балансировщик нагрузки следует в зависимости от потребностей приложения. Если требуется гибкое управление приложениями, рекомендуется использовать Application Load Balancer. Если для приложения требуется очень высокая производительность и статический IP-адрес, рекомендуется использовать Network Load Balancer. Для существующих приложений, созданных в сети EC2-Classic, следует использовать Classic Load Balancer.

Возможность

Application Load Balancer

Network Load Balancer

Classic Load Balancer

Протоколы

HTTP, HTTPS

TCP

TCP, SSL, HTTP, HTTPS

Платформы

VPC

VPC

EC2-Classic, VPC

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

Метрики CloudWatch

Ведение журналов

Обработка отказа в одной зоне доступности

Освобождение подключения (задержка дерегистрации)

Балансировка нагрузки на нескольких портах в одном инстансе

 

WebSockets

 

IP-адреса как целевые объекты
 

Защита от удаления балансировщика нагрузки

 

Маршрутизация на основе пути

 

 

Маршрутизация на основе хоста

 

 

Встроенная поддержка HTTP/2

 

 

Настраиваемый тайм-аут неактивного соединения
 

Балансировка нагрузки между зонами доступности

 

Разгрузка SSL-подключения

 

Server Name Indication (SNI)    

Закрепленные сеансы

 

Шифрование внутреннего сервера

 

Статический IP

 

 

Эластичный IP-адрес

 

 

Сохранение IP-адреса источника

 

 

  • Application Load Balancer

    Application Load Balancer работает на уровне запросов (уровень 7), маршрутизируя трафик на целевые объекты – инстансы EC2, контейнеры и IP-адреса – на основе содержимого запроса. Application Load Balancer идеально подходит для расширенной балансировки нагрузки HTTP и HTTPS-трафика. Он обеспечивает расширенную маршрутизацию запросов, ориентированную на доставку приложений, построенных на базе современных архитектур, включая микросервисы и приложения на основе контейнеров. Application Load Balancer упрощает настройку и повышает безопасность приложения, гарантируя, что всегда используются самые новые версии шифров и протоколов SSL/TLS.

    Балансировка нагрузки на уровне 7
    Имеется возможность осуществлять балансировку нагрузки приложений, использующих протокол HTTP/HTTPS, и использовать особые возможности уровня 7, такие как заголовки X-Forwarded-For.

    Поддержка HTTPS
    Application Load Balancer поддерживает использование HTTPS-терминации между клиентами и балансировщиком нагрузки. Application Load Balancer также позволяет управлять SSL-сертификатами с помощью AWS Identity and Access Management (IAM) и AWS Certificate Manager для предустановленных политик безопасности.

    Server Name Indication (SNI)
    Server Name Indication (SNI) – это расширение протокола TLS, с помощью которого клиент обозначает имя узла для подключения в начале установления связи по протоколу TLS. Балансировщик нагрузки может передавать через один и тот же обработчик событий безопасности несколько сертификатов, благодаря чему он способен поддерживать несколько защищенных веб-сайтов через один обработчик событий безопасности. Балансировщики нагрузки приложений также поддерживают интеллектуальный алгоритм выбора сертификатов при работе с SNI. Если имя узла, обозначенное клиентом, соответствует нескольким сертификатам, балансировщик нагрузки определяет наилучший сертификат на основании ряда факторов, в том числе учитывая возможности клиента.

    IP-адреса как цели
    Применять балансировку нагрузки можно для любого приложения, размещенного в AWS или локально, если использовать в качестве целей IP-адреса серверной части приложения. Это позволяет обеспечить балансировку нагрузки на сервер приложения, размещенный на любом IP-адресе и в любом интерфейсе инстанса. Каждое приложение, размещенное на том же инстансе, может относиться к своей группе безопасности и использовать один и тот же порт. Можно также использовать IP-адреса в качестве целей для приложений с балансировкой нагрузки, размещенных локально (через подключение с помощью Direct Connect или VPN-соединения), в VPC с пиринговым подключением или на инстансах EC2-Classic (с использованием ClassicLink). Возможность балансировки нагрузки между AWS и локальными ресурсами упрощает миграцию в облако, расширение ресурсов в облако или использование облака для обеспечения отказоустойчивости.

    Высокая доступность
    Для Application Load Balancer необходимо указать более одной зоны доступности. Можно распределять входящий трафик по объектам в нескольких зонах доступности. Application Load Balancer автоматически масштабирует ресурсы, необходимые для обработки запросов, реагируя на входящий трафик приложений.

    Возможности обеспечения безопасности
    При использовании облака Amazon Virtual Private Cloud (Amazon VPC) можно создать группы безопасности, связанные с Elastic Load Balancing, и управлять ими, чтобы обеспечить дополнительные варианты использования сетевой конфигурации и настройки безопасности. Можно настроить Application Load Balancer для работы с выходом в Интернет или создать балансировщик нагрузки без публичного IP-адреса для работы в качестве внутреннего балансировщика нагрузки (без выхода в Интернет).

    Маршрутизация на основе контента
    Если приложение состоит из нескольких отдельных сервисов, Application Load Balancer может направлять запрос в определенный сервис на основе содержания запроса.

            Маршрутизация на основе узла
            Можно выполнять маршрутизацию запросов клиента в зависимости от поля Host HTTP-заголовка – это позволяет из одного и того же балансировщика нагрузки осуществлять маршрутизацию в несколько доменов.

            Маршрутизация на основе пути
            Можно выполнять маршрутизацию запросов на основе URL-адреса заголовка HTTP.

    Поддержка приложений на основе контейнеров
    Application Load Balancer обеспечивает расширенную поддержку контейнеров путем балансировки нагрузки между несколькими портами в одном инстансе Amazon EC2. Глубокая интеграция с Amazon EC2 Container Service (ECS) обеспечивает полностью управляемое контейнерное предложение. ECS позволяет в определении задания ECS указать динамический порт, в этом случае контейнеру, запланированному для инстанса EC2, будет передан неиспользуемый порт. Планировщик ECS автоматически добавляет задание в балансировщик нагрузки, используя этот порт.

    Поддержка HTTP/2
    HTTP/2 – это новая версия протокола передачи гипертекста (HTTP), который использует единое мультиплексное соединение, позволяющее обеспечить отправку нескольких запросов по одному соединению. Он также осуществляет сжатие данных заголовка перед его отправкой в двоичном формате, а также поддерживает установку TLS-соединения с клиентами.

    Поддержка WebSocket
    WebSocket позволяет серверу в режиме реального времени обмениваться сообщениями с конечными пользователями без необходимости конечных пользователей запрашивать (или опрашивать) этот сервер на наличие обновлений. Протокол WebSocket обеспечивает двунаправленные каналы связи между клиентом и сервером в установленном длительное время TCP-соединении.

    Встроенная поддержка протокола IPv6
    Application Load Balancer поддерживает работу по интернет-протоколу версии 6 (IPv6) в облаке VPC. Это позволяет клиентам подключаться к Application Load Balancer по протоколам IPv4 или IPv6.

    Закрепленные сеансы
    Закрепленные сеансы – это механизм маршрутизации запросов из одного и того же клиента к одному и тому же получателю. Application Load Balancer поддерживает закрепленные сеансы с помощью файлов cookie, сгенерированных балансировщиком нагрузки. Если включить закрепленные сеансы, то тот же получатель будет получать запрос и сможет использовать файлы cookie для восстановления контекста сеанса. Закрепленность определяется на уровне целевой группы.

    Проверки работоспособности
    Application Load Balancer направляет трафик только к работоспособным объектам. С помощью Application Load Balancer можно двумя способами добиться оптимального представления о работоспособности своих приложений. 1) Путем расширенной проверки работоспособности, которая позволяет настроить подробные коды ошибок с 200 по 499. Проверка работоспособности позволяет следить за состоянием каждого из сервисов под управлением балансировщика нагрузки. 2) С помощью новых метрик, которые дают представление о трафике для каждого из сервисов, работающих на инстансе EC2.

    Мониторинг в процессе работы
    В отчетах Amazon CloudWatch присутствует информация о таких метриках Application Load Balancer, как количество запросов, количество ошибок, тип ошибок и время задержки.

    Ведение журналов
    Можно использовать возможность ведения журналов доступа для записи всех запросов, отправленных балансировщику нагрузки, и сохранять файлы журналов в Amazon S3 для последующего анализа. Файлы журналов сжаты и имеют расширение .gzip. Сжатые файлы журналов экономят дисковое пространство и пропускную способность при передаче данных и могут использоваться для диагностики сбоев приложений и анализа сетевого трафика.

    Можно также использовать AWS CloudTrail для записи вызовов API Application Load Balancer в аккаунте и доставки файлов журналов. История вызовов API позволяет выполнять анализ безопасности, отслеживать изменения ресурсов и аудит соответствия.

    Защита от удаления
    Можно включить для Application Load Balancer защиту от удаления, чтобы предотвратить возможность его случайного удаления.

    Отслеживание запросов
    Application Load Balancer вставляет новый пользовательский идентификатор «X-Amzn-Trace-Id» HTTP-заголовка для всех запросов, поступающих в балансировщик нагрузки. Возможность отслеживания запросов позволяет отслеживать запрос по его уникальному ID, поскольку запрос проходит свой путь через различные сервисы, которые являются составляющими ваших веб-сайтов и распределенных приложений. Уникальный идентификатор отслеживания можно использовать для того, чтобы выявить любые проблемы с производительностью или синхронизацией в стеке приложения с детализацией на уровне отдельного запроса.

    Web Application Firewall
    Теперь можно использовать AWS WAF для защиты интернет-приложений на своих балансировщиках Application Load Balancer. AWS WAF – это брандмауэр для интернет-приложений, который позволяет защитить их от распространенных сетевых эксплойтов, способных повлиять на доступность приложения, создать угрозу безопасности или задействовать чрезмерное количество ресурсов.

  • Network Load Balancer

    Network Load Balancer работает на уровне подключения (уровень 4), он маршрутизирует подключения к целевым объектам – инстансам Amazon EC2, контейнерам и IP-адресам – на основе данных IP-протокола. Network Load Balancer идеально подходит для балансировки нагрузки трафика TCP, он способен обрабатывать миллионы запросов в секунду при обеспечении сверхнизких задержек. Network Load Balancer оптимизирован для обработки резких и внезапных изменений трафика, при этом на каждую зону доступности используется один статический IP-адрес. Сервис интегрирован с другими востребованными сервисами AWS, такими как Auto Scaling, Amazon EC2 Container Service (ECS) и Amazon CloudFormation.

    Балансировка нагрузки на основе подключений
    Можно балансировать нагрузку трафика TCP путем маршрутизации подключений к целевым объектам – инстансам Amazon EC2, микросервисам и контейнерам, а также IP-адресам.

    Высокая доступность
    Network Load Balancer обеспечивает высокую доступность. Он принимает входящий трафик от клиентов и распределяет этот трафик по целевым объектам в пределах одной и той же зоны доступности. Балансировщик нагрузки также контролирует работоспособность своих зарегистрированных целевых объектов и гарантирует, что он направляет трафик только на работоспособные целевые объекты. Когда балансировщик нагрузки обнаруживает неработоспособный целевой объект, он прекращает маршрутизацию на этот целевой объект и перенаправляет трафик на оставшиеся работоспособные целевые объекты. Если в зоне доступности нет ни одного работоспособного целевого объекта, но при этом есть целевые объекты в других зонах доступности, Network Load Balancer выполнит автоматическую обработку отказа и перенаправит трафик на работоспособные целевые объекты в других зонах доступности.

    Высокая пропускная способность
    Network Load Balancer предназначен для обработки трафика по мере его роста и может балансировать нагрузку объемом в миллионы запросов в секунду. Он также способен обрабатывать резко и внезапно меняющийся трафик.

    Низкая задержка
    Network Load Balancer обеспечивает чрезвычайно низкую задержку и хорошо подходит для приложений, чувствительных к задержкам.

    Сохранение IP-адреса источника
    Network Load Balancer сохраняет IP-адрес источника на стороне клиента, позволяя серверу видеть IP-адрес клиента. Этот IP-адрес может затем использоваться приложениями для дальнейшей обработки.

    Поддержка статического IP-адреса
    Network Load Balancer автоматически предоставляет статический IP-адрес для зоны доступности (подсети), который может использоваться приложениями в качестве IP-адреса внешнего интерфейса балансировщика нагрузки.

    Поддержка эластичных IP-адресов
    Network Load Balancer также позволяет назначать эластичный IP-адрес для зоны доступности (подсети), тем самым предоставляя клиенту собственный фиксированный IP-адрес.

    Проверки работоспособности
    Network Load Balancer поддерживает проверку работоспособности целевых объектов как для сети, так и для приложений. Работоспособность на уровне сети определяется по общей реакции целевого объекта на обычный трафик. Если целевой объект не реагирует на новые соединения или реагирует слишком медленно, балансировщик нагрузки помечает целевой объект как недоступный. Проверки работоспособности на уровне приложений также могут использоваться для получения более подробной информации. Периодически опрашивая определенный URL-адрес данного целевого объекта, можно сделать обобщенный вывод о фактической работоспособности приложения. Быстрая диагностика и высокоэффективная отладка обеспечиваются полностью наглядным представлением проверок работоспособности. Причины выявленной в результате проверок неработоспособности также доступны как «коды причин» в API Network Load Balancer и через метрики Amazon CloudWatch, связанные с проверками работоспособности целевых объектов.

    Обработка отказа DNS
    Если в Network Load Balancer не зарегистрированы работоспособные целевые объекты или если узлы Network Load Balancer в данной зоне неработоспособны, Amazon Route 53 будет направлять трафик на узлы балансировки нагрузки в других зонах доступности.

    Интеграция с Amazon Route 53
    В случае отказа Network Load Balancer интеграция с Route 53 обеспечит удаление недоступных IP-адресов балансировщика нагрузки и перенаправит запросы на альтернативный балансировщик нагрузки в другом регионе.

    Интеграция с сервисами AWS
    Network Load Balancer интегрирован с другими сервисами AWS, такими как Auto Scaling, Amazon EC2 Container Service (ECS), AWS CloudFormation, AWS CodeDeploy и AWS Config.

    Долговременные TCP-подключения
    Network Load Balancer поддерживает долговременные TCP-подключения, которые идеально подходят для приложений типа WebSocket.

    Централизованная поддержка API
    Network Load Balancer использует тот же API, что и Application Load Balancer. Это позволяет работать с целевыми группами, проверками работоспособности и балансировать нагрузку между несколькими портами в одном инстансе Amazon EC2 для поддержки контейнерных приложений.

    Надежный мониторинг и проверка
    Amazon CloudWatch предоставляет метрики Network Load Balancer. CloudWatch предоставляет такие метрики, как Active Flow Count, Healthy Host Count, New Flow Count, Processed Bytes и многие другие. Network Load Balancer интегрирован с AWS CloudTrail. CloudTrail отслеживает вызовы API к Network Load Balancer.

    Расширенное ведение журнала
    Можно использовать возможность Flow Logs для записи всех запросов, отправленных на балансировщик нагрузки. Flow Logs регистрирует информацию об IP-трафике, поступающем на сетевые интерфейсы в VPC и из них. Данные журнала потока сохраняются с помощью Amazon CloudWatch Logs.

    Изолирование по зонам
    Network Load Balancer предназначен для приложений с архитектурой, размещенной в одной зоне. Если в зоне доступности что-то выходит из строя, происходит автоматическая обработка отказа и переход в другие работоспособные зоны доступности. Хотя мы рекомендуем клиентам для достижения высокой доступности настраивать балансировщик нагрузки и целевые объекты в нескольких зонах доступности, Network Load Balancer можно использовать в одной зоне доступности для поддержки архитектур, требующих изолированной работы в зоне.

    Балансировка нагрузки с использованием IP-адресов как целевых объектов
    Применять балансировку нагрузки можно для любого приложения, размещенного в AWS или локально, если использовать в качестве целей IP-адреса серверной части приложения. Это позволяет обеспечить балансировку нагрузки на сервер приложения, размещенный на любом IP-адресе и в любом интерфейсе инстанса. Каждое приложение, размещенное на том же инстансе, может относиться к своей группе безопасности и использовать один и тот же порт. Можно также использовать IP-адреса в качестве целей для балансировки нагрузки на приложения, размещенные локально (через подключение с помощью Direct Connect) и на инстансах EC2-Classic (с использованием ClassicLink). Возможность балансировки нагрузки между AWS и локальными ресурсами упрощает миграцию в облако, расширение ресурсов в облако или использование облака для обеспечения отказоустойчивости.

  • Classic Load Balancer

    Classic Load Balancer обеспечивает базовую балансировку нагрузки между несколькими инстансами Amazon EC2 и работает как на уровне запроса, так и на уровне соединения. Classic Load Balancer предназначен для приложений, которые были созданы в сети EC2-Classic. При использовании Virtual Private Cloud (VPC) рекомендуется использовать Application Load Balancer для уровня 7 и Network Load Balancer для уровня 4.

    Высокая доступность
    Входящий трафик можно распределить между инстансами Amazon EC2 в одной или в нескольких зонах доступности. Classic Load Balancer автоматически масштабирует ресурсы по обработке запросов в ответ на входящий трафик приложений.

    Проверки работоспособности
    Classic Load Balancer следит за состоянием каждого подключенного инстанса Amazon EC2. При обнаружении неисправных инстансов EC2 подача трафика к ним прекращается, при этом нагрузка распределяется между оставшимися рабочими инстансами.

    Возможности обеспечения безопасности
    При использовании Amazon Virtual Private Cloud (VPC) можно создать группы безопасности, связанные с Classic Load Balancing, и управлять ими, чтобы обеспечить дополнительные варианты использования сетевой конфигурации и настройки безопасности. Можно также создать Classic Load Balancer без публичных IP-адресов для работы в качестве внутреннего (без выхода в Интернет) балансировщика нагрузки.

    Разгрузка SSL
    Classic Load Balancer поддерживает терминацию SSL-запросов, включая разгрузку SSL-расшифровки из инстансов приложений, централизованное управление SSL-сертификатами и шифрование серверных инстансов с дополнительной аутентификацией с помощью открытого ключа. Поддержка гибкого шифрования позволяет управлять шифрами и протоколами, которые балансировщик нагрузки представляет клиентам.

    Закрепленные сеансы
    Classic Load Balancer поддерживают возможность закреплять сеансы пользователей за конкретными инстансами Amazon EC2 с помощью файлов cookie. Пока пользователь будет продолжать пользоваться вашим приложением, его трафик будет направляться к одному и тому же инстансу.

    Поддержка IPv6
    Classic Load Balancer поддерживает использование для сетей EC2-Classic интернет-протокола версий 4 и 6 (IPv4 и IPv6).

    Балансировка нагрузки на уровне 4 или уровне 7
    Имеется возможность осуществлять балансировку нагрузки приложений, использующих протокол HTTP/HTTPS, и использовать особые возможности уровня 7, такие как X-Forwarded и закрепленные сеансы. Можно также использовать балансировку нагрузки только на уровне 4 для приложений, которые полагаются исключительно на протокол TCP.

    Мониторинг в процессе работы
    В отчетах Amazon CloudWatch присутствует информация о таких метриках Classic Load Balancer, как число запросов и время задержки.

    Ведение журналов
    Используйте возможность Access Logs для записи всех запросов, отправленных балансировщику нагрузки, и сохраняйте файлы журналов в Amazon S3 для последующего анализа. Журналы могут пригодиться для диагностики сбоев приложения и анализа сетевого трафика. Для записи вызовов API Classic Load Balancer аккаунта и доставки файлов журналов можно использовать AWS CloudTrail. История вызовов API позволяет выполнять анализ безопасности, аудит соответствия, а также отслеживать изменения ресурсов.