Отказоустойчивый сайт с балансировкой нагрузки через Yandex Network Load Balancer с помощью консоли управления
Чтобы создать отказоустойчивый сайт с балансировкой нагрузки через Yandex Network Load Balancer с помощью консоли управления Yandex Cloud:
- Подготовьте облако к работе.
- Создайте группу ВМ.
- Загрузите файлы веб-сайта.
- Создайте сетевой балансировщик.
- Протестируйте отказоустойчивость.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки веб-сайта входит:
- плата за диски и постоянно запущенные ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамичесих или статических внешних IP-адресов (см. тарифы Yandex Virtual Private Cloud);
- плата за сетевой балансировщик и балансировку трафика (см. тарифы Network Load Balancer).
Подготовьте окружение
- Создайте облачную сеть с именем
nlb-network
и подсети. - Создайте сервисный аккаунт с именем
nlb-sa
и назначьте ему рольeditor
. - Создайте пару ключей SSH.
Создайте группу ВМ
-
В консоли управления
выберите сервис Compute Cloud. -
На панели слева выберите
Группы виртуальных машин и нажмите кнопку Создать группу виртуальных машин. -
В блоке Базовые параметры:
- Укажите имя группы ВМ, например
nlb-vm-group
. - Выберите сервисный аккаунт
nlb-sa
.
- Укажите имя группы ВМ, например
-
В блоке Распределение выберите зоны доступности
ru-central1-a
иru-central1-b
, чтобы обеспечить отказоустойчивость хостинга. -
В блоке Шаблон виртуальной машины нажмите кнопку Задать и укажите конфигурацию базовой ВМ:
-
В блоке Образ загрузочного диска откройте вкладку Marketplace и нажмите кнопку Показать все продукты Marketplace. Выберите продукт:
Нажмите кнопку Использовать.
-
В блоке Диски и файловые хранилища укажите:
- Тип —
HDD
. - Размер —
3 ГБ
.
- Тип —
-
В блоке Вычислительные ресурсы откройте вкладку Своя конфигурация и укажите:
- Платформа —
Intel Ice Lake
. - vCPU —
2
. - Гарантированная доля vCPU —
20%
. - RAM —
1 ГБ
.
- Платформа —
-
В блоке Сетевые настройки:
- Выберите облачную сеть
nlb-network
и ее подсети. - В поле Публичный адрес выберите
Автоматически
.
- Выберите облачную сеть
-
В блоке Доступ укажите данные для доступа на ВМ:
- В поле Сервисный аккаунт выберите сервисный аккаунт для привязки к ВМ.
- В поле Логин укажите имя пользователя.
- В поле SSH-ключ вставьте содержимое файла открытого ключа.
-
Нажмите кнопку Сохранить.
-
-
В блоке Масштабирование укажите размер группы ВМ —
2
. -
В блоке Интеграция с Network Load Balancer выберите опцию Создать целевую группу и укажите имя группы:
nlb-tg
. -
Нажмите кнопку Создать.
Создание группы ВМ может занять несколько минут. Когда все ВМ перейдут в статус RUNNING
, вы можете загрузить на них файлы веб-сайта.
Загрузите файлы веб-сайта
Чтобы проверить работу веб-сервера, необходимо загрузить файлы сайта на каждую ВМ. Для примера вы можете использовать файл index.html
из архива
Для каждой ВМ в созданной группе выполните следующее:
-
Узнайте публичный IP-адрес нужной ВМ.
-
Подключитесь к ВМ по протоколу SSH.
-
Выдайте права на запись для вашего пользователя на директорию
/var/www/html
:sudo chown -R "$USER":www-data /var/www/html
-
Загрузите на ВМ файлы веб-сайта с помощью протокола SCP
.Linux/macOSWindowsИспользуйте утилиту командной строки
scp
:scp -r <путь_до_директории_с_файлами> <имя_пользователя_ВМ>@<IP-адрес_ВМ>:/var/www/html
С помощью программы WinSCP
скопируйте локальную директорию с файлами в директорию/var/www/html
на ВМ.
Создайте сетевой балансировщик
При создании сетевого балансировщика нужно добавить обработчик, на котором балансировщик будет принимать трафик, подключить целевую группу, созданную вместе с группой ВМ, и настроить в ней проверку состояния ресурсов.
-
В консоли управления
выберите каталог, где требуется создать балансировщик. -
В списке сервисов выберите Network Load Balancer и нажмите кнопку Создать сетевой балансировщик.
-
Укажите имя балансировщика, например
nlb-1
. -
В блоке Обработчики:
-
Нажмите кнопку Добавить обработчик и укажите параметры:
- Имя —
nlb-listener
. - Порт —
80
. - Целевой порт —
80
.
- Имя —
-
Нажмите кнопку Добавить.
-
-
В блоке Целевые группы:
-
Нажмите кнопку Добавить целевую группу и выберите созданную ранее целевую группу
nlb-tg
. Если группа одна, она будет выбрана автоматически. -
В блоке Проверка состояния нажмите кнопку Настроить и укажите:
- Имя —
health-check-1
. - Порог работоспособности — количество успешных проверок, после которого ВМ будет считаться готовой к приему трафика:
5
. - Порог неработоспособности — количество проваленных проверок, после которого на ВМ перестанет подаваться трафик:
5
.
- Имя —
-
Нажмите кнопку Применить.
-
-
Нажмите кнопку Создать.
После создания сетевого балансировщика, протестируйте отказоустойчивость.
Протестируйте отказоустойчивость
-
Узнайте публичный IP-адрес любой ВМ из созданной группы.
-
Подключитесь к ВМ по протоколу SSH.
-
Остановите веб-сервис, чтобы сымитировать сбой в работе веб-сервера:
LAMPLEMPsudo service apache2 stop
sudo service nginx stop
-
Узнайте IP-адрес обработчика.
-
Откройте сайт в браузере, используя адрес обработчика.
Несмотря на сбой в работе одного из веб-серверов, подключение должно пройти успешно.
-
После завершения проверки снова запустите веб-сервис:
LAMPLEMPsudo service apache2 start
sudo service nginx start
Как удалить созданные ресурсы
Чтобы остановить работу хостинга и перестать платить за созданные ресурсы:
- Удалите сетевой балансировщик.
- Удалите группу ВМ.
- Удалите статический публичный IP-адрес, если вы его зарезервировали.