AWS & PowerShell – Katz und Maus oder doch ein harmonisches Duo?
Wer die Cloud im vollen Umfang nutzen will, kommt um das Thema Automatisierung nicht herum. Jedoch ist meist der Start in dieses Thema kein ganz leichter. Sehen Sie, wie hier Amazon Web Services und PowerShell zusammenspielen.
Wer die Cloud im vollen Umfang nutzen will, kommt um das Thema Automatisierung nicht herum. Jedoch ist meist der Start in dieses Thema kein ganz leichter.
Warum PowerShell in Verbindung mit Amazon Web Services (AWS)?
Eigentlich eine sehr naheliegende Kombination – haben doch heutzutage sehr viele Administratoren mindestens Grundwissen in PowerShell. AWS selbst verfügt seit längerem über ein Support-Kit für PowerShell. Warum also nicht mit etwas Bekanntem in die Welt der Cloud-Automatisierung einsteigen?
Der Einstieg
Dieser Beitrag dient als Einstieg in ebendiese Automatisierung der AWS-Cloud mit PowerShell. Der erste Schritt besteht darin, seine AWS-Umgebung für die Arbeit mit PowerShell einzurichten.
Als Erstes laden wir uns die «AWS-Tools für PowerShell» herunter und installieren diese. Zum Download
Starten Sie danach den Installations-Wizard und führen die Installation durch. Die Auswahl der Features können Sie wie vorgeschlagen belassen und die Installation abschliessen.
PowerShell und AWS einrichten
Wenn Sie nun in Windows nach «PowerShell» suchen, finden Sie die Option «Windows PowerShell for AWS»:
Beim ersten Start der Anwendung werden Sie nach dem AWS Access Key gefragt. Diesen konnten Se beim Erstellen des Benutzers herunterladen. Ebenfalls müssen Sie danach noch den AWS Secret Key eingeben sowie eine AWS-Region auswählen. Folgende Regionen stehen zur Auswahl:
Code | Name |
---|---|
us-east-1 |
US East (N. Virginia) |
us-west-2 |
US West (Oregon) |
us-west-1 |
US West (N. California) |
eu-west-1 |
EU (Ireland) |
eu-central-1 |
EU (Frankfurt) |
ap-southeast-1 |
Asia Pacific (Singapore) |
ap-northeast-1 |
Asia Pacific (Tokyo) |
ap-southeast-2 |
Asia Pacific (Sydney) |
ap-northeast-2 |
Asia Pacific (Seoul) |
ap-south-1 |
Asia Pacific (Mumbai) |
sa-east-1 |
South America (São Paulo) |
Da ich in der Region Frankfurt arbeiten möchte, wähle ich «eu-central-1».
Los geht’s
Nun kann das Vergnügen beginnen. Mit dem Befehl «Clear-Host» entferne ich den Verlauf in der PowerShell-Konsole, sodass nur noch eine Zeile zu sehen ist:
Im AWSPowerShell-Modul (in meinem Fall v.3.3.0.0 ModuleType: Binary) habe ich jetzt vereinfacht gesagt 2078 Befehle zur Verfügung. Mit «Get-EC2Instance» versuche ich, alle Instanzen aufzurufen, muss aber feststellen, dass keine vorhanden sind:
Dies kann ich auch noch im GUI prüfen – und komme auf dasselbe Ergebnis.
Als Erstes muss ich also eine EC2-Instanz erstellen. Diese Funktionalität einer virtuellen Maschine ist den meisten aus der On-Premise-Umgebung bekannt.
In PowerShell ist der Befehl wie folgt definiert: «Verb–Nomen», wie im obigen Beispiel gut ersichtlich: «Get–EC2Instance». Mit dem Befehl «Get-Command -Noun EC2*» kann ich mir alle Befehle ansehen, bei denen im Nomen «EC2» vorkommt.
Hier ein kleiner Auszug:
Weiter eingrenzen lässt sich die Auswahl, wenn man auch das Verb definiert und so z.B. nur Befehle anzeigen lässt, die im Nomen «EC2» und im Verb «Get» beinhalten. Get-Command -Verb Get -Noun EC2*
Mit diesem Wissen über die Befehle kann ich in der Auswahl eine Möglichkeit suchen, eine neue EC2-Instanz zu erstellen:
Für den Anfang empfiehlt es sich, die AMI ID, die das Image darstellt, über das GUI ausfindig zu machen. Starten Sie dafür im GUI das Erstellen einer Instanz.
In meinem Fall ist die AMI-Image-ID «ami-1db84972». Diese ID kann ich nun in PowerShell zur Erstellung der EC2-Instanz verwenden:
Die erste Instanz ist erstellt – wie ich auf dem GUI sehen kann.
Würde das ganze im Web-Front nicht viel schneller gehen?
Jein. Ich erinnere Sie daran, dass Sie von den Vorteilen der Cloud nur profiteren, wenn Sie vollumfänglich automatisieren.
Ein Beispiel: Sie haben ein Projekt, in dem Sie eine komplette Test- oder Dev-Umgebung mit PowerShell erstellen, die Applikationen installieren und konfigurieren – und möchten jetzt in die Cloud auslagern. Dank AWS und PowerShell können Sie alle Einheiten, die dazu in der Cloud verwendet werden, im selben PowerShell einheitlich abbilden. Sie nutzen also eine Plattform für die Automatisierung, obwohl Sie über eine heterogene Umgebung verfügen.