Как правильно создать и прикрепить ELB в Boto3
Я новичок в Амазонке Boto3
API. Я создал базовую диаграмму моей примерной архитектуры, показанной ниже, с ELB, 4 экземплярами, 2 подсетями и 2 целевыми группами в 2 разных зонах доступности (2 экземпляра в каждой целевой группе).
Я знаю, как создать экземпляр EC2, целевую группу, подсети и ELB. Но какие функции ELB использовать, мне неясно.
Как я могу прикрепить ELB к другим компонентам? Как добавить экземпляры в ELB? Я не уверен, какие дальнейшие шаги и функции необходимы сейчас.
Вот мой простой код:
def create_load_balancer(load_balancer_name, vpcid, subnets, security_group):
command = "aws elbv2 create-load-balancer --name " + load_balancer_name + " --subnets " + subnets + " --security-groups " + security_group+" --scheme internet-facing --type application"
response = os.popen(command).read()
// ....created 4 instances, subnets, and security groups ...
//now ELB:
#Load Balancer
elb = boto3.client('elbv2')
elb.create_target_group( Name='boto3-target-a', Protocol='HTTP', Port=80, VpcId=vpc.id)
elb.create_target_group( Name='boto3-target-b', Protocol='HTTP', Port=80, VpcId=vpc.id)
response = elb.create_load_balancer(Name="elb_boto3", Listeners=[ { 'Protocol': 'tcp', 'LoadBalancerPort': 80, 'InstanceProtocol': 'tcp', 'InstancePort': 80, 'SSLCertificateId': 'string'}, ], Subnets=[subnet1,subnet2], SecurityGroups=[sec_group], Scheme='internet-facing', Type='application')
1 ответ
Использование register_targets()
чтобы прикрепить экземпляры к целевой группе:
response = client.register_targets(
TargetGroupArn='arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
Targets=[
{
'Id': 'i-80c8dd94',
},
{
'Id': 'i-ceddcd4d',
},
],
)
использование create_listener()
Чтобы связать целевую группу с балансировщиком нагрузки:
response = client.create_listener(
DefaultActions=[
{
'TargetGroupArn': 'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
'Type': 'forward',
},
],
LoadBalancerArn='arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188',
Port=80,
Protocol='HTTP',
)
От create_target_group()
документация:
Чтобы зарегистрировать цели в целевой группе, используйте RegisterTargets . Чтобы обновить параметры проверки работоспособности для целевой группы, используйте ModifyTargetGroup . Для мониторинга состояния целей в целевой группе используйте DescribeTargetHealth .
Чтобы направить трафик к целям в целевой группе, укажите целевую группу в действии, используя CreateListener или CreateRule.
Итак, лучший порядок создания:
- Создать балансировщик нагрузки
- Создать целевые группы
- Создать Слушатели, чтобы связать Целевые Группы с ELB
- Зарегистрируйте экземпляры в целевых группах