How to export Amazon EC2 instances to a CSV file
source link: https://thehftguy.com/2016/03/10/how-to-export-amazon-ec2-instances-to-a-csv-file/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
The HFT Guy
A developer in London
Amazon website is limited to 50 instances per page. Viewing lots of instances is a pain and it doesn’t support exporting to CSV/TSV/Excel/other out of the box. The only fix is to use the CLI.
Requirements
- An AWS account with access rights to see your servers
- A pair of AWS keys (Users -> [username] -> Security Credentials -> Create Access Key)
# Install AWS packages
sudo
apt-get
install
-y python python-pip
sudo
pip
install
aws-shell
Listing Instances
# aws-shell will show a wizard to configure your account and region the first time you use it
aws-shell
ec2 describe-instances --output text --query
'Reservations[*].Instances[*].[InstanceId, InstanceType, ImageId, State.Name, LaunchTime, Placement.AvailabilityZone, Placement.Tenancy, PrivateIpAddress, PrivateDnsName, PublicDnsName, [Tags[?Key==`Name`].Value] [0][0], [Tags[?Key==`purpose`].Value] [0][0], [Tags[?Key==`environment`].Value] [0][0], [Tags[?Key==`team`].Value] [0][0] ]'
> instances.tsv
# open instances.tsv with Excel
# enjoy
You can modify the command to pick the information you want. Refer to the official AWS command line reference.
Post navigation
5 thoughts on “How to export Amazon EC2 instances to a CSV file”
-
chodesuresh says:
thanks that works. If you want to get instances with name in tabular format use the below command
aws ec2 describe-instances –output text –query ‘Reservations[*].Instances[*].[InstanceId, State.Name, [Tags[?Key==`Name`].Value] [0][0] ]’ –output table
-
john nicholson says:
Thank you very much HFT guy for this tip! I was asked to generate a list our AWS instances for coporate SecOps team, and found I could not simply export from console. I had to change ‘ to ” before Reservations and at the end before the >. But this worked for me. I ran it from from a windows 10 laptop with AWS CLI installed. Note also, I used –profile to supply the aws credentials needed for our awsprod environment (we have a test/dev environment too :
aws –profile awsprod ec2 describe-instances –output text –query “Reservations[*].Instances[*].[InstanceId, InstanceType, ImageId, State.Name, LaunchTime, Placement.AvailabilityZone, Placement.Tenancy, PrivateIpAddress, PrivateDnsName, PublicDnsName, [Tags[?Key==`Name`].Value] [0][0], [Tags[?Key==`purpose`].Value] [0][0], [Tags[?Key==`environment`].Value] [0][0], [Tags[?Key==`team`].Value] [0][0] ]” > c:\instances.tsv -
Corey Hallisey says:
Any way to include a first row of column headers in the output?
-
Sergey says:
aws ec2 describe-instances –query ‘Reservations[*].Instances[*].{Internal_IP:NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress,Instance_ID:InstanceId,Instance_name:Tags[?Key==`Name`]|[0].Value,Region:Placement.AvailabilityZone,PublicDNS:PublicDnsName,KeyName:KeyName,Type_of_instance:InstanceType,Public_IP:PublicIpAddress}’ –output table
-
-
Luke Rawlins says:
This is definitely going to come in handy! Thanks!
Leave a Reply Cancel reply
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK