Effizienter arbeiten mit AWS CloudFormation (1/3)
AWS-Trainer Rinon Belegu zeigt uns in diesem Artikel, wie Sie mit AWS CloudFormation effizient repetierbare Konfigurationen und Prozesse aufbauen und diese als Templates ablegen können.
Viele Kunden, die auf AWS setzten, fangen damit an, die Umgebung in der Web-Management Console von Hand einzurichten. Um in das Thema AWS einzusteigen, mag das Sinn ergeben. Sie werden jedoch sehen, dass Sie bald an Ihre Grenzen stossen. Ich beschreibe in diesem Artikel, wie man mit AWS CloudFormation effizient repetierbare Konfigurationen und Prozesse aufbauen und diese als Templates ablegen kann.
Welche Probleme tauchen typischerweise auf?
Region richtig einstellen
Als Erstes werden Sie merken, dass bei einer Fehlkonfiguration die genaue Abfolge der Schritte wiederholt werden muss.
Haben Sie z.B. aus Versehen den ganzen Tag auf der falschen Region gearbeitet, gibt es für viele Services kein «Migrate Region»-Button. Das heisst, Sie dürfen die Schritte erneut durchführen.
Deshalb empfehle ich, immer zuerst einen gekonnten Blick auf den rechten oberen Bildschirmrand zu werfen, um sich zu vergewissern, dass man in der richtigen Region ist.
Wenn Ihre Umgebung wächst und wächst, dann wird es sehr aufwändig und unüberschaubar, diese von Hand zu konfigurieren. Vielleicht wollen Sie ja eine CI/CD-Pipeline aufbauen und dieselbe Umgebung mehrmals in Betrieb nehmen.
Was für Optionen gibt es, um Prozesse zu repetieren?
Nun Sie könnten die AWS CLI (Command Line Interface) oder PowerShell verwenden und das Ganze mit Einzelbefehlen oder einer Abfolge von Befehlen aufbauen. Dies ist zumindest mit wenig Aufwand repetierbar. Aber meiner Meinung nach trotzdem fehleranfällig.
Eine Idee, wie das auch noch klappen könnte, erhalten Sie in einem vorgehenden Blogpost von mir. Kommen wir nun auf den Punkt, auf den ich hinaus will: CloudFormation.
Einstieg in CloudFormation
CloudFormation rufen Sie wie jeden anderen AWS Service über die Management Console auf. Wenn Sie den Service noch nie verwendet haben, erwartet Sie folgende Einstiegsseite:
Haben Sie in der Region schon mal mit CloudFormation hantiert, so sehen Sie die letzten Status.
Was ist ein Stack?
Ein Stack ist einfach gesagt eine Ansammlung von vordefinierten Services und Features, die beim Ausführen dieser Definition kreiert und konfiguriert werden.
Das heisst, Sie entscheiden, was in einem Stack ist.
Je nach Abstraktion können Sie entscheiden, ob Sie z.B. eine Definition verwenden, um eine VPC (Virtual Private Cloud) zu erstellen und Netzwerkkonfigs. Oder für kleinere Sachen sogar den ganzen Service in einem Stack definieren. Sie können mehrere einzelne Stacks zusammenfassen in einen grösseren Container: «StackSet».
Wie erstelle ich einen Stack?
Sie können beim Erstellen mit einem grafischem Tool beginnen, indem Sie auf «Create new stack» klicken.
Im nächsten Fenster gehen Sie dann auf «Design Template»:
Nun können Sie grafisch die Elemente einfügen und das Tool erstellt Ihnen die Definition.
Es ist wichtig zu verstehen, dass die Definition in JSON und YAML kreiert werden kann. Beides sind beschreibende Listen.
Man muss sich das so vorstellen, als ob man eine Wunschliste erstellt. Und CloudFormation erfüllt einem die Wünsche! Ich muss also nur sagen, ich wünsche mir bitte eine EC2-Instanz mit den benötigten Konfigurationen und CloudFormation setzt das um.
Die Logik der Abfolge muss ich CloudFormation nicht mitteilen.
Im grafischem Tool greife ich links zur Ressource, ziehe Sie ins «Malfeld» und das Template wird für mich geschrieben.
Natürlich hört das «Malen» ab einer gewissen Komplexität der Umgebung auf. Um zu starten, ist es aber ein sehr gutes Tool. Vor allem kann ich selbst geschriebene Definitionen hochladen und diese visuell darstellen lassen.
Nun wähle ich eine lokale Datei oder ein S3 Bucket aus. Und dann kann ich grafisch in mein Werk abtauchen:
Was sind die Hauptvorteile?
Ich kann den Benutzer beim Erstellen eines Stacks nach Parametern fragen, die dynamisch gesetzt werden.
Weiter kann ich bestimmte Parameter fest vorgeben.
Und da es sich um eine Vorlage handelt, kann ich diese beliebig oft und mit jeweils verschiedenen Vorgaben starten.
Weiter kann ich aus den Vorlagen einen Service Catalog erstellen und durch Vordefinition eine Standardisierung im Unternehmen fördern.
Im nächsten Blog werde ich noch ein wenig tiefer in die Materie einsteigen und unter anderem die Grundelemente der Templates behandeln.
Link zum Thema
https://aws.amazon.com/de/cloudformation/
Seminare zu Amazon Web Services AWSGanz gleich, ob Sie gerade erst einsteigen oder Ihre Kenntnisse vertiefen möchten: Digicomp bietet Ihnen als autorisierter Trainingspartner von Amazon Web Services die passenden Schulungen an sieben Standorten. Das umfassende Kursangebot deckt folgende AWS-Bereiche ab: |
Ganz gleich, ob Sie gerade erst einsteigen oder Ihre Kenntnisse vertiefen möchten: Digicomp bietet Ihnen als autorisierter Trainingspartner von Amazon Web Services die passenden Schulungen an sieben Standorten. Das umfassende Kursangebot deckt folgende AWS-Bereiche ab: