Export EC2 and S3 details from AWS using CLI

40 views Asked by At

New to AWS and would like to know if there is a way to export the VMs details from AWS using CLI? Information like CPU, Memory, RAM, Storage.

#!/bin/bash

# Retrieve information about EC2 instances and their attached EBS volumes
aws ec2 describe-instances \
    --query "Reservations[*].Instances[*].[Tags[?Key=='Name'].Value | [0],InstanceId,InstanceType,Placement.AvailabilityZone,State.Name,StateReason.Code,CpuOptions.CoreCount,Memory,BlockDeviceMappings[*].DeviceName,BlockDeviceMappings[*].Ebs.VolumeId,BlockDeviceMappings[*].Ebs.VolumeType]" \
    --output text > EC2_EBS_combined_details_temp.txt

# Retrieve information about EBS volumes
aws ec2 describe-volumes \
    --query "Volumes[*].[Tags[?Key=='Name'].Value | [0],Attachments[0].VolumeId,VolumeType,Size,Iops,Throughput,SnapshotId,CreateTime,AvailabilityZone,State,StateReason.Code]" \
    --output text | \
    awk 'BEGIN{OFS=",";print "Name,VolumeId,VolumeType,Size,Iops,Throughput,Snapshot,Created,AvailabilityZone,VolumeState,StateReason.Code"} {gsub(" ","_",$1);gsub(" ","_",$7);print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11}' >> EC2_EBS_combined_details_temp.txt

# Format and sort the combined data
awk 'BEGIN{FS=",";OFS=",";printf "Name,InstanceId,InstanceType,AvailabilityZone,State,StateReason.Code,vCPU,Memory(GiB),VolumeId,StorageType\n"} {printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' EC2_EBS_combined_details_temp.txt | sort -t, -k1,1 -o EC2_EBS_combined_details.csv

# Clean up temporary file
rm EC2_EBS_combined_details_temp.txt
0

There are 0 answers