Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Анализ поресурсной детализации расходов с помощью Object Storage
      • Настройка отказоустойчивой архитектуры в Yandex Cloud
        • Обзор
        • Консоль управления
        • Terraform
      • Интеграция L7-балансировщика с Cloud CDN и Object Storage
      • Автомасштабирование группы ВМ для обработки сообщений из очереди Message Queue
      • Обновление группы ВМ под нагрузкой
      • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
      • Развертывание отказоустойчивой архитектуры с прерываемыми ВМ
      • Создание триггеров, которые вызывают функции для остановки ВМ и отправки уведомлений в Telegram

В этой статье:

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Создайте группы безопасности
  • Создайте группу ВМ
  • Загрузите файлы сайта
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Настройте DNS
  • Протестируйте отказоустойчивость
  • Как удалить созданные ресурсы
  1. Базовая инфраструктура
  2. Отказоустойчивость и масштабирование
  3. Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
  4. Консоль управления

Отказоустойчивый сайт с балансировкой нагрузки через Yandex Application Load Balancer с помощью консоли управления

Статья создана
Yandex Cloud
Обновлена 29 апреля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Создайте группы безопасности
  • Создайте группу ВМ
  • Загрузите файлы сайта
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Настройте DNS
  • Протестируйте отказоустойчивость
  • Как удалить созданные ресурсы

Чтобы создать инфраструктуру для сайта с балансировкой нагрузки в трех зонах доступности с использованием балансировщика Application Load Balancer c помощью консоли управления Yandex Cloud:

  1. Подготовьте облако к работе.
  2. Создайте облачную сеть.
  3. Создайте группы безопасности.
  4. Создайте группу виртуальных машин.
  5. Загрузите файлы сайта.
  6. Создайте группу бэкендов.
  7. Создайте HTTP-роутер.
  8. Создайте L7-балансировщик.
  9. Настройте DNS.
  10. Протестируйте отказоустойчивость.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры входит:

  • плата за постоянно запущенные ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud);
  • плата за балансировку трафика (см. тарифы Application Load Balancer);
  • плата за публичные DNS-запросы и зоны DNS, если вы используете Yandex Cloud DNS (см. тарифы Cloud DNS).

Создайте облачную сеть

Все ресурсы, созданные в сценарии, будут относиться к одной облачной сети.

Чтобы создать сеть:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.
  2. Нажмите кнопку Создать сеть.
  3. Укажите Имя сети: mysite-network.
  4. В поле Дополнительно выберите опцию Создать подсети.
  5. Нажмите кнопку Создать сеть.

Создайте группы безопасности

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

Чтобы создать группы безопасности для балансировщика и для группы ВМ:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.

  2. На панели слева выберите Группы безопасности.

  3. Создайте группу безопасности для балансировщика:

    1. Нажмите кнопку Создать группу безопасности.

    2. Введите имя группы, например alb-sg.

    3. Выберите сеть, которой будет назначена группа безопасности.

    4. В блоке Правила создайте следующие правила по инструкции под таблицей:

      Направление
      трафика
      Описание Диапазон
      портов
      Протокол Тип источника /
      назначения
      Источник /
      назначение
      Исходящий any Весь Любой CIDR 0.0.0.0/0
      Входящий ext-http 80 TCP CIDR 0.0.0.0/0
      Входящий ext-https 443 TCP CIDR 0.0.0.0/0
      Входящий healthchecks 30080 TCP Проверки состояния балансировщика —
      1. Выберите вкладку Исходящий трафик или Входящий трафик.
      2. Нажмите кнопку Добавить правило.
      3. В открывшемся окне в поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик.
      4. В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.
      5. В поле Назначение или Источник выберите назначение правила:
        • CIDR — правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите CIDR и маски подсетей, в которые или из которых будет поступать трафик. Чтобы добавить несколько CIDR, нажимайте кнопку Добавить CIDR.
        • Группа безопасности — правило будет применено к ВМ из текущей группы или из выбранной группы безопасности.
        • Проверки состояния балансировщика — правило, которое позволяет балансировщику проверять состояние ВМ.
      6. Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.
    5. Нажмите кнопку Сохранить.

  4. Аналогично создайте группу безопасности для группы ВМ с именем alb-vm-sg, той же сетью и следующими правилами:

    Направление
    трафика
    Описание Диапазон
    портов
    Протокол Тип источника Источник
    Входящий balancer 80 TCP Группа безопасности alb-sg
    Входящий ssh 22 TCP CIDR 0.0.0.0/0

Создайте группу ВМ

На ВМ из целевой группы развертываются бэкенды вашего приложения. Целевая группа будет подключена к балансировщику, чтобы на эндпоинты бэкендов приложения можно было направлять запросы.

Чтобы создать группу ВМ с минимальной конфигурацией:

Консоль управления
  1. В консоли управления выберите сервис Compute Cloud.
  2. Откройте вкладку Группы виртуальных машин и нажмите кнопку Создать группу виртуальных машин.
  3. В блоке Базовые параметры:
    • Введите имя группы ВМ, например website-vm-group.
    • Выберите сервисный аккаунт из списка или создайте новый. Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе, назначьте сервисному аккаунту роль editor. По умолчанию все операции с группами безопасности выполняются от имени сервисного аккаунта.
  4. В блоке Распределение выберите три зоны доступности (ru-central1-a, ru-central1-b и ru-central1-d), чтобы обеспечить отказоустойчивость хостинга.
  5. В блоке Шаблон виртуальной машины нажмите кнопку Задать и укажите шаблон ВМ:
    • В блоке Образ загрузочного диска перейдите на вкладку Marketplace и выберите продукт LEMP и нажмите кнопку Использовать.

    • В блоке Диски и файловые хранилища укажите:

      • Тип диска — HDD.
      • Размер — 3 ГБ.
    • В блоке Вычислительные ресурсы укажите:

      • Платформа — Intel Cascade Lake.
      • Гарантированная доля vCPU — 5%.
      • vCPU — 2.
      • RAM — 1 ГБ.
    • В блоке Сетевые настройки:

      • Выберите облачную сеть и ее подсети.
      • В поле Публичный IP-адрес выберите Автоматически.
      • Выберите группу безопасности alb-vm-sg.
    • В блоке Доступ укажите данные для доступа на ВМ:

      • В поле Сервисный аккаунт выберите сервисный аккаунт для привязки к ВМ.
      • В поле Логин введите имя пользователя.
      • В поле SSH-ключ вставьте содержимое файла открытого ключа.

      Для подключения по SSH необходимо создать пару ключей. Подробнее в разделе Подключиться к ВМ Linux по SSH.

    • Нажмите кнопку Сохранить.

  6. В блоке Масштабирование укажите Размер группы ВМ — 3.
  7. В блоке Интеграция с Application Load Balancer выберите опцию Создать целевую группу и укажите имя группы: alb-tg.
  8. Нажмите кнопку Создать.

Создание группы ВМ может занять несколько минут. Когда все ВМ перейдут в статус RUNNING, вы можете загрузить на них файлы сайта.

Загрузите файлы сайта

Чтобы проверить работу веб-сервера, необходимо загрузить файлы сайта на каждую ВМ. Для примера вы можете использовать файл index.html из архива.

Для каждой ВМ в созданной группе выполните следующее:

  1. На вкладке Виртуальные машины нажмите на имя нужной ВМ в списке.

  2. Скопируйте Публичный IPv4-адрес из блока Сеть.

  3. Подключитесь к ВМ по протоколу SSH.

  4. Выдайте права на запись для вашего пользователя на директорию /var/www/html:

    sudo chown -R "$USER":www-data /var/www/html
    
  5. Загрузите на ВМ файлы сайта с помощью протокола SCP.

    Linux/macOS
    Windows

    Используйте утилиту командной строки scp:

    scp -r <путь_до_директории_с-файлами> <имя_пользователя_ВМ>@<IP-адрес_ВМ>:/var/www/html
    

    С помощью программы WinSCP скопируйте локальную директорию с файлами в директорию /var/www/html на ВМ.

Создайте группу бэкендов

Целевую группу, созданную вместе с группой ВМ, привяжите к группе бэкендов с настройками распределения трафика.

Для бэкендов в группах будут созданы проверки состояния: балансировщик будет периодически отправлять проверочные запросы к ВМ и ожидать ответа в течение определенного периода.

Чтобы создать группу бэкендов:

Консоль управления
  1. Выберите сервис Application Load Balancer в каталоге, где создана группа ВМ.
  2. Откройте вкладку Группы бэкендов.
  3. Нажмите кнопку Создать группу бэкендов.
  4. Введите имя группы бэкендов, например website-bg.
  5. В блоке Бэкенды нажмите кнопку Добавить.
  6. Введите имя бэкенда, например backend-1.
  7. В поле Целевые группы выберите созданную ранее целевую группу alb-tg.
  8. Укажите Порт, на котором ВМ бэкенда будут принимать входящий трафик от балансировщика: 80.
  9. Нажмите кнопку Добавить проверку состояния.
  10. Укажите Порт, на котором ВМ бэкенда будут принимать проверочные соединения: 80.
  11. Укажите Путь, к которому будет обращаться балансировщик при проверке состояния: /.
  12. Нажмите кнопку Создать.

Создайте HTTP-роутер

Привяжите группу бэкендов к HTTP-роутеру с правилами маршрутизации HTTP-запросов.

Чтобы создать HTTP-роутер и добавить в него маршрут:

Консоль управления
  1. Откройте вкладку HTTP-роутеры.
  2. Нажмите кнопку Создать HTTP-роутер.
  3. Введите имя роутера, например website-router.
  4. Нажмите кнопку Добавить виртуальный хост.
  5. Введите имя виртуального хоста, например alb-host.
  6. В поле Authority введите доменное имя сайта: alb-example.com.
  7. Нажмите кнопку Добавить маршрут.
  8. Введите имя, например route-1.
  9. В поле Группа бэкендов выберите созданную ранее группу website-bg.
  10. Остальные настройки оставьте без изменений и нажмите кнопку Создать.

Создайте L7-балансировщик

Чтобы создать балансировщик:

Консоль управления
  1. Откройте вкладку Балансировщики.
  2. Нажмите кнопку Создать L7-балансировщик.
  3. Введите имя балансировщика, например website-alb.
  4. В блоке Сетевые настройки выберите сеть, к которой подключена группа ВМ, и созданную ранее группу безопасности alb-sg.
  5. В блоке Размещение выберите подсети для узлов балансировщика в каждой зоне доступности и включите прием трафика.
  6. В блоке Обработчики нажмите кнопку Добавить обработчик.
  7. Введите имя обработчика, например alb-listener.
  8. В блоке Публичный IP-адрес включите передачу трафика.
  9. Укажите порт 80.
  10. В поле HTTP-роутер выберите созданный ранее роутер website-router.
  11. Нажмите кнопку Создать.

Настройте DNS

Доменное имя alb-example.com, которое вы хотите использовать для сайта, нужно связать с IP-адресом балансировщика с помощью записей DNS:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.

  2. Скопируйте IP-адрес созданного балансировщика.

  3. На сайте компании, которая предоставляет вам услуги DNS-хостинга, перейдите в настройки DNS.

  4. Создайте или измените A-запись и CNAME-запись для alb-example.com:

    alb-example.com. A <IP-адрес_L7-балансировщика>
    alb-example.com. CNAME
    

    Если вы пользуетесь Yandex Cloud DNS, настройте записи по следующей инструкции:

    Инструкция по настройке DNS-записей для Cloud DNS

    Чтобы получить доступ к именам из публичной зоны, вам нужно делегировать домен. Укажите адреса серверов ns1.yandexcloud.net и ns2.yandexcloud.net в личном кабинете вашего регистратора.

    1. В консоли управления выберите сервис Cloud DNS.
    2. Если у вас нет публичной зоны DNS, создайте ее:
      1. Нажмите кнопку Создать зону.
      2. Укажите Имя зоны: alb-zone.
      3. В поле Зона укажите доменное имя сайта с точкой в конце: alb-example.com.
      4. Выберите Тип зоны — Публичная.
      5. Нажмите кнопку Создать.
    3. Создайте А-запись в зоне:
      1. Нажмите кнопку Создать запись.
      2. Имя: оставьте пустым.
      3. Тип: оставьте значение А.
      4. TTL (время кэширования записи): оставьте значение по умолчанию.
      5. Значение: введите публичный IP-адрес балансировщика website-alb.
      6. Нажмите кнопку Создать.
    4. Создайте CNAME-запись:
      1. Нажмите кнопку Создать запись.
      2. Имя: www.
      3. Тип: выберите значение CNAME.
      4. TTL (время кэширования записи): оставьте значение по умолчанию.
      5. Значение: введите alb-example.com.
      6. Нажмите кнопку Создать.

Протестируйте отказоустойчивость

  1. В консоли управления выберите сервис Compute Cloud.

  2. Перейдите на страницу ВМ из созданной ранее группы.

  3. Скопируйте Публичный IPv4-адрес из блока Сеть.

  4. Подключитесь к ВМ по протоколу SSH.

  5. Остановите веб-сервис, чтобы сымитировать сбой в работе веб-сервера:

    sudo service nginx stop
    
  6. Откройте ваш сайт в браузере. Несмотря на сбой в работе одного из веб-серверов, сайт должен успешно открыться.

  7. После завершения проверки запустите веб-сервис:

    sudo service nginx start
    

Как удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  1. Удалите нетарифицируемые ресурсы, которые блокируют удаление тарифицируемых ресурсов:
    1. Удалите L7-балансировщик website-alb.
    2. Удалите HTTP-роутер website-router.
    3. Удалите группу бэкендов website-bg.
  2. Удалите группу ВМ website-vm-group.
  3. Если вы использовали Yandex Cloud DNS, то удалите DNS-записи и удалите DNS-зону.

См. также

  • Отказоустойчивый сайт с балансировкой нагрузки через Yandex Application Load Balancer с помощью Terraform

Была ли статья полезна?

Предыдущая
Обзор
Следующая
Terraform
Проект Яндекса
© 2025 ООО «Яндекс.Облако»