Essential Installs to setup python development environment

by XDK 9. August 2019 15:09

Install commands:

Generic update:
sudo apt update

mySQL client install:
sudo apt install mysql-client

** mySQL login command **
mysql -h <RDS endpoint> -u <user name> -p <password>

apache server install:
sudo apt install apache2

python essentials install:
sudo apt install python3

** Refer here for pip install **

sudo apt-get purge python-pip
sudo python

sudo apt install python-pip
sudo pip install mysql-connector-python
sudo pip install pymysql

sudo pip install boto3

** Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, which allows Python developers to write software that makes use of services like Amazon S3 and Amazon EC2. You can find the latest, most up to date, documentation at our doc site, including a list of services that are supported. **


Amazon Web Service | General | Python

File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main

by XDK 9. August 2019 14:46


File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main


The exception appears after installing python-pip in the environment. looks like, the script from github is outdated which may be the reason for the exception.

Quick Fix:

Reinstalling python-pip from website fixed the exception.

sudo apt-get purge python-pip
sudo python


Amazon Web Service | Python

What is Messaging Fan-out?

by XDK 8. August 2019 00:22


Fan-out is a messaging pattern where messages are broadcast in a one-to-many arrangement.One of the very common architectural patterns is fan-out where an event is sent to multiple subscribers by a broker. An event can be like placing an order, which can then be handled by inventory service, record-keeping, as well as shipping service concurrently. These events can also be very frequent - like clickstreams, or search strings on a website. AWS allows for fan-out architecture with SNS topics, and SQS queues. SQS queue(s) can subscribe to SNS topics and receive any message sent to the SNS topic(s)

* SNS - Amazon Simple Notification Service (SNS) is a highly available, durable, secure, fully managed pub/sub messaging service that enables you to decouple microservices, distributed systems, and serverless applications. Additionally, SNS can be used to fan out notifications to end users using mobile push, SMS, and email.

* SQS - Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications.


Amazon Web Service

Amazon CloudFront vs Elastic Load Balancing

by XDK 7. August 2019 01:19

Amazon CloudFront is a web service that speeds up distribution of your static and dynamic web content, such as .html, .css, .js, and image files, to your users. CloudFront delivers your content through a worldwide network of data centers called edge locations.

Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon EC2 instances. It enables you to achieve greater levels of fault tolerance in your applications, seamlessly providing the required amount of load balancing capacity needed to distribute application traffic.


Amazon Web Service

What is Route 53 in AWS?

by XDK 4. August 2019 16:32

Amazon Route 53 effectively connects user requests to infrastructure running inAWS – such as Amazon EC2 instances, Elastic Load Balancing load balancers, or Amazon S3 buckets – and can also be used to route users to infrastructure outside of AWS.



Tags: , ,

Amazon Web Service

What is Blue-Green Deployment?

by XDK 4. August 2019 16:20


Blue-green deployment is a technique that reduces downtime and risk by running two identical production environments called Blue and Green.

At any time, only one of the environments is live, with the live environment serving all production traffic. For this example, Blue is currently live and Green is idle.

As you prepare a new version of your software, deployment and the final stage of testing takes place in the environment that is not live: in this example, Green. Once you have deployed and fully tested the software in Green, you switch the router so all incoming requests now go to Green instead of Blue. Green is now live, and Blue is idle.

This technique can eliminate downtime due to app deployment. In addition, blue-green deployment reduces risk: if something unexpected happens with your new version on Green, you can immediately roll back to the last version by switching back to Blue.


Amazon Web Service | Azure DevOps Services | General

What is AWS NAT Instances & NAT Gateways?

by XDK 4. August 2019 06:35


A NAT (Network Address Translation) instance is, like a bastion host, an EC2 instance that lives in your public subnet. A NAT instance, however, allows your private instances outgoing connectivity to the internet while at the same time blocking inbound traffic from the internet.

A NAT (Network Address Translation) Gateways provide the same functionality as a NAT instance, however, a NAT Gateway is an AWS managed NAT service. As a result, these NAT Gateways offer greater availability and bandwidth and require less configuration and administration.

Comparison of NAT Instances and NAT Gateways

Bastion host : A bastion host is a special-purpose computer on a network specifically designed and configured to withstand attacks. The computer generally hosts a single application, for example a proxy server, and all other services are removed or limited to reduce the threat to the computer.

Tags: ,

Amazon Web Service

CIDR block (Classless Inter-Domain Routing) interpretation

by XDK 4. August 2019 06:09


CIDR (Classless Inter-Domain Routing) notation is a compact representation of an IP address and its associated routing prefix. The notation is constructed from an IP address, a slash ('/') character, and a decimal number. The number is the count of leading 1 bits in the subnet mask. Larger values here indicate smaller networks. CIDR was developed as an alternative to traditional subnetting. The idea is that you can add a specification in the IP address itself as to the number of significant bits that make up the routing or networking portion.

IPv4 CIDR blocks interpretation :

IPv4 : a.b.c.d
Bits : --> 32 bits

CIDR block Notation : a.b.c.d/prefix where prefix is the number of IP address the network can have.

Example :

IPs calculation for the above CIDR block will be [192(8bits).168(8bits).100(8bits).0(8bits)] = 2^32-22 = 2^10 = 1,024
where 32 -> 8 * 4 bits , 22 -> prefix

Total number of IPs for CIDR block will be 1,024 -> 255 -> 255 -> 255 -> 255
where 0 -> 255 = 256 IPs

Total IPs = 256 * 4 = 1,024

By default, AWS uses 5 IPs out of these 256 IPs, So the number of IPs released will be 256 - 5 = 251

IPs used by AWS:

0 -> Network Address
1 -> Amazon VPC Routing
2 -> Domain Name System (DNS)
3 -> Future use by AWS
255 -> Broadcasting

In AWS, a subnet can have 1 primary CIDR block and 4 secondary CIDR blocks


Amazon Web Service

What is the difference between Security Group and Network ACL in AWS?

by XDK 3. August 2019 19:04


 Security Group vs Network ACL (Network Access Control List)


Amazon Web Service

Shell Scripting with AWS Command Line Interface

by XDK 3. August 2019 00:12


1) List of EC2 instance IDs:
aws ec2 describe-instances | grep InstanceId | tr '",' ' '

2) List of Load Balancers by Name:
aws elbv2 describe-load-balancers | grep LoadBalancerName | tr '",' ' '

3) List of Target Groups by Name:
aws elbv2 describe-target-groups | grep TargetGroupName | tr '",' ' '

4) List of Autoscale Groups by Name:
aws autoscaling describe-auto-scaling-groups | grep AutoScalingGroupName | tr '",' ' '

5) List of Launch configurations by Name:
aws autoscaling describe-launch-configurations | grep LaunchConfigurationName | tr '",' ' '

 6) List of available IAM users by Name:
aws iam list-users | grep UserName | tr '",' ' '


Tags: ,

Amazon Web Service


The information provided here is based on my expreriences, troubleshooting and online/offline findings. It can be used as is on your own risk without any warranties and I impose no rights.

About the author

My name is Xavier Dilip Kumar Jayaraj and I am a Software Configuration Management Engineer with a background in application development, Build & packaging using Install Shield.

Profile in LinkedIn , PCEP-Certified , Azure-DevOps-C1

DevOps Tools

ALM tools:
Azure DevOps
IBM Rational
CA Agile Central-Rally
CollabNet VersionOne

Configuration tools:
• Puppet
• AWS OpsWorks
• Ansible

Build automation tools:
Apache Ant 
Apache Maven

Continuous Integration tools:

Testing tools:

Version control system tools:
Team Foundation Server

Code review tools:
Bitbucket Server

Continuous Delivery/release management tools:
XL Release
Serena Release
Octopus Deploy

Quotes I Like

"Failure will never overtake me if my determination to succeed is strong enough."  - Dr. APJ. Abdul Kalam

"Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it." - Bruce Lee

"Technology is just a tool. In terms of getting the kids working together and motivating them, the teacher is the most important." - Bill Gates

"Innovation distinguishes between a leader and a follower." - Steve Jobs

Knowledge Base Articles