29.042015

AWS Command Line Interface für EC2 Instanzen

Vor kurzem haben wir euch bereits JuiceSSH vorgestellt, um schnell eine Verbindung auf eure EC2 Instanzen von einem Android Device herzustellen. Heute möchte ich euch das AWS Command Line Interface von Amazon vorstellen. Mit seiner Hilfe könnt ihr euch ein kleines BASH-Tool schreiben, dass euch die laufenden Instanzen auflistet, auf die ihr euch anschließend z.B. per ssh verbinden können.

Zu allerst müsst ihr euch das AWS Command Line Interface herunterladen und installieren. Dazu schaut einfach bei http://aws.amazon.com/de/cli/ vorbei.

Für den weiteren Verlauf beziehe ich mich auf die Verwendung unter Linux. Nach der Installation muss das AWS CLI noch konfiguriert werden. Wenn man nur einen Account beim AWS hat, reicht ein einfaches aws configure, ich würde aber auch hier zur zweiten Option mit speziellen Profilen raten. Ein spezielles Profil kann folgend konfiguriert werden: aws configure --profile test1. Beim Konfigurieren werden die folgenden Daten abgefragt:

AWS Access Key ID [None]: ...
AWS Secret Access Key [None]: ... 
Default region name [None]: ... 
Default output format [None]: ...

Nun, da die Account-Daten hinterlegt sind, können wir die erste Anfrage mit Hilfe des AWS CLI durchführen

aws ec2 describe-instances --output json --profile test1

dies listet die eingerichteten Instanzen in eurem Account auf. Mit dem Parameter --output könnt ihr euch die Rückgabe als text, json oder als table ausgeben lassen. Nun haben wir viele Informationen über unsere Instanzen. Für mein Anfangs angesprochenes BASH-Tool sind aber hauptsächlich die Ids der Instanzen interessant, da wir uns mit deren Hilfe gezielt Informationen zu einer Instanz abrufen können. Hierzu ergänzen wir unsere erste Abfrage um den Parameter --query, damit nur die Ids der Instanzen zurückgeliefert werden:

aws ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --output text --profile test1

Zu jeder verfügbaren Instanz kann man sich nun den Status (running, stopped, ...), die Public IP oder einen Bezeichner erfragen,

Die Public IP erhaltet ihr zum Beispiel mit dieser Abfrage:

aws ec2 describe-instances --instance-ids $INSTANCE_ID --query "Reservations[*].Instances[*].PublicIpAddress" --output text --profile test1

Wie ihr seht, könnt ihr recht einfach ein paar grundlegende Informationen über eure Instanzen sammeln, um euch ein kleines Tool zu erstellen, damit ihr euch mal schnell auf eine Instanz verbinden könnt, ohne den umständlichen Weg über die AWS Console in einem Browser zu gehen.

Viel Spass beim Experimentieren