Skip to main content

Manage AWS ELB using Python Boto3 Automation

 Hey Automation Specialist!

Welcome to Python-Orientation blog, In this article we are going to explore the possible functions what we can use for managing AWS ELB automations using Boto3 Python scripts. 

AWS provides us 4 types of load balancers - CLB Classic Load balancer supports HTTP, HTTPS, TCP, TLS which is older and soon sun set. ALB Application Load Balancer which supports HTTP, HTTPS requests. Introduced in 2016 this V2 version Elastic Load Balancer. And in the 2017 AWS introduced Network Load Balancer NLB, it is designed to support Transport Layer protocols - TCP, UDP and TLS requests. And the latest one is more focused on Security Threat Monitoring - which lays on Network Layer and it support routing traffic to 3rd party Threat monitoring service which can be isolated from the Application services network. It works as Gateway for the external traffic so it is known as Gateway Load balancer.

What is ELB?

ELB automatically distributes the incoming network traffic (HTTP/HTTPS requests) across multiple backend EC2 instances and they can be running in different Availability Zones (AZ). This is to provide the High Availability for the applications hosted on multiple AZ. If in case of one of the data center/AZ is unavailable then on the other data center still application will be available without disturbing in coming traffic. There are different front load strategies followed as per the business needs.

ELB to EC2 instances



 In this post I will experimenting on the following: 
  • Create ELB 
  • Apply security group
  • Create Health check
  • Register instances with ELB  
  • Delete ELB services

1. How to Create ELB using Python Boto3 automations?

The create_load_blancer method is used to create a Load Balancer.
Object: client refers to elb 
method: create_load_blancer() which requires input parameters as - LoadBalancerName, Listeners that is again a dictionary of Protocol,LoadBalancerPort,InstanceProtocol, InstancePort, And another parameter 'AvailabilityZone' is important that refer to region on which you are target to work on.
import boto3
elb_client=boto3.client('elb')

response = elb_client.create_load_blancer(
	LoadBalancerName='vybhava_lb',
	Listeners=[{'Protocol': 'HTTP', 'LoadBalancerPort':80, 'InstanceProtocol':'HTTP', 'InstancePort': 80},
	AvailabilityZone=['ap-south-1a']
	)
print(response)
print(response['DNSName'])

2. Apply security group on ELB using Boto3

object: client refers to elb method: apply_security_groups_to_load_balancer() here we can use existing security group(that is created during EC2 instance creation) can be associated with the ELB as well.
import boto3
elb_client=boto3.client('elb')
response=elb_client.apply_security_groups_to_load_balancer(
	LoadBalancerName='vybhava_lb',
	SecurityGroups='sg-vybhava_lb']
	)
print(response)

3. How to create Health check?

object: client refers to elb method: configure_health_check() without healthcheck there is not strong bonding between ELB and EC2 instances. This will validate to check weather the incoming request should be send to the instance or not based on the parameters here we provide.
import boto3
elb_client=boto3.client('elb')
health_check_resp=elb_client.configure_health_check(
	LoadBalancerName =  'vybhava_lb',
	HealthCheck={
		'Target':'TCP:22',
		'Interval':10,
		'Timeout':5,
		'UnhealthyThreshold':5,
		'HealthyThreshould': 5
	}
	
print(health_check_resp)	
The health_check_resp object output c should have 200. Http code for success.

4. How to register instance with ELB services?

EC2 Instance(s) will be attached to ELB object: client method: register_instances_with_load_balancer
import boto3
elb_client=boto3.client('elb')

instanceid=input('Please enter instance id to attach to ELB:')
attachinstance=elb_client.register_instances_with_load_balancer(
	LoadBalancerName='vybhava_lb',
	Instances=[	{
		'InstanceId': instanceid,
	}	]
)
print(attachinstance)
Observe that 'Instance Count' value changes according to attached number of instances. In the bottom tabs look for 'Instances'.

5. How to deregister instance from ELB using Boto3?

De-register EC2 instances from ELB, its reverse process what we did for registration.The object: client method: register_instances_with_load_balancer
import boto3
elb_client=boto3.client('elb')

deattachinstance=elb_client.deregister_instances_with_load_balancer(
LoadBalancerName='vybhava_lb',
	Instances=[	{
		'InstanceId': instanceid,
	}	]
)
print(deattachinstance)

6. How to delete ELB service using Boto3?

The removal of elb can be performed on elb_client, to delete ELB we need to use param for delete_loadbalancer is existing elb services name.

object: client refer to elb service
method: delete_loadbalancer()
import boto3
elb_client=boto3.client('elb')

response=elb_client.delete_loadbalancer(LoadBalancerName='vybhava_lb')
print(response)
Goto the aws console and confirm that no ELB in that region where we did all the above. 

 Refrences: https://unbiased-coder.com/boto3-load-balancer-guide/

Comments

Popular posts from this blog

Program Controls and loops in Python

Python Programming controls The flow of program will be controlled with conditional statements where this flow  if condition if-else condition if-elif condition while loop while - else loop for loop for with if- else loop if condition Here I would like to work on program control statements, wherein relate some operating system functionalities so that, this would give some basic prototype for the sys admin scripts. #!/usr/bin/python # This illustrate if condition # Filename : ifex.py import os d=os.listdir('/home/pavanbsd/pybin') print d f='ifex.py' if f in d: print "File exists" else: print "Not found..." if-elif-else ladder No worries, coming soon... When you need the task that need to be done repeatedly then your choice is using loops. Python provides two simple loop constructs easy to use! More powerful then other scripting compare to, it has 'else' block. while loop Understand the power of while loop,...

AWS Auto Scaling using Python Boto3

Auto Scaling Group in AWS configure using Python Boto3  What is Auto Scaling means?  This is key capability or power of Cloud Computing Engineers believe in their skills on scaling abilities.  Amazon EC2 Auto Scaling helps to maintain application availability and lets automatically add or remove EC2 instances using scaling policies that we define.  There are 2 types of scaling policies : Dynamic or predictive. These scaling policies let us add or remove EC2 instances capacity to service established or real-time demand patterns. It contains various steps involved in Auto Scaling process using Python Boto3 we will explore every step that accumulate to form a complete automation solution for a DevOps project. ASG Groups associated with ELB and EC2 instances   Understanding AWS Auto scaling configuration steps Check any running instances Create launch configuration Configure ASG for Auto scaling Verify the configuration Disable Auto Scaling In order to setup A...

Python Interview Questions -Coding Snipets

 This post is dedicated for all DevOps Engineer, Software Engineers who are preparing for Coding Interviews,  Overview of Coding Interviews Most Companies looking for People with minimum Coding knowledge. In a coding interview, you will be given a small problem to solve within 10 - 20 minutes online screen or in-person on their system. In the question, you might be having some part of the code framed and you might be asked to write a snippet of code in between. You need to understand the code comments and proceed to build the expected snippet of code. Bigger companies look for the General purpose questions, where small companies look for specific questions. The General questions would be like this: Determine if the given word is a palindrome or not. (Example madam) Determine given number is prime or not. How to prepare for a coding interview? Now we have the flexibility to choose the programming language on which you are comfortable.  In general DevOps Infra guys will be ...