Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

aws: boto3 get all instances of a load balancers

I can able to get the load balancers using below

import boto3
elb = boto3.client('elbv2')
lbs = elb.describe_load_balancers()

How to get the instances of the lbs.

Also How Can I fetch the load balancers which state is not active as describe_load_balanacers only give state active load balanceres.

like image 261
Rajarshi Das Avatar asked Jul 09 '18 08:07

Rajarshi Das


People also ask

How many instances can a load balancer handle?

Network Load Balancer currently supports 200 targets per Availability Zone. For example, if you are in two AZs, you can have up to 400 targets registered with Network Load Balancer. If cross-zone load balancing is on, then the maximum targets reduce from 200 per AZ to 200 per load balancer.

What is the Boto3 library?

Boto3 is the name of the Python SDK for AWS. It allows you to directly create, update, and delete AWS resources from your Python scripts.


1 Answers

Classic Load Balancer

Use: client = boto3.client('elb')

Then describe_load_balancers() results include a list of instances:

        'Instances': [
            {
                'InstanceId': 'string'
            },
        ],

Application Load Balancer

Use: client = boto3.client('elbv2')

  • Call describe_target_groups() passing in the Load Balancer ARN to obtain a list of Target Groups associated with the Load Balancer
  • Then call describe_target_health() to obtain a list of targets (instances).

Here is a sample response:

{
    'TargetHealthDescriptions': [
        {
            'Target': {
                'Id': 'i-0f76fade',
                'Port': 80,
            },
...
like image 72
John Rotenstein Avatar answered Sep 28 '22 09:09

John Rotenstein