Skip to content

Instantly share code, notes, and snippets.

@pavgup
Created November 20, 2018 23:29
Show Gist options
  • Save pavgup/8d37d19c37e44c20dec25d40e917a429 to your computer and use it in GitHub Desktop.
Save pavgup/8d37d19c37e44c20dec25d40e917a429 to your computer and use it in GitHub Desktop.
Updated RedLock Count Resources (command line argument for credentials profile)
#!/bin/bash
aws_regions=(us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-northeast-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 eu-central-1 eu-west-1 sa-east-1 eu-west-2 ca-central-1)
echo "Total regions: "${#aws_regions[@]}
ec2_instance_count=0;
rds_instance_count=0;
elb_count=0;
elasticache_count=0;
redshift_count=0;
natgw_count=0;
for i in "${aws_regions[@]}"
do
count=`aws ec2 describe-instances --max-items 100000 --profile=$1 --region=$i --filters "Name=instance-state-name,Values=running" --output json |jq '.[] | length'`
echo "Region=$i EC2 instance(s) in running state = "$count
ec2_instance_count=`expr $ec2_instance_count + $count`
done
echo "Total count of ec2 instances across all regions: "$ec2_instance_count
echo ""
for i in "${aws_regions[@]}"
do
count=`aws rds describe-db-instances --profile=$1 --region=$i --output json |jq '.[] | length'`
echo "Region=$i RDS instance(s) = "$count
rds_instance_count=`expr $rds_instance_count + $count`
done
echo "Total count of RDS instances across all regions: "$rds_instance_count
echo ""
for i in "${aws_regions[@]}"
do
count=`aws elb describe-load-balancers --profile=$1 --region=$i --output json | jq '.[] | length'`
echo "Region=$i ELBs= "$count
elb_count=`expr $elb_count + $count`
done
echo "Total count of ELBs across all regions: "$elb_count
echo ""
for i in "${aws_regions[@]}"
do
count=`aws elasticache describe-cache-clusters --profile=$1 --region=$i --output json |jq '.[] | length'`
echo "Region=$i Elasticache instances = "$count
elasticache_count=`expr $elasticache_count + $count`
done
echo "Total count of Elasticache across all regions: "$elasticache_count
echo ""
for i in "${aws_regions[@]}"
do
count=`aws ec2 describe-nat-gateways --profile=$1 --region=$i --output json |jq '.[] | length'`
echo "Region=$i NAT Gateway instances = "$count
natgw_count=`expr $natgw_count + $count`
done
echo "Total count of NAT gateways across all regions: "$natgw_count
echo ""
#redshift
for i in "${aws_regions[@]}"
do
count=`aws redshift describe-clusters --profile=$1 --region=$i --output json |jq '.[] | length'`
echo "Region=$i Redshift instances = "$count
redshift_count=`expr $redshift_count + $count`
done
echo "Total count of Redshift clusters across all regions: "$redshift_count
echo ""
echo ""
echo ""
echo ""
echo "Total billable resources:"$((ec2_instance_count+rds_instance_count+elb_count+elasticache_count+redshift_count+natgw_count))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment