GOOGLE CLOUD → STACKIT · COMPUTE-ENGINE-TUTORIAL
Google Compute Engine zu STACKIT Compute, Schritt für Schritt
Dieses Tutorial führt eine kleine Compute-Engine-Umgebung (eine VM, ein Datenträger, eine Firewallregel, eine externe Adresse und ein Subnetz) durch StackToIT und zeigt das Ergebnis: einen stackit_server mit Netzwerkschnittstelle, ein Volume, eine Security Group mit Regeln und eine kurze Liste von Punkten, die nur Sie entscheiden können. Jeder Ausschnitt unten ist aus dem Lauf kopiert.
Schritt 1: Aus der VM wird ein Server
Die Demo-Umgebung umfasst sechs Ressourcen, die für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet wurden. Links die Instanz, wie die Eingabe sie deklariert. Rechts Server und Netzwerkschnittstelle, die die Engine geschrieben hat; die Prüfkommentare über jedem Block der Datei sind hier ausgelassen.
resource "google_compute_instance" "web" {
name = "web-01"
machine_type = "n2-standard-4"
zone = "europe-west3-a"
tags = ["web"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
size = 50
type = "pd-balanced"
}
}
attached_disk {
source = google_compute_disk.data.id
}
network_interface {
subnetwork = google_compute_subnetwork.web.id
access_config {
nat_ip = google_compute_address.web.address
}
}
metadata = {
enable-oslogin = "TRUE"
}
}resource "stackit_network_interface" "web_1" {
project_id = var.project_id
network_id = stackit_network.web.network_id
}
resource "stackit_server" "web" {
project_id = var.project_id
name = "web-01"
machine_type = var.web_machine_type
availability_zone = var.availability_zone
boot_volume = {
source_type = "image"
source_id = var.web_image_id
size = 50
delete_on_termination = true
}
network_interfaces = [stackit_network_interface.web_1.network_interface_id]
}Maschinentyp und Image sind Variablen
Der Entwurf legt weder Maschinentyp noch Image auf Verdacht fest. web_machine_type hat keinen Standardwert; laut Variablenbeschreibung entspricht n2-standard-4 etwa 4 vCPU und 16 GiB. STACKIT führt g2i.4 als Typ der Allzweck-Familie mit 4 vCPU und 16 GB; das ist ein naheliegender Kandidat, aber die Wahl liegt bei Ihnen. web_image_id nimmt ein öffentliches oder ein hochgeladenes Image.
Zone, Bootdisk-Typ und Tags werden nicht übernommen
Der Server entsteht in var.availability_zone, Standard eu01-1. Für den Bootdisk-Typ pd-balanced gibt es keine Entsprechung: Ein STACKIT-Boot-Volume wird über Image, Größe und Performance-Klasse beschrieben. Aus dem Netzwerk-Tag web wird eine Security Group, siehe Schritt 2.
Das Löschen des Boot-Volumes folgt der Quelle
Google löscht die Boot-Disk mit der Instanz, wenn auto_delete nicht gesetzt ist. Der Entwurf setzt passend dazu delete_on_termination = true und vermerkt das in einem Kommentar.
Schritt 2: Datenträger, Firewallregel und externe Adresse
Aus demselben Lauf. Erster Ausschnitt: Firewallregel und Datenträger in Dateireihenfolge. Danach das Volume (terraform/compute.tf) sowie die Security Group mit der ersten ihrer zwei Regeln (terraform/security.tf) (die zweite, für Port 443, hat dieselbe Form); wie in Schritt 1 sind die Prüfkommentare über jedem Block ausgelassen.
resource "google_compute_firewall" "web_ingress" {
name = "allow-web"
network = google_compute_network.app.name
direction = "INGRESS"
source_ranges = ["0.0.0.0/0"]
target_tags = ["web"]
allow {
protocol = "tcp"
ports = ["80", "443"]
}
}
resource "google_compute_disk" "data" {
name = "web-data"
type = "pd-ssd"
zone = "europe-west3-a"
size = 200
}resource "stackit_volume" "data" {
project_id = var.project_id
name = "web-data"
availability_zone = var.availability_zone
size = 200
performance_class = var.data_performance_class
}resource "stackit_security_group" "web_ingress" {
project_id = var.project_id
name = "allow-web"
}
resource "stackit_security_group_rule" "web_ingress_allow_web" {
project_id = var.project_id
security_group_id = stackit_security_group.web_ingress.security_group_id
direction = "ingress"
ether_type = "IPv4"
ip_range = "0.0.0.0/0"
port_range = {
max = 80
min = 80
}
protocol = {
name = "tcp"
}
}Eine Performance-Klasse ersetzt pd-ssd
Das Volume nimmt var.data_performance_class. STACKIT Block Storage bietet storage_premium_perf-Klassen von perf0 (120 IOPS, 25 MB/s) bis perf29 (60.000 IOPS, 1.500 MB/s), unabhängig von der Volume-Größe. Wählen Sie die Klasse nach der gemessenen Last des Quelldatenträgers, nicht nach seinem Namen.
Größe 200 wird übernommen, die Einheit prüfen Sie
Der Lauf übernimmt 200 unverändert und vermerkt, dass die STACKIT-Dokumentation nicht sagt, ob ihr GB als GiB zu lesen ist. Prüfen Sie die Einheit am Ziel, bevor Daten kopiert werden.
Die Regel ist geschrieben, die Zuordnung zur VM nicht
Die Engine schreibt die Security Group und je Port eine Regel, entscheidet aber nicht, an welchen Netzwerkschnittstellen die Gruppe hängt: Die Quelle wählte Instanzen über das Tag web, und einen Tag-Selektor gibt es bei STACKIT nicht. Sie vermerkt außerdem, dass die GCP-Regelpriorität nicht übernommen wird und dass eine Richtlinie von Organisation oder Ordner außerhalb des Scans die Quelle weiter eingeschränkt haben kann.
Zwei Zuordnungen ergänzen Sie selbst
Die Bewertung nennt stackit_server_volume_attach und stackit_public_ip_associate als Ziele, doch das Terraform dieses Laufs enthält keinen der beiden Blöcke: Das Volume hängt nicht am Server, und die Adresse ist nicht an die Schnittstelle gebunden. Ergänzen Sie beides, sobald der Server existiert. Der Provider dokumentiert server_id und volume_id für die Volume-Anbindung, und laut Lauf nimmt stackit_public_ip selbst eine network_interface_id. Einen Namen kennt stackit_public_ip nicht; web-ip bleibt nur als Terraform-Label erhalten.
Was der Lauf für die sechs Ressourcen entschieden hat
| Google-Cloud-Ressource | STACKIT-Ziel | Klasse |
|---|---|---|
| google_compute_instance | stackit_server mit Netzwerkschnittstelle | Rekonfigurieren |
| google_compute_disk | stackit_volume (Block Storage) | Rekonfigurieren |
| google_compute_firewall | stackit_security_group und je erlaubtem Port eine Regel | Rekonfigurieren |
| google_compute_network | STACKIT-Projektnetzwerk oder Network Area | Rekonfigurieren |
| google_compute_subnetwork | stackit_network mit gleichem IPv4-Präfix | Rekonfigurieren |
| google_compute_address | stackit_public_ip | Direkt |
Klassen, wie assessment.json sie festhält: fünf RECONFIGURE, ein DIRECT, Konfidenz MEDIUM bei jeder Einheit. Der Lauf ordnet sie in drei Wellen: Adresse, Datenträger und Netzwerk zuerst, Firewall und Subnetz danach, die Instanz zuletzt, weil sie von allen abhängt.
Schritt 3: Maschine und Daten umziehen
StackToIT überträgt nie Daten. Der Lauf führt den Datenträger als zustandsbehaftete Einheit mit offenem Verfahren (migration/data-movement.md); die folgenden Schritte sind daher Praxis, aus der Sie wählen.
Entscheiden: neu aufbauen oder Image mitnehmen
Eine VM, die aus Konfiguration und einem Datenträger besteht, baut man meist auf einem öffentlichen Debian-Image neu auf (STACKIT stellt Debian, Ubuntu und weitere Distributionen bereit) und konfiguriert sie mit eigenem Tooling erneut. Eine VM mit Zustand auf der Boot-Disk lässt sich exportieren.
Image exportieren
Exportiert werden Images, keine Instanzen: Erstellen Sie zuerst ein eigenes Image aus der Boot-Disk oder aus einem Snapshot davon; Google empfiehlt, die VM dafür anzuhalten, damit nichts mehr auf die Disk schreibt. gcloud compute images export legt dann ein tar.gz-Archiv mit disk.raw in Cloud Storage ab; --export-format bietet außerdem vmdk, vhdx, vpc, vdi und qcow2. Exportieren lassen sich nur Images, die Sie selbst erstellt oder importiert haben.
Als STACKIT-Image importieren
Die Provider-Ressource stackit_image nimmt ein disk_format und einen local_file_path, sodass sich eine qcow2-Datei von Ihrem Arbeitsplatz hochladen lässt. STACKITs eigene Seite nennt den älteren Weg über die Infrastructure API veraltet; nutzen Sie also den Provider oder das Portal.
Datenträger kopieren
Binden Sie das neue Volume an und übertragen Sie die Dateisysteme mit rsync oder per Blockkopie, je nachdem, ob die Anwendung anhalten kann. Legen Sie die letzte Synchronisation ins Cutover-Fenster.
Reihenfolge vor dem Apply prüfen
Variablen ohne Standardwert (project_id, Maschinentyp, Image) brauchen zuerst einen Wert. execution/verify/checks.md führt eine Prüfung vor und nach jedem Schritt auf.
Was Sie vor dem Apply ändern
Maschinentyp, Image und Bootgröße
Setzen Sie web_machine_type und web_image_id; die Boot-Volume-Größe 50 stammt aus der Quelle.
Zuordnung der Security Group
Tragen Sie stackit_security_group.web_ingress an den Schnittstellen ein, die das Tag web hatten, und an keinen anderen.
Offener Quellbereich
Die beiden Regeln öffnen Port 80 bzw. 443 für alle Adressen, wie in der Quelle. Entscheiden Sie, ob ein Load Balancer oder ein engerer Bereich davorgehört.
Private DNS-Namen
Der Google-Resolver beantwortet interne Hostnamen. Das entworfene Netzwerk nutzt die Standard-Nameserver von STACKIT, die nur öffentliche Namen auflösen.
Provider-Version festschreiben
Die Quelle deklariert google 8.4.0 ohne Lock-Datei, deshalb begrenzt der Lauf die Konfidenz auf MEDIUM. Committen Sie die Lock-Datei und starten Sie den Lauf erneut.
Fragen von Plattformteams
Konvertiert StackToIT meine laufende VM?
Nein. Es liest Terraform und schreibt einen Entwurf; es verbindet sich nie mit Ihrem Google-Cloud-Projekt und überträgt nie Daten. VM, Datenträger und Image ziehen Sie selbst um.
Welcher STACKIT-Maschinentyp entspricht n2-standard-4?
Der Lauf überlässt das einer Variablen. STACKITs Seite führt g2i.4 mit 4 vCPU und 16 GB in der Allzweck-Familie; das Verhältnis entspricht n2-standard-4. Messen Sie trotzdem die Last, bevor Sie einen Typ festlegen.
Gehen Firewallregeln eins zu eins über?
Allow-Regeln ja, als Security-Group-Regeln. Die Priorität nicht, Tags haben keinen Selektor, und eine Regel, die der Scan nicht sieht, etwa eine Richtlinie der Organisation, wird nicht nachgebildet. Der Lauf sagt das jeweils neben dem Block.
Kann ich ein Debian-Image aus Googles öffentlichem Katalog exportieren?
Nein. Google erlaubt Exporte nur für Images, die Sie erstellt oder importiert haben. Für eine öffentliche Debian-Basis nutzen Sie das Debian-Image von STACKIT und spielen Ihre Konfiguration neu ein.
Quellen
Ihr nächster Schritt: STACKIT.
Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.