Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Cтатический сайт в Object Storage
    • Cайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage через CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage через Bacula
    • Резервное копирование в Object Storage через Veritas Backup Exec
    • Оцифровка архива в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Создание кластера Windows-серверов «1С:Предприятия» с базой данных SQL Server
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
  • Построение Data Platform
    • Все руководства
    • Синхронизация данных из MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в MySQL
    • Настройка управляемой базы данных в кластере ClickHouse для Graphite
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Импорт базы данных в Yandex Data Proc с использованием Sqoop
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Миграция данных в Yandex Managed Service for Apache Kafka®
    • Перенос коллекций из MongoDB в Yandex Managed Service for MongoDB
    • Миграция базы данных в Yandex Managed Service for SQL Server
    • Перенос данных из PostgreSQL в ClickHouse с помощью Yandex Data Transfer
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Миграция в Yandex Managed Service for Elasticsearch с помощью Reindex API
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
  • Windows в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая маршрутизация
    • Все руководства
    • Маршрутизация с помощью NAT-инстанса
    • Создание VPN-туннеля
    • Установка виртуального роутера Cisco CSR1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Настройка сети для Yandex Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
  1. Веб-сервис
  2. Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer

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

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

Создайте и настройте веб-сайт на стеке LAMP (Linux, Apache HTTP Server, MySQL, PHP) или LEMP (веб-сервер Apache заменяется на Nginx) с балансировкой нагрузки через Network Load Balancer между двумя зонами доступности, защищенный от сбоев в одной зоне.

  1. Подготовьте облако к работе.
  2. Подготовьте сетевую инфраструктуру.
  3. Создайте группу ВМ.
  4. Загрузите файлы веб-сайта.
  5. Создайте сетевой балансировщик.
  6. Протестируйте отказоустойчивость.

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

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

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

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

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

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

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

В стоимость поддержки веб-сайта входит:

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

Подготовьте сетевую инфраструктуру

Перед тем, как создавать ВМ:

  1. Перейдите в консоль управления Yandex Cloud и выберите каталог, в котором будете выполнять операции.

  2. Убедитесь, что в выбранном каталоге есть сеть с подсетями в зонах доступности ru-central1-a и ru-central1-b. Для этого на странице каталога выберите сервис Virtual Private Cloud. Если нужной сети или подсетей нет, создайте их.

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

Чтобы создать группу ВМ с предустановленным веб-сервером:

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

  2. Откройте вкладку Группы виртуальных машин и нажмите кнопку Создать группу.

  3. В блоке Базовые параметры:

    • Введите имя группы ВМ, например nlb-vm-group.
    • Выберите сервисный аккаунт из списка или создайте новый. Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе, назначьте сервисному аккаунту роль editor. По умолчанию все операции в Instance Groups выполняются от имени сервисного аккаунта.
  4. В блоке Распределение выберите зоны доступности ru-central1-a и ru-central1-b, чтобы обеспечить отказоустойчивость хостинга.

  5. В блоке Шаблон виртуальной машины нажмите кнопку Задать и укажите конфигурацию базовой ВМ:

    • В блоке Базовые параметры введите Описание шаблона.

    • В блоке Выбор образа/загрузочного диска откройте вкладку Cloud Marketplace и нажмите кнопку Посмотреть больше. Выберите продукт:

      • LEMP для Linux, nginx, MySQL, PHP;
      • LAMP для Linux, Apache, MySQL, PHP.

      Нажмите кнопку Использовать.

    • В блоке Диски укажите:

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

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

      • Выберите облачную сеть и ее подсети.
      • В поле Публичный адрес выберите Автоматически.
    • В блоке Доступ укажите данные для доступа на виртуальную машину:

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

  6. В блоке Масштабирование укажите Размер группы ВМ — 2.

  7. В блоке Интеграция с Load Balancer выберите опцию Создать целевую группу и укажите имя группы: nlb-tg.

  8. Нажмите кнопку Создать.

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

См. также

  • Подключиться к виртуальной машине Linux по SSH

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

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

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

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

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

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

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

    Linux/macOS
    Windows

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

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

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

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

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

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

  1. В консоли управления откройте раздел Network Load Balancer.

  2. Нажмите кнопку Создать сетевой балансировщик.

  3. Задайте имя балансировщика, например nlb-1.

  4. В блоке Обработчики нажмите кнопку Добавить обработчик и укажите параметры:

    • Имя обработчика — nlb-listener.
    • Порт — 80.
    • Целевой порт — 80.
  5. Нажмите кнопку Добавить.

  6. В блоке Целевые группы:

    1. Нажмите кнопку Добавить целевую группу и выберите созданную ранее целевую группу nlb-tg. Если группа одна, она будет выбрана автоматически.
    2. В блоке Проверка состояния нажмите кнопку Настроить и измените параметры:
      • Имя проверки — health-check-1.
      • Порог работоспособности — количество успешных проверок, после которого виртуальная машина будет считаться готовой к приему трафика: 5.
      • Порог неработоспособности — количество проваленных проверок, после которого на виртуальную машину перестанет подаваться трафик: 5.
    3. Нажмите кнопку Применить.
  7. Нажмите кнопку Создать.

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

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

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

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

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

    LAMP
    LEMP
    sudo service apache2 stop
    
    sudo service nginx stop
    
  5. Перейдите в раздел Network Load Balancer и выберите созданный ранее балансировщик nlb-1.

  6. В блоке Обработчики найдите IP-адрес обработчика. Откройте сайт в браузере, используя адрес обработчика.

    Несмотря на сбой в работе одного из веб-серверов, подключение должно пройти успешно.

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

    LAMP
    LEMP
    sudo service apache2 start
    
    sudo service nginx start
    

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

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

  1. Удалите сетевой балансировщик nlb-1.

  2. Удалите группу виртуальных машин nlb-vm-group.

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Подготовьте сетевую инфраструктуру
  • Создайте группу ВМ
  • Загрузите файлы веб-сайта
  • Создайте сетевой балансировщик
  • Протестируйте отказоустойчивость
  • Как удалить созданные ресурсы