Da ist sie wieder. Diese Situation, die jeder Cloud Engineer kennt. Der Moment, in dem eine neue Idee oder ein Projekt in der AWS-Welt zum Leben erweckt werden soll. Es ist immer spannend, ein neues Zusammenspiel von Services zu entwerfen, die man so noch nicht genutzt hat.
Hand aufs Herz: Wie oft beginnen wir wirklich damit, diesen komplexen Prozess sofort in Code zu fassen? Die Wahrheit ist, dass die Einfachheit der AWS Management Console uns oft dazu verleitet, den bequemen Weg zu wählen - das berüchtigte "Klickie Buntie", bei dem wir uns durch Menüs und Optionen navigieren, um unsere Ideen schnell zum Laufen zu bringen.
Doch sobald alles funktioniert, steht man vor der Aufgabe, die gesamte Architektur in Code zu überführen. Tools wie AWS CloudFormation oder das Cloud Development Kit (CDK) zu nutzen, fühlt sich oft wie eine mühsame, ernüchternde Aufgabe an.
Aber aufgemerkt: Seit Februar gibt es eine Lösung, die einen entscheidenden Unterschied macht.
AWS IaC Generator
Der AWS IaC Generator ist auf den ersten Blick nichts Neues. Bereits seit 2019 gibt es die Möglichkeit, bestehende Ressourcen in CloudFormation zu importieren. Doch diese Funktionalität bezog sich auf einzelne Ressourcen und konnte außerdem nicht automatisch verbundene Ressourcen erkennen - etwa Subnetze von VPCs.
Umfassende Imports
Der neue IaC-Generator funktioniert grundlegend anders. Es scannt zunächst den angegebenen Account, um ein umfassendes Bild zu erstellen und voneinander abhängige Ressourcen miteinzubeziehen.
Vorteile
Zusammengefasst bietet der neue IaC Generator folgende Funktionen:
- Automatisierung: Die automatisierte Erkennung von Beziehungen zwischen Ressourcen spart wertvolle Zeit.
- Effizienz: Es ist nicht mehr notwendig, manuell durch die Dokumentation zu gehen und Werte für jede Ressource einzeln zu kopieren, sondern sie werden direkt berücksichtigt.
- Schnellstart: Für einen schnellen Start können Sie die AWS Web Console wie gewohnt verwenden und dann Ihre Arbeit in IaC konvertieren.
- Integration: Die nahtlose Integration in den CloudFormation-Stack bietet eine einheitliche Ansicht und Verwaltung aller Ressourcen.
Einmal zu CloudFormation als IaC Tool gewechselt, ergeben sich ganz generell diese Vorteile:
- Kontrolle: Änderungen und Versionierung der IaC-Konfigurationen können leicht durch Versionskontrollsysteme verwaltet werden.
- Sicherheit: Mit Change-Sets und automatischen Rollbacks bietet AWS CloudFormation zusätzliche Sicherheitsebenen für den Bereitstellungsprozess.
Mehr Informationen dazu findet ihr im AWS Blog:https://aws.amazon.com/de/blogs/devops/import-entire-applications-into-aws-cloudformation/
CDK Migrate als weitere Vereinfachung
Zusätzlich zum neuen IaC-Generator gibt es nun auch die Funktion CloudFormation Templates in CDK Code zu konvertieren.
Der Clou: man kann also beide Dinge miteinander verbinden, bzw. kann der CDK-Konverter selbstständig den IaC-Generator verwenden, um mit einem einzigen Befehl seine aktuelle Umgebung direkt in AWS CDK zu konvertieren und damit weiterzuarbeiten.
Auch hierzu gibt es bereits eine ausführliche Dokumentation von AWS (englisch), die ihr hier finden könnt:
https://docs.aws.amazon.com/cdk/v2/guide/migrate.html
Und was ist mit Terraform?
Zur Wahrheit gehört natürlich auch, dass viele Kunden Terraform als Alternative zu den AWS nativen Diensten nutzen.
Bis Terraform 1.5 war es zwar möglich, Ressourcen zu importieren, allerdings nur um sie im State-File zu berücksichtigen. Der passende IaC Code wurde nicht dazu geschrieben.
Seit Terraform 1.5 gibt es auch die Möglichkeit in “import blocks” den Code dazu zu schreiben. Ein Blick in die Terraform Doku verrät allerdings, dass der Prozess weiterhin sehr aufwändig ist:
Identify the existing infrastructure you will import.
Define an import block for the resources.
Run terraform plan to review the import plan and optionally generate configuration for the resources.
Prune generated configuration to only the required arguments.
Apply the configuration to bring the resource into your Terraform state file.
Source: Terraform Doku
Insbesondere Schritt 1 und Schritt 4 sind mühsam. Es lässt sich zwar automatisieren, aber es bedarf einiges an Arbeit.
Genau diese Arbeit ist mit den neuen AWS-Tools direkt erledigt.
Chapeau AWS!
Nicht vergessen: AWS App Composer
Verwandtes Thema: Der AWS App Composer (auch für VS-Code) hilft ebenfalls, mehr Struktur und Übersicht in den eigenen CloudFormation Code zu bekommen. So kann man seinen Code schnell visualisieren und überprüfen. Am besten gleich ausprobieren:
https://aws.amazon.com/application-composer/
Fazit
Wir verstehen, dass der initiale Aufwand, IaC auf AWS zu nutzen, sehr mühevoll erscheint; besonders wenn sich bereits Workloads in der Cloud befinden. In diesem Post konnten wir Ihnen aufzeigen, wie die neuen Tools von AWS Ihnen genau diese Mühe abnehmen können. Gerne beraten Sie unsere Experten unverbindlich für ein IaC Assessment unter AWS.
Autor: Kevin Feuer
Folge Kevin auf LinkedIn