Google Cloud Platform und Amazon Web Services bieten zahlreiche Infrastrukturen für den Betrieb einer Web-App. Einen neuen Service auszuprobieren, kann allerdings abschreckend wirken. Wer sich in einen neuen Service einarbeitet, möchte zunächst meist eine minimale Instanz über die Kommandozeile hochziehen.
In diesem Beitrag zeige ich Ihnen, wie Sie sich mithilfe meiner "Quickstarts" zügig in neun Google Cloud- und AWS-Services einarbeiten. Ein Quickstart ist hier ein hardwarenahes Skript, das Sie für den jeweiligen Service bis zur "Hello World!"-Stufe bringt und Ihnen zugleich die zugrunde liegenden Abläufe vermittelt.
Mit diesen Quickstarts überspringen Sie mühelos die erste, abschreckende Phase – in der man von der Technologie womöglich kaum etwas versteht – und erreichen den angenehmen Punkt, an dem Sie sagen können: "Es funktioniert!" Anschließend können Sie schrittweise weitere Funktionen ergänzen, die Sie erkunden möchten.

Designprinzipien der Quickstarts
Jeder Quickstart folgt denselben Prinzipien: automatisiert, minimal und vollständig.
Automatisiert
Die GUI eignet sich gut für ein erstes Antesten, doch in der "Hello, World!"-Phase sind Skripte besser geeignet, weil Sie denselben Service wiederholt deployen können, während Sie Anpassungen vornehmen und Features ergänzen.
Minimal
"Hello, World!"-Skripte sind minimal: nur so viel Code, wie nötig ist, um die HTTP-Antwort zu erhalten.
GCP verwendet den Begriff "Quickstart" für ein Tutorial, das auf dem schnellsten Weg eine bestimmte Technologie zum Laufen bringt. Mein Repository vereinfacht das, indem es sich auf die ausführbaren Skripte konzentriert, die in der Regel noch schlanker ausfallen als das, was solche Artikel zeigen.
Bei AWS ist ein Quick Start ein CloudFormation-Template, um eine bestimmte Technologie ans Laufen zu bringen. Das ist nützlich, ich habe jedoch Shell-Skripte erstellt, weil sie das Verständnis der hardwarenahen Befehle fördern – und das ist wichtig, sobald man später ein vollständiges System aufbaut.
Ich sehe das gerne als noch schnelleren Quickstart.
Vollständig
Die Skripte deployen alles Notwendige, einschließlich IAM-Rollen, Clustern und so weiter. Die einzigen Voraussetzungen sind Kommandozeilen-Tools und eine Authentifizierung gegenüber einem Cloud-Konto. Damit ist das Ziel, alles Erforderliche auf einmal zu starten. Geht etwas schief, beginnen Sie einfach von vorn, ohne jede einzelne Komponente erst mühsam in einen stabilen Zustand zurückversetzen zu müssen.
Idealerweise lassen sich die Skripte mehrfach ausführen, sodass Sie neuen Code über ein bestehendes Deployment legen können. Einige der Skripte hier können das, andere nicht – dort hätte diese Funktion zu viel zusätzlichen Code bedeutet. Löschen Sie in diesen Fällen vor dem erneuten Deployment die alte Instanz, oder starten Sie jede neue Version unter einem neuen Namen. (Achten Sie aber auf die Kosten! Löschen Sie alte Instanzen so schnell wie möglich.)
Voraussetzungen
Die README in jedem Verzeichnis beschreibt die Voraussetzungen. Dazu gehören:
gcloud, authentifiziert (pergcloud init)- Das AWS-CLI-Tool mit Credentials.
- Ein Plugin für das AWS-CLI-Tool für Lightsail
- Das Elastic Beanstalk-Tool
eb. - Das
ecs-cli-Tool für ECS – das Skript installiert es jedoch für Sie. - Für die Verarbeitung der Befehlsausgabe benötigen einige Skripte
envsubst(über das Paketgettextinstallieren) undjq.
Die unterstützten Infrastrukturen
Hier sind die Skripte, die ich erstellt habe – für:
- AWS Elastic Beanstalk
- AWS Lambda
- Amazon Elastic Container Service
- Amazon Lightsail
- Google App Engine Standard Environment
- Google App Engine Flexible Environment
- GCP Cloud Functions
- GCP Cloud Run
- Google Kubernetes Engine
Skripte
Das Git-Repository enthält in den Unterverzeichnissen für jede Infrastrukturtechnologie ein deploy.sh-Skript. Wer experimentierfreudig ist, kann sie alle auf einmal über run_all.sh im Root-Verzeichnis ausführen.
Wenn Sie das nützlich finden und mehr sehen möchten, reichen Sie gern einen Pull Request mit Ihrem Skript ein – oder ein Issue mit dem Wunsch nach Ihrem Favoriten.
Elastic Kubernetes Service wäre ein guter nächster Schritt, danach EC2, Google Compute Engine und Angebote weiterer Cloud-Anbieter.
Unterschiede in der Einfachheit
Infrastrukturtechnologien unterscheiden sich in Einfachheit und Flexibilität.
Bei der App Engine Standard Environment und Cloud Functions besteht das Skript aus einem einzigen deploy-Befehl, gefolgt vom Aufruf einer bekannten URL. Bei anderen ist es komplexer. Cloud Run und ECS verlangen etwa das Bauen und Pushen eines Containers, während Lambda zusätzlich eine IAM-Rolle benötigt.
Letztlich fallen diese Unterschiede aber nicht ins Gewicht. Sobald "Hello, World!" läuft, automatisieren die Skripte die Komplexität zuverlässig weg.
Weiterführende Lektüre
Eine Erläuterung der Schritte zu "Hello, World!" finden Sie in den Quickstart- oder "Getting Started"-Artikeln, die in jeder README verlinkt sind.