Что даёт использование Load Balancer (балансировщика нагрузки)?

«Что даёт использование Load Balancer (балансировщика нагрузки)?» — вопрос из категории Веб-серверы и балансировка, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Балансировщик нагрузки (LB) — ключевой компонент для построения отказоустойчивых и масштабируемых систем. Его основные преимущества:

  1. Распределение нагрузки: Равномерное распределение входящих запросов между несколькими серверами (бэкендами) по алгоритмам (round-robin, least connections, IP hash).
  2. Повышение отказоустойчивости: LB постоянно проверяет здоровье бэкендов (health checks) и автоматически исключает не отвечающие серверы из ротации.
  3. Горизонтальное масштабирование: Позволяет легко добавлять или удалять серверы для обработки изменения трафика.
  4. SSL/TLS Termination: Разгрузка бэкенд-серверов от затратных операций шифрования/дешифрования путем обработки HTTPS на самом балансировщике.
  5. Единая точка входа: Сокрытие внутренней структуры приложения от клиентов.

Пример конфигурации Nginx как балансировщика:

upstream backend_servers {
    # Алгоритм балансировки по умолчанию — round-robin
    server 10.0.1.10:80;
    server 10.0.1.11:80;
    server 10.0.1.12:80 backup; # Резервный сервер
}

server {
    listen 80;
    location / {
        proxy_pass http://backend_servers;
    }
}