Compute Engine-Ressourcen mit Terraform bereitstellen

HashiCorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Terraform bietet Plug-ins, die als Anbieter bezeichnet werden und mit denen Sie mit Cloud-Anbietern und anderen APIs interagieren können. Sie können den Terraform-Provider für Google Cloud verwenden, um Google Cloud-Ressourcen wie Compute Engine bereitzustellen und zu verwalten.

Auf dieser Seite erfahren Sie, wie Sie Terraform mit der Compute Engine verwenden. Außerdem finden Sie eine Einführung in die Funktionsweise von Terraform und einige Ressourcen, die Ihnen den Einstieg in die Verwendung von Terraform mit Google Cloud erleichtern. Außerdem finden Sie Links zu Terraform-Referenzdokumenten für die Compute Engine, Codebeispiele und Anleitungen zur Bereitstellung von Compute Engine-Ressourcen mit Terraform.

Eine Anleitung für den Einstieg in Terraform für Google Cloud finden Sie unter Terraform installieren und konfigurieren oder in der Terraform für Google Cloud-Kurzanleitung.

So funktioniert Terraform

Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur beschreiben können, die Sie in Ihrem Google Cloud-Projekt bereitstellen möchten. Nachdem Sie diese Konfiguration in einer oder mehreren Terraform-Konfigurationsdateien erstellt haben, können Sie die Konfiguration mit der Terraform-Befehlszeile auf Ihre Compute Engine-Ressourcen anwenden.

In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:

  1. Sie beschreiben die Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie die Infrastruktur bereitgestellt wird. Terraform stellt die Infrastruktur für Sie bereit.
  2. Sie führen den Befehl terraform plan aus, der Ihre Konfiguration auswertet und einen Ausführungsplan generiert. Sie können den Plan prüfen und bei Bedarf Änderungen vornehmen.
  3. Anschließend führen Sie den Befehl terraform apply aus, der die folgenden Aktionen ausführt:

    1. Ihre Infrastruktur wird basierend auf Ihrem Ausführungsplan bereitgestellt, indem die entsprechenden Compute Engine APIs im Hintergrund aufgerufen werden.
    2. Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-Datei, die die Ressourcen in Ihrer Konfigurationsdatei den Ressourcen in der realen Infrastruktur zuordnet. Terraform verwendet diese Datei, um den aktuellen Status Ihrer Infrastruktur zu erfassen und zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden müssen.
    3. Wenn Sie anschließend terraform apply ausführen, verwendet Terraform die Zuordnung in der Zustandsdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:

      • Wenn ein Ressourcenobjekt in der Konfigurationsdatei definiert, aber in der Zustandsdatei nicht vorhanden ist, wird es von Terraform erstellt.
      • Wenn ein Ressourcenobjekt in der Zustandsdatei vorhanden ist, aber eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.
      • Wenn ein Ressourcenobjekt in der Zustandsdatei mit der Konfigurationsdatei übereinstimmt, lässt Terraform die Ressource unverändert.

Terraform-Ressourcen für Compute Engine

Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jeder Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte, z. B. virtuelle Netzwerke oder Compute-Instanzen.

In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für Compute Engine verfügbar sind:

Terraform-Ressourcen Datenquellen

Terraform-basierte Anleitungen für Compute Engine

In der folgenden Tabelle sind Terraform-basierte Anleitungen und Tutorials für die Compute Engine aufgeführt:

Leitfaden Details
Compute Engine-Instanz erstellen und starten Hier erfahren Sie, wie Sie eine VM-Instanz erstellen.
VM mit lokalen SSDs erstellen Hier erfahren Sie, wie Sie eine VM mit lokalem SSD-Speicher erstellen.
Laufwerk-Snapshots erstellen Hier erfahren Sie, wie Sie Standard-Snapshots erstellen, um regelmäßig Daten von Laufwerken zu sichern.
Laufwerk mit Klonen duplizieren Hier erfahren Sie, wie Sie zonale Laufwerkklone eines vorhandenen Laufwerks erstellen.
Regionale Laufwerke erstellen und verwalten Hier erfahren Sie, wie Sie regionale Laufwerke erstellen und verwalten.
Spot-VMs erstellen und verwenden Hier erfahren Sie, wie Sie Spot-VMs erstellen und verwalten. Spot-VMs sind VM-Instanzen, die überschüssige Compute Engine-Kapazität darstellen. Spot-VMs sind wesentlich günstiger als Standard-VMs auf On-Demand-Basis.
SSH-Schlüssel zu VMs hinzufügen Beschreibt, wie Sie SSH-Schlüssel zu VM-Instanzen hinzufügen, die OS Login und VMs mit metadatenbasierten SSH-Schlüsseln verwenden.
Shutdown-Skripts ausführen Hier erfahren Sie, wie Sie Shutdown-Scripts erstellen und ausführen, die Befehle ausführen, bevor eine VM-Instanz beendet oder neu gestartet wird.
Reservierung für ein Einzelprojekt erstellen Hier erfahren Sie, wie Sie eine Reservierung für ein einzelnes Projekt erstellen, die nur von VM-Instanzen im selben Projekt genutzt werden kann.
Instanzvorlagen erstellen Hier erfahren Sie, wie Sie Instanzvorlagen erstellen und verwalten.
Anhand von Zeitplänen skalieren Hier erfahren Sie, wie Sie Skalierungspläne für eine vorhandene MIG erstellen. Mit dem zeitplanbasierten Autoscaling lässt sich die Verfügbarkeit von Arbeitslasten verbessern, da die Kapazität anhand der erwarteten Last im Voraus geplant werden kann.
Nichtflüchtigen Speicher zu VM hinzufügen Hier erfahren Sie, wie Sie ein leeres, nicht bootfähiges zonales Persistent Disk-Volume erstellen und an Ihre VM anhängen.
OS Login einrichten ERläutert, wie Sie OS Login einrichten.
Nicht-Bootlaufwerk an eine VM anhängen Hier erfahren Sie, wie Sie ein zonales Nicht-Bootlaufwerk an Ihre VM anhängen.
VM mit einem vom Nutzer verwalteten Dienstkonto erstellen Hier erfahren Sie, wie Sie eine VM-Instanz erstellen, die für die Verwendung eines nutzerverwalteten Dienstkontos konfiguriert ist. Ein Dienstkonto ist eine spezielle Art von Konto, das in der Regel von einer Anwendung oder einer Computing-Arbeitslast für autorisierte API-Aufrufe verwendet wird.
Größe eines nichtflüchtigen Speichers erhöhen Hier erfahren Sie, wie Sie die Größe eines nichtflüchtigen Speichers erhöhen.
Virtuelle Anzeigen auf einer VM aktivieren Beschreibt, wie Sie virtuelle Bildschirme auf einer VM-Instanz aktivieren.
MIG in einer einzelnen Zone erstellen Informationen zum Erstellen einer verwalteten Instanzgruppe (MIG) in einer einzelnen Zone. Durch das Platzieren aller VMs Ihrer MIG in einer einzelnen Zone wird die Latenz minimiert. Dies ist für bestimmte Arbeitslasten nützlich, z. B. Batch-Arbeitslasten.
VM-Instanz mit einem benutzerdefinierten Hostnamen erstellen Hier erfahren Sie, wie Sie eine VM-Instanz mit einem benutzerdefinierten Hostnamen erstellen.
Anwendungsbasierte Systemdiagnose und automatische Reparatur einrichten Hier erfahren Sie, wie Sie eine anwendungsbasierte Systemdiagnose für die automatische Reparatur von VMs in einer verwalteten Instanzgruppe einrichten.
MIG erstellen, die VMs auf Abruf verwendet Beschreibt, wie Sie eine MIG erstellen, die VM-Instanzen auf Abruf verwendet. VMs auf Abruf sind nützlich, wenn Ihre Arbeitslast Unterbrechungen tolerieren kann und Sie von den Kosteneinsparungen profitieren möchten, die mit VMs auf Abruf verbunden sind.
VMs zu einer MIG hinzufügen und daraus entfernen Hier erfahren Sie, wie Sie VMs zu einer MIG hinzufügen und daraus entfernen.
MIG mit aktiviertem Autoscaling erstellen Hier wird beschrieben, wie Sie eine automatisch skalierte MIG erstellen, die VMs anhand der durchschnittlichen CPU-Auslastung in der Gruppe automatisch hinzufügt und entfernt.
MIG mit zustandsorientierten Laufwerken erstellen Beschreibt, wie Sie eine MIG erstellen, die VM-Instanzen auf Abruf verwendet. VMs auf Abruf sind nützlich, wenn Ihre Arbeitslast Unterbrechungen tolerieren kann und Sie von den Kosteneinsparungen profitieren möchten, die mit VMs auf Abruf verbunden sind.
SQL Server-VM-Instanzen erstellen Hier erfahren Sie, wie Sie Microsoft SQL Server-VM-Instanzen erstellen. Microsoft SQL Server ist ein Datenbanksystem, das auf Windows Server und einigen Linux-Distributionen ausgeführt wird. SQL Server auf Compute Engine eignet sich gut als Teil des Back-Ends für Ihre Anwendungen, als flexible Entwicklungs- und Testumgebung oder zusätzlich zu Ihren lokalen Systemen für die Datensicherung und Notfallwiederherstellung.
Zuweisung von Betriebssystemrichtlinien erstellen Hier erfahren Sie, wie Sie eine Zuweisung von Betriebssystemrichtlinien erstellen. Sie können Betriebssystemrichtlinien verwenden, um konsistente Softwarekonfigurationen über virtuelle Linux- und Windows-Maschineninstanzen hinweg zu erhalten.
Zustandsorientierte Metadaten in MIGs konfigurieren Hier erfahren Sie, wie Sie zustandsorientierte Metadaten in MIGs konfigurieren. Mit Instanz-Metadaten können Sie Attribute für Ihre Anwendungen festlegen und über den Metadatenserver mit diesen Anwendungen kommunizieren.
Zustandsorientierte nichtflüchtige Speicher in MIGs konfigurieren Hier erfahren Sie, wie Sie zustandsorientierte nichtflüchtige Speicher in MIGs konfigurieren. Wenn Sie nichtflüchtige Speicher zustandsorientiert konfigurieren, profitieren Sie von automatischen Reparaturen und automatischen Updates der VM-Instanzen, wobei der Status der Laufwerke beibehalten wird.
Zustandsorientierte IP-Adressen in MIGs konfigurieren Beschreibt, wie Sie zustandsorientierte IP-Adressen in MIGs konfigurieren. Durch das Konfigurieren zustandsorientierter IP-Adressen in einer MIG sorgen Sie dafür, dass IP-Adressen beibehalten werden, wenn VM-Instanzen in der Gruppe automatisch repariert, aktualisiert und neu erstellt werden.
Zielverteilungsform für VMs in einer regionalen MIG festlegen Hier erfahren Sie, wie Sie eine Zielverteilungsform für VMs festlegen.
MIG mit VMs in mehreren Zonen in einer Region erstellen Hier erfahren Sie, wie Sie eine MIG erstellen, deren VMs auf mehrere Zonen in einer Region verteilt sind. Durch das Verteilen der Anwendungslast auf mehrere Zonen wird Ihre Arbeitslast vor Zonenausfällen geschützt.
Proaktive Umverteilung von VMs in einer regionalen MIG deaktivieren und wieder aktivieren Hier erfahren Sie, wie Sie die proaktive Umverteilung von VMs in einer regionalen MIG deaktivieren und wieder aktivieren. Nutzen Sie in einer regionalen MIG die proaktive Umverteilung von Instanzen, um eine gleichmäßige Anzahl von VM-Instanzen in den ausgewählten Zonen in der Region beizubehalten. Mit dieser Konfigurationsoption bleiben Anwendungen im Falle eines Ausfalls auf Zonenebene maximal verfügbar.

Terraform-Module und -Blueprints für die Compute Engine

Mithilfe von Modulen und Blueprints können Sie die Bereitstellung und Verwaltung von Google Cloud-Ressourcen in großem Maßstab automatisieren. Ein Modul ist ein wiederverwendbarer Satz von Terraform-Konfigurationsdateien, der eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Blueprint ist ein Paket aus bereitstellbaren und wiederverwendbaren Modulen und einer Richtlinie, mit der eine bestimmte Lösung implementiert und dokumentiert wird.

In der folgenden Tabelle sind Module und Blueprints für die Compute Engine aufgeführt:

Modul oder Blueprint Details
terraform-google-vm Sammlung von subjektiven Untermodulen, die Sie als Bausteine für die Bereitstellung von VMs in Google Cloud verwenden können.
terraform-google-startup-scripts Stellt eine Bibliothek mit nützlichen Startskripts zum Einbetten in VMs bereit
terraform-google-container-vm Stellt Container auf Compute Engine-Instanzen bereit

Nächste Schritte