GOOGLE CLOUD → STACKIT · TUTORIAL COMPUTE ENGINE

Google Compute Engine naar STACKIT Compute, stap voor stap

Deze tutorial leidt één kleine Compute Engine-omgeving (een VM, een datadisk, een firewallregel, een extern adres en een subnet) door StackToIT en toont wat eruit komt: een stackit_server met een netwerkinterface, een volume, een security group met regels en een korte lijst met zaken die alleen u kunt beslissen. Elk fragment hieronder is uit de run gekopieerd.

Stap 1: de VM wordt een server

De demo-omgeving bestaat uit zes resources die voor deze pagina zijn geschreven en op 4 november 2026 door StackToIT zijn beoordeeld. Links: de instance zoals de invoer die declareert. Rechts: de server en netwerkinterface die de engine schreef; de reviewcommentaren boven elk blok in het bestand zijn hier weggelaten.

Voorbeeldinvoermain.tf
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"
  }
}
STACKIT-Terraform van StackToITterraform/compute.tf
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]
}
  • Machinetype en image zijn variabelen

    Het concept kiest zelf geen flavor of image. web_machine_type heeft geen standaardwaarde; de omschrijving van de variabele leest n2-standard-4 als ruwweg 4 vCPU en 16 GiB. STACKIT noemt g2i.4 als general purpose-type met 4 vCPU en 16 GB, dus dat is een logische kandidaat, maar de keuze is aan u. web_image_id accepteert een publiek image of een image dat u zelf uploadt.

  • Zone, type bootdisk en tags worden niet overgenomen

    De server wordt aangemaakt in var.availability_zone, standaard eu01-1. Het bootdisktype pd-balanced heeft geen equivalent: een STACKIT-bootvolume heeft een image, een grootte en een prestatieklasse nodig. De netwerktag web wordt een security group, behandeld in stap 2.

  • Verwijdering van het bootvolume volgt de bron

    Google verwijdert de bootdisk samen met de instance wanneer auto-delete niet is ingesteld. Het concept zet delete_on_termination = true om daarbij aan te sluiten en zegt dat in een commentaar.

Stap 2: disk, firewallregel en extern adres

Uit dezelfde run. Eerste paneel: de firewallregel en de datadisk, in bestandsvolgorde. Daarna het volume (terraform/compute.tf) en de security group met de eerste van twee regels (terraform/security.tf) (de tweede, voor poort 443, heeft dezelfde vorm); net als in stap 1 zijn de reviewcommentaren boven elk blok weggelaten.

Voorbeeldinvoermain.tf
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
}
STACKIT: compute.tfterraform/compute.tf
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
}
STACKIT: security.tfterraform/security.tf
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"
  }
}
  • Een prestatieklasse vervangt pd-ssd

    Het volume gebruikt var.data_performance_class. STACKIT Block Storage biedt storage_premium_perf-klassen van perf0 (120 IOPS, 25 MB/s) tot perf29 (60.000 IOPS, 1.500 MB/s), onafhankelijk van de grootte van het volume. Kies de klasse op basis van de gemeten belasting van de brondisk, niet op basis van de naam.

  • Grootte 200 is gekopieerd, de eenheid controleert u zelf

    De run kopieert 200 ongewijzigd en merkt op dat de documentatie van STACKIT niet aangeeft of een GB daar een GiB is. Controleer de eenheid op het doel voordat de data wordt gekopieerd.

  • De regel is geschreven, de koppeling aan de VM niet

    De engine schrijft de security group en één regel per poort, maar beslist niet welke netwerkinterfaces de groep vermelden: de bron selecteerde instances op de tag web en STACKIT kent geen tagselector. Ook legt hij vast dat de regelprioriteit van GCP niet wordt overgenomen en dat een organisatie- of folderbeleid buiten de scan de bron verder kan hebben beperkt.

  • Twee koppelingen die u zelf toevoegt

    Het assessment noemt stackit_server_volume_attach en stackit_public_ip_associate als doelen, maar de Terraform van deze run bevat geen van beide blokken: het volume is niet aan de server gekoppeld en het adres is niet aan zijn interface gebonden. Voeg beide toe nadat de server bestaat; de provider documenteert server_id en volume_id voor de volumekoppeling en de run merkt op dat stackit_public_ip zelf een network_interface_id neemt. stackit_public_ip heeft geen name-attribuut, dus web-ip blijft alleen bestaan als Terraform-label.

Wat de run voor de zes resources heeft besloten

Google Cloud-resourceSTACKIT-doelKlasse
google_compute_instancestackit_server met een netwerkinterfaceHerconfiguratie
google_compute_diskstackit_volume (Block Storage)Herconfiguratie
google_compute_firewallstackit_security_group en één regel per toegestane poortHerconfiguratie
google_compute_networkSTACKIT-projectnetwerk of Network AreaHerconfiguratie
google_compute_subnetworkstackit_network met hetzelfde IPv4-prefixHerconfiguratie
google_compute_addressstackit_public_ipDirect

Klassen zoals assessment.json ze vastlegt: vijf RECONFIGURE, één DIRECT, zekerheidsniveau MEDIUM voor elke eenheid. De run ordent ze in drie golven: adres, disk en netwerk eerst; firewall en subnet daarna; de instance als laatste, omdat die van alle andere afhangt.

Stap 3: verplaats de machine en de bijbehorende data

StackToIT verplaatst nooit data. De run noemt de datadisk als stateful eenheid met een open mechanisme (migration/data-movement.md); deze stappen zijn dus algemene praktijk waaruit u kunt kiezen.

  1. Beslis: opnieuw opbouwen of het image meenemen

    Een VM die uit configuratie plus een datadisk bestaat, wordt meestal opnieuw opgebouwd op een publiek Debian-image (STACKIT biedt Debian, Ubuntu en andere distributies) en met uw eigen tooling opnieuw geconfigureerd. Een VM met state op de bootdisk kunt u exporteren.

  2. Exporteer het image

    Exporteren werkt op images, niet op instances: maak eerst een custom image van de bootdisk of van een snapshot ervan, en Google raadt aan de VM te stoppen zodat er intussen niets naar de disk schrijft. gcloud compute images export schrijft daarna een tar.gz-archief met disk.raw naar Cloud Storage; --export-format biedt ook vmdk, vhdx, vpc, vdi en qcow2. Alleen images die u zelf hebt gemaakt of geïmporteerd, kunnen worden geëxporteerd.

  3. Importeer het als STACKIT-image

    De resource stackit_image van de provider neemt een disk_format en een local_file_path, dus een qcow2-bestand kan vanaf uw werkstation worden geüpload. De eigen pagina van STACKIT noemt de oudere route via de Infrastructure API deprecated; gebruik dus de provider of het portaal.

  4. Kopieer de datadisk

    Koppel het nieuwe volume en kopieer daarna bestandssystemen met rsync of een blokkopie, afhankelijk van of de applicatie kan stoppen. Plan de laatste synchronisatie binnen het cutovervenster.

  5. Controleer de volgorde vóór de apply

    Variabelen zonder standaardwaarde (project_id, machinetype, image) moeten eerst een waarde hebben. execution/verify/checks.md noemt een controle vóór en na elke stap.

Wat u aanpast voordat u de apply uitvoert

  • Machinetype, image en bootgrootte

    Stel web_machine_type en web_image_id in; de grootte van het bootvolume, 50, is uit de bron gekopieerd.

  • Koppeling van de security group

    Vermeld stackit_security_group.web_ingress bij de interfaces die de tag web droegen, en bij geen andere.

  • Open bronrange

    De twee regels openen poort 80 en poort 443 voor elk adres, zoals de bron deed. Bepaal of er een load balancer of een smallere range voor hoort.

  • Privé-DNS-namen

    De resolver van Google beantwoordt interne hostnamen. Het netwerk in het concept gebruikt de standaardnameservers van STACKIT, die alleen publieke namen oplossen.

  • Vastgezette provider

    De bron declareert google 8.4.0 zonder lockbestand, dus de run beperkt het zekerheidsniveau tot MEDIUM. Leg het lockbestand vast in versiebeheer en voer opnieuw uit.

Vragen van platformteams

Converteert StackToIT mijn draaiende VM?

Nee. Het leest Terraform en schrijft een concept; het maakt nooit verbinding met uw Google Cloud-project en verplaatst nooit data. De VM, de disks en het image verplaatst u zelf.

Welk STACKIT-machinetype komt overeen met n2-standard-4?

De run laat dat aan een variabele over. De pagina van STACKIT noemt g2i.4 als 4 vCPU met 16 GB in de general purpose-familie, met dezelfde verhouding als n2-standard-4, maar meet de workload voordat u een type vastlegt.

Gaan firewallregels één op één mee?

Allow-regels wel, als security group rules. Prioriteit niet, tags hebben geen selector, en een regel die u in de scan niet ziet, zoals een beleid van de organisatie, wordt niet nagebootst. De run vermeldt dit alles bij het blok.

Kan ik een Debian-image uit de publieke catalogus van Google exporteren?

Nee. Google staat exports alleen toe voor images die u zelf hebt gemaakt of geïmporteerd. Gebruik voor een publieke Debian-basis het eigen Debian-image van STACKIT en pas uw configuratie opnieuw toe.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring