Terraform erleichtert die Verwaltung von Cloud-Infrastrukturen wie der Google Cloud Platform. In diesem Artikel geht es darum, wie du mit Terraform eine GCP-Umgebung aufbauen kannst.
Was ist Terraform ?
Terraform ist ein Open-Source-Tool für Infrastructure as a Code (IaaS).
Es wurde von Hashicorp entwickelt und ermöglicht die Verwaltung einer Cloud-Infrastruktur.
Du kannst damit mehrere Cloud-Dienste (wie Google platform, Amazon web service, GitHub, Microsoft Azure, …) zentralisieren und ihre Konfiguration über eine einzige Lösung beschreiben.
Gut zu wissen: In der Terraform-Sprache wird die Gesamtheit der Cloud-Dienste als „Providers“ bezeichnet.
In diesem Artikel werden wir uns speziell mit einem Provider beschäftigen: Der Google Cloud Platform.
Danach wirst du die Bereitstellung der GCP-Infrastruktur durch Terraform zu verstehen.
Wie funktioniert Terraform ?
Um Terraform auf GCP ausführen zu können, musst du verstehen, wie es funktioniert.
Zuallererst solltest du wissen, dass es sich um ein deklaratives Kodierungswerkzeug handelt, das die Konfigurationssprache HCL (HashiCorp Configuration Language) verwendet.
Das ist es, was es ermöglicht, sowohl eine bestehende Infrastruktur genau zu beschreiben als auch ihren gewünschten Endzustand zu beschreiben.
Von hier aus greift Terraform in drei Phasen ein:
- Der Plan: Hier geht es darum, den Ausführungsplan im Dry-Run-Modus zu visualisieren. Genauer gesagt verwendet Terraform das Prinzip der Idempotenz. Das heißt, es wird den aktuellen Zustand mit dem gewünschten Zustand vergleichen. Während dieses Plans werden keine Aktionen durchgeführt.
- Anwendung: Wenn Terraform keinen Unterschied zwischen dem Ausgangszustand der Infrastruktur und dem Zielzustand feststellt, unternimmt es nichts. Wenn hingegen ein Delta festgestellt wird, unternimmt das IaaS-Tool eine Aktion. Die neu erstellten oder geänderten Ressourcen werden in sogenannten „Topologien“ zusammengefasst. Dies sind zusammenhängende Sätze von Ressourcen (in Bezug auf eine Instanz, ein Netzwerk, eine Region…).
- Zerstörung: Die von Terraform verwalteten Infrastrukturelemente werden gelöscht.
Alle diese Aktionen werden in der Datei tfstate aufgezeichnet. Dadurch werden die technischen IDs der einzelnen Elemente abgerufen. Bei einer Aktualisierung können die Entwickler so die verschiedenen Attribute auffrischen.
Wie kann man seine GCP-Infrastruktur mit Terraform einsetzen?
Die Installation des Tools
Das erste, was du tun musst, um deine GPC-Infrastruktur mit Terraform einzurichten, ist, die verschiedenen Tools (d. h. Terraform und Google Cloud Platform) zu installieren und zu konfigurieren, falls du das nicht schon getan hast.
Um eine Verbindung zwischen den beiden herzustellen, musst du jedoch auch das Google Cloud SDK verwenden, um deine GPC-Ressourcen zu verwalten. Dies ermöglicht es dir, dich in deinem Google Cloud Platform-Konto zu authentifizieren und die Infrastruktur mit Terraform zu verwalten.
💡Auch interessant:
Google Maps Low Code Tool |
AWS oder Google Cloud ? |
Google KI MusicLM |
Google Compute Engine |
Die Struktur von Terraform
Terraform erstellt alle GCP-Dateien innerhalb eines Arbeitsverzeichnisses. Egal, ob du eine oder mehrere Dateien hast, sie werden alle auf Terraform erscheinen. Wir empfehlen dir jedoch, alle deine Ressourcen gut zu organisieren, um deine Arbeit und die Zusammenarbeit mit anderen Teams zu erleichtern.
Die Struktur von Terraform besteht aus mehreren Elementen. Hier sind die wichtigsten:
- GCP: Dies ist die erste Ebene, die auf Terraform erscheint. Diese Datei enthält alle deine Ressourcen, die auf der Google Cloud Platform gespeichert sind.
- Main.tf: In diesem Ordner wird Terraform ausgeführt. Es gibt dort mehrere Abschnitte (Anbieter = GCP, Modul = deine Ressourcen, Output = Endergebnisse).
- Variable.tf: Hier musst du alle deine Variablen (wie GCP-Regionen) definieren. Dies ist die einzige Datei, die du ändern kannst.
- Backend.tf: Damit kannst du die verschiedenen Aktionen in einer tfstate-Datei speichern. Normalerweise wird sie auf dem Google Cloud Storage gespeichert, aber du kannst sie auch lokal aufbewahren. Du kannst sie auch mit anderen Entwicklern teilen.
Das Erstellen von Modulen
Um die GCP-Infrastruktur mit Terraform einzusetzen, musst du die Module verwenden. Mit diesen kannst du zum Beispiel :
- Subnetze erstellen: benutzerdefiniert oder automatisch. Standardmäßig erfolgt die Erstellung von Subnetzen automatisch. Sobald eine neue Region erscheint, wird ein neues Subnetz erstellt.
- Wenn du dies nicht möchtest, kannst du den automatischen Modus deaktivieren. Auf diese Weise musst du zwar Subnetze erstellen, aber nur dann, wenn du sie benötigst.
- Firewall-Regeln einrichten: Die Idee ist dann, Verbindungen zu deinen Ressourcen zu erlauben oder zu verbieten.
- Subnetze einrichten: Die Google Cloud Platform ist zwar ein öffentliches Netzwerk, beherbergt aber auch VPCs (virtual private cloud). Du kannst festlegen, welches Subnetz öffentlich ist und welches andere Subnetz privat ist.
- Ene Instanz einer virtuellen Compute Engine-Maschine erstellen: Dies ermöglicht es dir, virtuelle Maschinen auf der Google-Infrastruktur auszuführen.
Es gibt noch viele weitere GPC-Funktionen, die du in den Terraform-Modulen konfigurieren kannst. Wenn du mehr über ihren Nutzen und ihre Funktionsweise erfahren möchtest, kannst du gerne an unseren Schulungen bei Datascientest teilnehmen.
Die Ausführung des Terraform-Plans
Um den Terraform-Plan auszuführen, musst du das Google cloud SDK verwenden, das du zuvor installiert hast.
Dadurch werden die beiden Lösungen miteinander verbunden.
Anschließend vergleicht Terraform den aktuellen Zustand von GCP mit dem gewünschten Zustand (den du in den verschiedenen Modulen festgelegt hast) und nimmt die erforderlichen Änderungen vor.
Was sind die Vorteile von Terraform für die Google Cloud Platform?
Obwohl Terraform ein relativ neues Tool ist (2014), hat es bereits viele Entwickler für sich gewonnen. Hier sind die wichtigsten Gründe für diesen Erfolg:
- Schnelle Verwaltung der Infrastruktur: Dank der verschiedenen Konfigurationsdateien ist es einfach, deine Ressourcen zu beschaffen, zu definieren oder zu parametrisieren.
- Zusammenarbeit: Durch seine zahlreichen Funktionen (Statusverwaltung, Module, …) kann Terraform von Teams jeder Größe genutzt werden. Und das an jedem Ort.
- Community: Terraform ist ein Open-Source-Tool, das durch die Beiträge seiner Nutzer ständig verbessert wird.
Als Bonus ist Terraform plattformübergreifend. Du kannst sie also nicht nur für Google Cloud, sondern auch für AWS, Oracle Cloud Infrastructure, Alibaba Cloud, Azure… verwenden.
Was du dir merken solltest
- Mit Terraform kannst du schnell und einfach Cloud-Infrastrukturen verwalten und bereitstellen.
- Als deklaratives Codierungswerkzeug vergleicht Terraform einen Ausgangszustand mit einem Zielzustand. Mit diesen Funktionen wendet es die notwendigen Änderungen an, um den Zielzustand zu erreichen.
- Wenn du Terraform für GPC verwendest, sparst du Zeit bei der Bereitstellung und Verwaltung und kannst effizient mit anderen DevOps zusammenarbeiten.
Jetzt, da du einiges über Terraform für GCP weißt, kannst du einen Kurs beginnen, um dieses nützliche Tool für die Data Science zu erlernen. Melde dich jetzt bei DataScientest an.