Кратко:
- Создавайте ресурсы в разных зонах доступности для высокой отказоустойчивости.
- Размещайте одинаковое количество облачных ресурсов в каждой зоне доступности.
- Создавайте облачные ресурсы с запасом для предотвращения выхода из строя ВМ.
- Используйте разные балансировщики для разных приложений для эффективного управления нагрузкой.
- Организуйте двухуровневую архитектуру с балансировщиками на четвертом и седьмом уровнях OSI.
- Используйте балансировщики седьмого уровня, такие как веб-сервер NGINX, для более сложной работы с IP-пакетами.
- Перенаправляйте трафик на работающие ВМ при сбое виртуальных машин.
Как правильно использовать балансировщики
Чтобы построить эффективную инфраструктуру с высокой отказоустойчивостью:
- Создавайте ресурсы в разных зонах доступности
Размещайте копии виртуальных машин (ВМ) в нескольких зонах доступности. Так приложения останутся доступны, даже если одна из зон выйдет из строя.
В каждой зоне доступности разместите одинаковое количество облачных ресурсов. Если вru-central1-a
находится три ВМ — поместите по три ВМ и вru-central1-b
, и вru-central1-d
. - Создавайте облачные ресурсы с запасом
Если одна ВМ в зоне доступности выйдет из строя, трафик продолжит поступать в зону в том же объёме, а нагрузка на оставшиеся машины увеличится. Чтобы все ВМ не вышли из строя — помимо ресурсов, необходимых для обслуживания расчётной нагрузки, добавьте в каждой зоне дополнительные вычислительные ресурсы (vCPU, RAM). - Используйте разные балансировщики для разных приложений
Если вы разворачиваете в Yandex Compute Cloud несколько приложений — настройте для их обслуживания отдельные балансировщики. Это поможет эффективнее управлять нагрузкой. - Организуйте два уровня балансировщиков
Балансировщики Yandex Cloud работают с протоколами TCP и UDP — так называемыми транспортными протоколами или протоколами четвёртого уровня сетевой модели OSI. Они называются так потому, что предназначены для обеспечения надёжной передачи данных от отправителя к получателю. Кроме того, бывают балансировщики протоколов седьмого уровня — на этом уровне работает, например, протокол HTTP.
Поскольку балансировщики седьмого уровня, например веб-сервер NGINX, выполняют более сложную работу с IP-пакетами (сборка, анализ, журналирование), они выиграют от предварительного распределения нагрузки на четвертом уровне, особенно при DDoS-атаках.
Организуйте двухуровневую архитектуру с балансировщиками на четвертом (транспортном) уровне OSI и седьмом уровне приложения (например HTTP). Балансировщик четвертого уровня будет принимать трафик и передавать его целевой группе балансировщиков седьмого уровня, а те распределят трафик по ВМ с приложениями. В качестве балансировщиков седьмого уровня вы можете использовать ВМ, на которые установили ПО для балансировки (например NGINX).
👉 Поздравляем, вы завершили тему «Балансировка нагрузки»!
В этой теме вы познакомились с инструментом балансировки сетевой нагрузки и научились настраивать проверку состояния виртуальных машин, чтобы при сбое своевременно перенаправлять трафик на работающие ВМ. В следующей теме вы узнаете, как настраивать группы виртуальных машин, чтобы масштабировать инфраструктуру при резком росте посещаемости вашего веб-сайта или сервиса.