30 lines
1.1 KiB
Bash
Executable File
30 lines
1.1 KiB
Bash
Executable File
#!/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;"
|