#!/bin/bash # Work in progress. This script does not work with organization. SP rouutines have not been written. # Create sqlite database rm -f co.db sqlite3 co.db 'create table instances(type varchar(20) primary key,running int, ri int);' # Count instance types in region echo "Getting list of Ec2 instances..." aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceType' --filter Name=instance-state-name,Values=running --output text | tr '\t' '\n' | sort | uniq -c | while read count type; do echo "insert into instances values(\"$type\", $count,0);" done | sqlite3 co.db # List RI in region echo "Getting list of RI..." aws ec2 describe-reserved-instances --query ReservedInstances[].[InstanceCount,InstanceType] --output text | while read count type; do echo "update instances set ri = $count where type = \"$type\";" done | sqlite3 co.db # List ISP echo "Getting ISP..." aws savingsplans describe-savings-plans # List CSP echo "Getting CSP..." aws savingsplans describe-savings-plans # List table sqlite3 -header -column co.db "select type, running, ri, running - ri as candidates from instances;"