Skip to main content

List AWS EC2 instance details with Name tag value

In this blog, we will look at how to execute Python script to get the AWS EC2 details like Name tag valie of the instance, Instance ID, Platform, Instance Type, State and its private IPv4 address. You will require Python 3.8 or above to run the the script successfully.

Setting up Boto3 Session and client

import boto3

# setup profile and region
profile = "default"
region = "us-east-1"

session = boto3.Session(profile_name=profile, region_name=region)

ec2_client = session.client('ec2')
response = ec2_client.describe_instances()
ec2_list = response['Reservations'] # Gather information about EC2

ec2_name = session.resource('ec2')
instances = ec2_name.instances.all() # This will help to retrieve Tags information

Now, let's print the header row.

# print header
print('Name, Instance ID, Platform, Instance Type, State, Private IPv4')

Following code will run and collect the information about EC2.  

for ec2 in ec2_list:
     
      ec2_describe = ec2['Instances']
     
      for ec2_details in ec2_describe:
         # Saving instance ID to the variable 
         ec2_id = ec2_details['InstanceId']

# Setting up EC2 platform type: windows or Linux
         ec2_platform = ec2_details['PlatformDetails']

         # Saving EC2 instance type to the variable
         ec2_type = ec2_details['InstanceType']

         # Saving EC2 state (Running/Stoped) to the variable
         ec2_state = ec2_details['State']

         # Saving EC2 private IPv4 address to the variable         
         ec2_privateip = ec2_details['PrivateIpAddress']
         
         instances = ec2_name.instances.filter(
            InstanceIds=[
                  ec2_details['InstanceId']
                  ],
         )

         # Fetching the Name tag value of the Instance ID
         for instance in instances:
            for tag in instance.tags:
               if tag["Key"] == 'Name':
                  instance_name = tag["Value"]
                  print(instance_name,', ', ec2_id,', ',ec2_platform,', ',ec2_type ,', ',ec2_state['Name'], ec2_privateip)


You can also include the other EC2 details such as Public IPv4, AMI ID, Keypair and launch time etc....

You can also use Tabulate module to format  your output to table or HTML format. To use to Tabulate module, please ensure that you have installed the module first. You can install the Tabulate module by running pip install tabulate command.

Hope you find it useful.

Disclaimer: www.TechieTalks.co.uk does not conceal the possibility of error and shortcomings due to human or technical factors. www.TechieTalks.co.uk does not bear responsibility upon any loss or damage arising from conduct or activities related to the use of data and information contained in this blog. 

Comments

Popular posts from this blog

Windows 10 phone: This device has been locked for security reasons. Connect your device to a power source for at least two hours, then restart it to try again.

Hi All, this is my very first post on Windows 10 phone. I have a Windows 10 phone. Today, I saw following error message on phone. It didn’t allow me to unlock my phone using 4 digit pin I had set. The “Emergency calls” was the only option available to me. Error: This device has been locked for security reasons. Connect your device to a power source for at least two hours, then restart it to try again. I tried performing soft reboot but it didn’t fix. After doing a bit of research, I found a solution. Make sure that your phone is connected to Internet during this process. To fix this issue, follow these steps: Launch https://account.microsoft.com/devices on a web browser on another PC/Tablet or a smart phone Login using your Microsoft account (it is the same account you’ve used to configure your phone). Once you’ve logged in, Select your phone. On the next page, click on Lock button. A box will appear asking to enter 6 digit pin , a number where you can be reached (op

Fixed: HTC One M8 USB driver doesn’t recognized by Windows 10

Hi friends, recently I upgraded my Windows 7 OS to Windows 10 on my laptop. Everything was working fine until I plugged my HTC One M8 (Android) phone to laptop using USB cable. A message box appeared stating that it could not detect the USB device. I never had any problem when I was using Windows 7. I used to plug my phone to PC using USB cable and access phone storage as USB drive. I typed my query in google and most of the articles suggested that I should installed HTC Sync Manager and then connect my phone. Well, I installed the required application but it did not resolve the issue. Hence, I removed it. This is my 3 rd HTC phone and I started to find out how I can enable USB debugging mode on my phone. This option is hidden by default. To enable this option, follow these steps:  Go to Settings \ About Select Software Information Click on More  option Now, tap on Build number  option six times in a row. A message will be shown saying “ You are now a developer! ” Go

Virtual USB port is missing on Windows 7

Hi All, it has been a long time since I have posted last blog. I was away for a while during Christmas time. Today, I am going to share information about how to get virtual USB port in drop down list while installing local printer (USB) on Windows 7, if it’s not available by default. I followed below steps to add virtual USB port to add USB printer to Windows 7 PC.           Click on Start . Go to Devices and Printers .           Click on Add Printer .           Select Add a local Printer           In Choose a printer port box, select Create a new port option.           From the drop down list, choose Local port and click on Next button.           Port Name dialog box will appear. Type port name USB001 , click on OK           In the step, choose appropriate printer driver from list or provide a driver disk to complete printer driver installation process. I hope you may find this very useful. Disclaimer: www.TechieTalks.co.uk does not conceal the possibility of