AWS-Regionentabelle per Skript abrufen

Die Managementkonsole von AWS bietet eine regionenbasierte Sicht auf die verschiedenen AWS-Dienste. Rechts oben auf der Konsolenseite lässt sich dabei über ein Dropdown-Menü die gewünschte Region auswählen. Dienste wie CloudWatch bieten darüber hinaus eine regionenübergreifende Dashboard-Ansicht.

Screenshot: AWS

Administratoren arbeiten allerdings gerne mit selbst geschriebenen Skripten, da diese viele Möglichkeiten der Automatisierung bieten. Um beispielsweise zu sehen, welche Dienste in den verschiedenen Regionen verfügbar sind, gibt es bei Amazon Elastic Compute Cloud (EC2) neben der Regionentabelle auf der AWS-Webseite auch den Weg über den DescribeRegions-API-Aufruf.

So erscheint mit dem Befehl

aws ec2 describe-regions –output text | cut -f4

in der aktuellen Version des AWS CLI folgendes Ergebnis. Der Cut-Befehl verkürzt dabei die Ausgabe auf die Regions-Bezeichnung:

eu-north-1
ap-south-1
eu-west-3
eu-west-2
eu-west-1
ap-northeast-3
ap-northeast-2
ap-northeast-1
sa-east-1
ca-central-1
ap-southeast-1
ap-southeast-2
eu-central-1
us-east-1
us-east-2
us-west-1
us-west-2

Die gewählte Standardregion kann dabei für selbst geschriebene Skripte auf Basis eines der Software-Development -Kits (SDK) oder der AWS Command Line Interface (AWS CLI) in der Konfigurationsdatei definiert werden (UNIX/macOS: ~/.aws/config und unter Windows: %UserProfile%.aws). Mit dem Befehl „aws configure” werden die Zugangsdaten und die Region initialisiert. Alternativ kann die gewünschte Region über die Umgebungsvariable AWS_DEFAULT_REGION beziehungsweise beim AWS CLI über den Parameter –region kurzfristig verändert werden.

Über das AWS CLI und ein Shell-Skript kann ein Kommando auf alle AWS-Regionen angewandt werden. Das Beispielskript besteht aus zwei Komponenten: Zunächst werden alle verfügbaren Regionen aufgelistet. Anschließend wird das Kommando in jeder dieser Regionen angewendet. Mit dem unten aufgeführten Skript lassen sich beispielsweise alle EC2-Instanzen eines AWS Accounts in allen Regionen anzeigen:

for region in $(aws ec2 describe-regions –output text | cut -f4); do
echo -e “\nListing Instances in region: ${region}…”
aws ec2 describe-instances –region ${region}
done