Изучение компонентов эластичной балансировки нагрузки (ELB)

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

  1. Балансировщик нагрузки приложений.
    Балансировщик нагрузки приложений (ALB) работает на уровне приложений (уровень 7) модели OSI и способен маршрутизировать трафик HTTP и HTTPS. Вот пример создания ALB с использованием AWS SDK для Python (Boto3):
import boto3
elbv2 = boto3.client('elbv2')
response = elbv2.create_load_balancer(
    Name='my-application-alb',
    Subnets=[
        'subnet-12345678',
        'subnet-abcdefgh',
    ],
    SecurityGroups=[
        'sg-12345678',
    ],
    Type='application',
)
print(response)
  1. Балансировщик сетевой нагрузки.
    Балансировщик сетевой нагрузки (NLB) работает на транспортном уровне (уровень 4) и способен обрабатывать трафик TCP, UDP и TLS. Вот пример создания NLB с использованием интерфейса командной строки (CLI) AWS:
aws elbv2 create-load-balancer \
    --name my-network-lb \
    --subnets subnet-12345678 subnet-abcdefgh \
    --security-groups sg-12345678 \
    --scheme internet-facing \
    --type network
  1. Классический балансировщик нагрузки.
    Классический балансировщик нагрузки (CLB) — это устаревшая версия ELB, поддерживающая маршрутизацию трафика как на уровне 7, так и на уровне 4. Однако для новых развертываний рекомендуется использовать ALB или NLB. Вот пример создания CLB с помощью AWS CloudFormation:
Resources:
  MyClassicLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      LoadBalancerName: my-classic-lb
      SecurityGroups:
        - sg-12345678
      Subnets:
        - subnet-12345678
        - subnet-abcdefgh

Эластичная балансировка нагрузки (ELB) обеспечивает необходимые возможности балансировки нагрузки для распределения трафика между несколькими ресурсами масштабируемым и отказоустойчивым способом. В этой статье мы рассмотрели компоненты ELB, включая балансировщик нагрузки приложений (ALB), балансировщик сетевой нагрузки (NLB) и классический балансировщик нагрузки (CLB), а также примеры кода, демонстрирующие их создание. Используя ELB, вы можете повысить доступность и производительность своих приложений в облаке.