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.

Revisions

  1. pavgup created this gist Nov 20, 2018.
    77 changes: 77 additions & 0 deletions aws-resource-count-ucsf.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,77 @@
    #!/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))