Эластичная балансировка нагрузки (ELB) — это важнейший компонент современной облачной инфраструктуры, который помогает распределять входящий трафик по нескольким ресурсам, обеспечивая высокую доступность, масштабируемость и отказоустойчивость. В этой статье мы углубимся в различные компоненты ELB и изучим их функциональные возможности вместе с примерами кода.
- Балансировщик нагрузки приложений.
Балансировщик нагрузки приложений (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)
- Балансировщик сетевой нагрузки.
Балансировщик сетевой нагрузки (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
- Классический балансировщик нагрузки.
Классический балансировщик нагрузки (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, вы можете повысить доступность и производительность своих приложений в облаке.