__author__ = 'Amal G Jose' import sys import boto class GetAllInstances(object): def __init__(self): self.aws_access_key = 'XXXXXXXXXXXXXXX' self.aws_secret_key = 'XXXXXXXXXXXXXXX' if self.aws_access_key == '' or self.aws_secret_key == '': print 'Enter AWS access key and Secret Key' exit() ##Method for getting the details of all the running instances def get_all_running_instances(self, region): try: ##Creating EC2 connection conn = boto.ec2.connect_to_region(region, aws_access_key_id=self.aws_access_key, aws_secret_access_key=self.aws_secret_key) ##List all running EC2 instances reservations = conn.get_all_reservations() for reservation in reservations: for instance in reservation.instances: print region + ':', instance.id ##List all running volumes for volume in conn.get_all_volumes(): print region + ':', volume.id except: print str(sys.exc_info()[0]) ##Method for tagging all the instances def tag_all_instances(self, region): try: tags = {} tags['Name'] = 'CloudComputing' tags['Owner'] = 'Amal G Jose' conn = boto.ec2.connect_to_region(region, aws_access_key_id=self.aws_access_key, aws_secret_access_key=self.aws_secret_key) ##Tagging EC2 instances reservations = conn.get_all_reservations() for reservation in reservations: for instance in reservation.instances: print "Tagging EC2 instance " + instance.id conn.create_tags(instance.id, tags) ##Tagging Volumes for volume in conn.get_all_volumes(): print "Tagging volume " + volume.id conn.create_tags(volume.id, tags) except: print str(sys.exc_info()[0]) def main(self): try: regions = ['ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'us-east-1','us-west-1', 'us-west-2','eu-west-1', 'sa-east-1'] for region in regions: self.get_all_running_instances(region) self.tag_all_instances(region) except: print str(sys.exc_info()[0]) if __name__ == '__main__': get_instance_details = GetAllInstances() get_instance_details.main()