如何在 Boto3 中正确创建并附加 ELB

Tin*_*a J 2 python amazon-web-services amazon-elb boto3 aws-elb

我是亚马逊Boto3API 的新手。我创建了如下所示的示例架构的基本图,其中包含一个 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')
Run Code Online (Sandbox Code Playgroud)

Joh*_*ein 5

用于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',
        },
    ],
)
Run Code Online (Sandbox Code Playgroud)

用于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',
)
Run Code Online (Sandbox Code Playgroud)

create_target_group()文档中:

要将目标注册到目标组,请使用 RegisterTargets 。要更新目标组的运行状况检查设置,请使用 ModifyTargetGroup 。要监控目标组中目标的运行状况,请使用DescribeTargetHealth。

要将流量路由到目标组中的目标,请使用 CreateListener 或 CreateRule 在操作中指定目标组。

所以,最好的创建顺序是:

  • 创建负载均衡器
  • 创建目标群体
  • 创建侦听器以将目标组链接到 ELB
  • 将实例注册到目标组