Einstieg in Infrastructure as Code (IaC) mit Terraform und AWS

Teil I: Der Anfang einer Dokumentation meiner Reise in die Cloud Infrastrukturen

Salvatore Gonda
7 min readFeb 7, 2024
Diese Abbildung wurde über https://www.canva.com/ erstellt und nachträglich mit https://www.gimp.org/ formatiert

Einleitung

Stell dir vor, du könntest deine gesamte Serverinfrastruktur mit nur ein paar Zeilen Code erstellen und verwalten, als würdest du einen simplen Texteditor benutzen. Klingt das nicht wie Magie? Nun, in der Welt der IT ist das genau das, was Infrastructure as Code (IaC) verspricht. Und in dieser Welt der digitalen Zauberei stehen zwei mächtige Werkzeuge im Rampenlicht: Terraform und Amazon Web Services (AWS).

Terraform ist so etwas wie der Architekt, der mit seinem Bauplan die Grundlage für deine Serverwelt legt. Und AWS? Nun, das ist das riesige Lagerhaus voller Ressourcen, das nur darauf wartet, von Terraform’s Bauplan in Besitz genommen zu werden.

Aber diese Geschichte ist nicht nur für Hardcore-Entwickler gedacht. Nein, es ist eine Reise für jeden, der daran interessiert ist, wie moderne Technologie die Art und Weise, wie wir Infrastruktur aufbauen, verändert. Also schnall dich an, denn wir tauchen ein in die Welt von Terraform, AWS und dem aufregenden Abenteuer namens Infrastructure as Code!

Für wen ist dieses Tutorial gedacht?

Wenn du deutschsprachig bist, einen Mac benutzt und dich für Cloud Computing interessierst, bist du hier genau richtig. Dieses Tutorial richtet sich an all diejenigen, die die Macht von Terraform und Amazon Web Services (AWS) kennenlernen möchten, um ihre Infrastruktur in der Cloud effizient und skalierbar zu verwalten.

Vielleicht bist du ein Entwickler, der sich mit der Bereitstellung von Anwendungen in der Cloud beschäftigt und nach einer einfacheren Möglichkeit sucht, deine Infrastruktur zu verwalten. Oder vielleicht bist du ein Systemadministrator, der nach neuen Werkzeugen sucht, um repetitive Aufgaben zu automatisieren und die Zeit für das Bereitstellen und Skalieren von Ressourcen zu verkürzen.

Unabhängig davon, ob du bereits Erfahrung mit Terraform und AWS hast oder ein Neuling auf diesem Gebiet bist, dieses Tutorial wird dir helfen, die Grundlagen zu verstehen und deine ersten Schritte in der Welt von Infrastructure as Code zu machen. Es ist eine Reise, die dich durch die Installation der erforderlichen Tools zur Erstellung deiner ersten Terraform-Konfiguration führt.

Diese Reise wendet sich auch an all die Ungeduldigen, die neben der herkömmlichen Dokumentation auf Terraform und AWS, schnell zu einem sichtbaren Erfolg kommen wollen und gerne die Perspektive eines anderen Anwenders einnehmen.

Also, wenn du bereit bist, deine Infrastruktur in die Cloud zu bringen und dabei die Vorteile von Automatisierung und Skalierbarkeit zu nutzen, dann begleite mich auf dieser Reise und entdecke, wie Terraform und AWS deine Welt verändern können. Es ist Zeit, die Grenzen der herkömmlichen Infrastrukturverwaltung zu überwinden und in die Zukunft der Cloud zu blicken.

Grundvoraussetzungen

Bevor wir in die Details eintauchen, gibt es ein paar wichtige Voraussetzungen, die du benötigen wirst, um erfolgreich mit Terraform und AWS zu arbeiten.

Zunächst einmal benötigst du einen Account bei Amazon Web Services (AWS), da wir Terraform verwenden werden, um Ressourcen in der AWS-Cloud zu erstellen und zu verwalten. Falls du noch keinen AWS-Account hast, kannst du ganz einfach einen erstellen, indem du die offizielle AWS-Website besuchst und den Anweisungen zum Erstellen eines neuen Accounts folgst. Vergiss nicht, deine Zugangsdaten sicher aufzubewahren, da du sie benötigen wirst, um dich später mit der AWS-CLI anzumelden.

Link: https://aws.amazon.com/de/

Darüber hinaus empfehle ich dir dringend, auch einen Account bei HashiCorp anzulegen. Obwohl dies nicht zwingend erforderlich ist, bietet ein HashiCorp-Account zusätzliche Vorteile wie den Zugang zu Ressourcen, Tutorials und Support. Du kannst einen diesen Account ganz einfach auf der offiziellen Webseite von HashiCorp erstellen.

Offizielle Webseite: https://www.hashicorp.com/
Link zur Registrierung:
https://portal.cloud.hashicorp.com/sign-up

Zusätzlich zu den bereits genannten Voraussetzungen ist es wichtig, dass du über Grundkenntnisse in Git verfügst und eine lokale Installation auf deinem Mac hast. Git ist ein Versionskontrollsystem, das von Entwicklern weltweit verwendet wird, um Änderungen an ihrem Code zu verfolgen, zu verwalten und zu teilen. Da Terraform-Konfigurationen oft in Teams verwendet werden und Änderungen gemeinsam entwickelt werden, ist es wichtig, mit Git vertraut zu sein, um effektiv zusammenarbeiten zu können.

Wenn du Git noch nicht installiert hast, kannst du dies ganz einfach über Homebrew (Installationshinweise siehe weiter unten) tun:

brew install git

Link zu Git: https://git-scm.com/

Außerdem empfehle ich einen Account bei GitHub zu erstellen. GitHub ist eine beliebte Plattform für die Zusammenarbeit an Codeprojekten und bietet Funktionen wie Repositories, Issues und Pull Requests, die die gemeinsame Arbeit an Terraform-Konfigurationen erleichtern.

Link zu GitHub: https://github.com/

Mit Git und einem Account bei GitHub an deiner Seite bist du bereit, effektiv mit Terraform und anderen Entwicklern zusammenzuarbeiten und deine Infrastrukturprojekte erfolgreich zu verwalten.

Hast du diese Schritte erledigt? Perfekt! Dann lass uns jetzt fortfahren und die erforderlichen Tools auf deinem Mac installieren, damit du deine AWS-Infrastruktur mit Terraform verwalten kannst.

Technische Voraussetzungen

Bevor wir uns in die Welt von Terraform und AWS stürzen können, benötigen wir ein paar Werkzeuge. Für MacOS-Anwender wie dich ist die gute Nachricht, dass die Einrichtung dieser Tools ziemlich unkompliziert ist.

Zunächst einmal benötigen wir die Terraform Command Line Interface (CLI), die es uns ermöglicht, unsere Infrastruktur mit Terraform zu definieren und zu verwalten. Glücklicherweise können wir Terraform ganz einfach über Homebrew installieren. Wenn du Homebrew noch nicht auf deinem Mac hast, keine Sorge, die Installation ist ein Kinderspiel. Öffne einfach dein Terminal und führe diesen Befehl aus:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Link zu Homebrew: https://brew.sh/de/

Sobald Homebrew eingerichtet ist, können wir Terraform installieren, indem wir einfach folgenden Befehl ausführen:

brew install terraform

Folgender Befehl für die Kommandozeile zeigt dir, welche Version auf deinem Rechner genutzt wird:

terraform version

Das Ergebnis sollte folgendermaßen aussehen:

Ergebnis des Kommandozeilenbefehls terraform version

Du wirst darauf hingewiesen, wenn deine Version out-of-date ist. Mit folgenden Befehl kannst Du ganz leicht deine Terraform-Installation auf dem neuesten Stand bringen:

brew update && brew upgrade terraform

Folgender Befehl für die Kommandozeile zeigt dir, wo sich die Installation von Terraform auf deinem Rechner befindet:

which terraform

Das Ergebnis sollte folgendermaßen aussehen:

Ergebnis des Kommandozeilenbefehls which terraform

Link zu Terraform: https://formulae.brew.sh/formula/terraform

Als nächstes brauchen wir die AWS Command Line Interface (CLI), damit wir mit den AWS-Services kommunizieren können. Auch hier macht uns Homebrew das Leben leicht. Führe einfach diesen Befehl aus, um die AWS-CLI zu installieren:

brew install awscli

Link zu Homebrew: https://formulae.brew.sh/formula/awscli

Jetzt, da wir Terraform und die AWS-CLI haben, brauchen wir noch einen guten Texteditor. In deinem Fall, lieber MacOS-Nutzer, ist Visual Studio Code (VSCode) eine ausgezeichnete Wahl. Du kannst VSCode entweder direkt von der offiziellen Website herunterladen oder noch einfacher über Homebrew Cask installieren:

brew install --cask visual-studio-code

Erweiterungen für Visual Studio Code

Um das Beste aus deiner Terraform-Entwicklung herauszuholen, empfehle ich dir, eine nützliche Erweiterungen zu installieren.

Für Terraform gibt es eine Reihe von Erweiterungen, die dein Entwicklungsleben erleichtern können. Die erste ist die “Terraform” Erweiterung von HashiCorp selbst. Diese Erweiterung bietet Autocomplete-Funktionen, Syntax-Hervorhebung, IntelliSense, Module Explorer, Code Navigation und Formatierung speziell für Terraform-Dateien an. Sie sorgt dafür, dass dein Terraform-Code übersichtlich bleibt und du Fehler schnell erkennen kannst. Durch die Installation dieser Erweiterungen kannst du deine Terraform-Entwicklung optimieren und produktiver arbeiten.

Link zur Erweiterung auf dem Marktplatz von Visual Studio Code:
https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform

Werkzeug zur Erstellung einer Dokumentation

Wenn es darum geht, deine Terraform-Konfigurationen zu dokumentieren, gibt es ein Werkzeug, das besonders nützlich ist: terraform-docs. Diese einfache und dennoch leistungsstarke CLI-Anwendung generiert automatisch eine übersichtliche Dokumentation aus deinem Terraform-Code.

Ich empfehle, wie auch bei den oben gezeigten Installationen, die Verwendung von Homebrew.

brew install terraform-docs

Link zu Terraform-Docs: https://terraform-docs.io/

Warum ist terraform-docs eine Empfehlung? Nun, weil gute Dokumentation entscheidend ist, um deine Infrastrukturkonfigurationen verständlich und wartbar zu halten. Mit terraform-docs kannst du automatisch Kommentare aus deinem Terraform-Code extrahieren und in verschiedenen Formaten wie Markdown oder reStructuredText ausgeben lassen. Das spart Zeit und stellt sicher, dass deine Dokumentation immer auf dem neuesten Stand ist.

Also, wenn du Wert auf klare und verständliche Dokumentation legst (und wer tut das nicht?), dann ist terraform-docs das Werkzeug, das du brauchst. Es ist einfach zu verwenden und macht deine Terraform-Projekte gleichzeitig professioneller und benutzerfreundlicher.

Fazit

In diesem Tutorial haben wir einen Einblick in die Welt von Infrastructure as Code (IaC) mit Terraform und Amazon Web Services (AWS) gewonnen. Wir haben gelernt, wie man die erforderlichen Tools auf einem Mac installiert, sich für die Nutzung von Terraform und AWS vorbereitet und sogar einige nützliche Erweiterungen für die Terraform-Entwicklung entdeckt.

Von der Installation von Terraform und der AWS-CLI über die Empfehlung von Visual Studio Code-Erweiterungen bis hin zur Bedeutung von Dokumentationswerkzeugen wie terraform-docs haben wir die Werkzeuge und Techniken kennengelernt, die es uns ermöglichen, unsere Infrastruktur in der Cloud effizient zu verwalten und zu skalieren.

Mit diesem Wissen und den vorgestellten Ressourcen bist du jetzt bestens gerüstet, um deine eigene Reise in die Welt von Infrastructure as Code anzutreten. Ob du ein erfahrener Entwickler bist, der seine Infrastrukturprozesse verbessern möchte, oder ein Neuling, der die Grundlagen von Terraform und AWS kennenlernen möchte, dieses Tutorial hat dir hoffentlich geholfen, einen guten Startpunkt zu finden.

--

--