AWS uses the regions and avaiability zones. Where region is the seperate geographic location while avaiability zone is the logical building block of AWS region. Multiple availabiliy zones make up the AWS region. Availability zone is the distinct location in the AWS region that is isolated to be protected from failures in other avilability zones to be used as fault tolerant.
List all Regions using AWS CLI
aws ec2 describe-regions --output table
output
--------------------------------------------------------------------------------- | DescribeRegions | +-------------------------------------------------------------------------------+ || Regions || |+-----------------------------------+-----------------------+-----------------+| || Endpoint | OptInStatus | RegionName || |+-----------------------------------+-----------------------+-----------------+| || ec2.ap-south-1.amazonaws.com | opt-in-not-required | ap-south-1 || || ec2.eu-north-1.amazonaws.com | opt-in-not-required | eu-north-1 || || ec2.eu-west-3.amazonaws.com | opt-in-not-required | eu-west-3 || || ec2.eu-west-2.amazonaws.com | opt-in-not-required | eu-west-2 || || ec2.eu-west-1.amazonaws.com | opt-in-not-required | eu-west-1 || || ec2.ap-northeast-3.amazonaws.com | opt-in-not-required | ap-northeast-3 || || ec2.ap-northeast-2.amazonaws.com | opt-in-not-required | ap-northeast-2 || || ec2.ap-northeast-1.amazonaws.com | opt-in-not-required | ap-northeast-1 || || ec2.ca-central-1.amazonaws.com | opt-in-not-required | ca-central-1 || || ec2.sa-east-1.amazonaws.com | opt-in-not-required | sa-east-1 || || ec2.ap-southeast-1.amazonaws.com | opt-in-not-required | ap-southeast-1 || || ec2.ap-southeast-2.amazonaws.com | opt-in-not-required | ap-southeast-2 || || ec2.eu-central-1.amazonaws.com | opt-in-not-required | eu-central-1 || || ec2.us-east-1.amazonaws.com | opt-in-not-required | us-east-1 || || ec2.us-east-2.amazonaws.com | opt-in-not-required | us-east-2 || || ec2.us-west-1.amazonaws.com | opt-in-not-required | us-west-1 || || ec2.us-west-2.amazonaws.com | opt-in-not-required | us-west-2 || |+-----------------------------------+-----------------------+-----------------+|
List only region names using –filter flag
aws ec2 describe-regions --query 'Regions[*].RegionName'
Output
[ "ap-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "ca-central-1", "sa-east-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ]
To check the resources in particular region
aws resourcegroupstaggingapi get-resources --region ap-south-1
Simple Shell script to list resources from all regions
First set the variable regions whish is an array based on the regions list as follows
regions=(ap-south-1 eu-north-1 eu-west-3 eu-west-2 eu-west-1 ap-northeast-3 ap-northeast-2 ap-northeast-1 ca-central-1 sa-east-1 ap-southeast-1 ap-southeast-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2)
regions=(ap-south-1 eu-north-1 eu-west-3 eu-west-2 eu-west-1 ap-northeast-3 ap-northeast-2 ap-northeast-1 ca-central-1 sa-east-1 ap-southeast-1 ap-southeast-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2)
for i in $regions; do aws resourcegroupstaggingapi get-resources --region $i; done
Eloborated Shell Script
regions=(ap-south-1 eu-north-1 eu-west-3 eu-west-2 eu-west-1 ap-northeast-3 ap-northeast-2 ap-northeast-1 ca-central-1 sa-east-1 ap-southeast-1 ap-southeast-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2)
for i in $regions
do
echo "Region --- $i";
aws resourcegroupstaggingapi get-resources --region $i;
done
To list resources in tabular form
for i in $regions
do
echo "Region --- $i";
aws resourcegroupstaggingapi get-resources --output table --region $i;
done
List all instances across all regions
for i in $regions
do
echo "Region --- $i";
aws ec2 describe-instances --region $i;
echo ;
done
List number of instances running in each region
for i in $regions
do
echo "Region --- $i";
aws ec2 describe-instances --query 'length(Reservations[*])' --region $i;
echo ;
done
List All Elastic IPs by region
aws ec2 describe-addresses --query 'Addresses[*].{IP:PublicIp,region:NetworkBorderGroup}' --output table
Bonus
To list Instance IDs
aws ec2 describe-instances --query "Reservations[].Instances[].[InstanceId]"
List instances with Tag “Name”
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId, Tags[?Key==Name
].Value[0]]'
Combine with filters to limits the output
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Leave a Reply