CLI
Fetch a list of running
instances¶
aws ec2 describe-instances --output json | jq -r '.Reservations[].Instances[] | select(.State.Name == "running") | { instance_id: .InstanceId, instance_type: .InstanceType, private_ip: .PrivateIpAddress, name: .Tags[]|select(.Key=="Name")|.Value, env: .Tags[]|select(.Key=="env")|.Value, role: .Tags[]|select(.Key=="role")|.Value } | [.instance_id,.name,.instance_type,.private_ip,.env,.role] | @csv '
- Selects only running instances
- Add tags to the metadata.
- Outputs to CSV.
Size of S3 Bucket¶
aws s3 ls s3://{{BUCKET_NAME}} --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
Format List Output¶
aws s3 ls s3://mybucket --recursive --human-readable --summarize
Network usage of EC2 Instance¶
Find out the total Network Out (in GBs) of an EC2 instance for a given time period
aws cloudwatch get-metric-statistics --metric-name NetworkOut --start-time 2022-07-01T00:00:00.000Z --end-time 2022-08-01T00:00:00.000Z --period 86400 --namespace AWS/EC2 --statistics Sum --dimensions Name=InstanceId,Value=i-instance-id-xxx --region ap-south-1 --output text