GOOGLE CLOUD → STACKIT · SERVICE MAPPING
Google Cloud vs STACKIT: service mapping
Most Google Cloud services have a STACKIT counterpart, and a few do not. This page maps them from a real run: twelve Google Cloud resources assessed by StackToIT, with the STACKIT target and migration class of each, and then the configuration differences that matter in practice. Nine units came out as STACKIT Terraform, one needed no resource and two are left to an architect, so you see where the work is before you plan it.
The twelve resources of the run
An estate written for this page: a network with one subnetwork, a firewall rule and a virtual machine, plus Cloud SQL for PostgreSQL, a bucket, Memorystore, a Pub/Sub topic, a secret, a DNS zone, Bigtable and a BigQuery dataset. StackToIT assessed it on 4 November 2026. Classes are as the run decided them.
| Google Cloud resource | STACKIT target | Class |
|---|---|---|
| Compute Engine instance | Compute Engine: server, volume and network interface | Reconfigure |
| VPC network | STACKIT project networking or Network Area; no resource written for it | Reconfigure |
| Subnetwork | STACKIT network with the same IPv4 range | Reconfigure |
| VPC firewall rule | STACKIT security group and security group rules | Reconfigure |
| Cloud SQL for PostgreSQL 16 | PostgreSQL Flex instance | Replatform |
| Cloud Storage bucket | Object Storage bucket | Reconfigure |
| Memorystore for Redis, standard tier | Key Value Store (Valkey) instance and credential | Reconfigure |
| Pub/Sub topic | RabbitMQ instance; exchange and queues by hand | Replatform |
| Secret Manager secret | Secrets Manager instance; the secret is recreated as a key | Reconfigure |
| Cloud DNS public zone | STACKIT DNS zone | Direct |
| Bigtable instance | Self-managed wide-column store on SKE, or MongoDB Flex | Redesign |
| BigQuery dataset | Lakehouse on Object Storage with Dremio, or a self-managed warehouse | Redesign |
The run counted 1 DIRECT, 7 RECONFIGURE, 2 REPLATFORM and 2 REDESIGN. Wave 1 holds nine units with no dependency, wave 2 the subnetwork and firewall rule, wave 3 the virtual machine. All twelve carry at most MEDIUM confidence: no lock file pins the Google provider, and the run says the version a plan would use is not proven.
Three data services, converted
The same run. First pane: the three data blocks of the input, in file order (main.tf lines 56 to 79). Then one pane per STACKIT resource block the engine wrote, from terraform/data.tf and terraform/storage.tf, without the review comments above each block. Plan names, versions and access lists remain variables because the source states none of them for the target.
resource "google_sql_database_instance" "main" {
name = "shop-db"
region = "europe-west3"
database_version = "POSTGRES_16"
settings {
tier = "db-custom-4-15360"
}
deletion_protection = true
}
resource "google_storage_bucket" "media" {
name = "shop-platform-prod-media"
location = "EUROPE-WEST3"
uniform_bucket_level_access = true
}
resource "google_redis_instance" "cache" {
name = "shop-cache"
tier = "STANDARD_HA"
memory_size_gb = 4
region = "europe-west3"
}resource "stackit_valkey_instance" "cache" {
project_id = var.project_id
name = "shop-cache"
plan_name = var.cache_plan_name
version = var.cache_version
parameters = {
sgw_acl = join(",", var.cache_allowed_cidrs)
}
}resource "stackit_postgresflex_instance" "main" {
project_id = var.project_id
name = "shop-db"
version = "16"
flavor_id = "4.32"
storage = {
class = var.postgresflex_storage_class
size = 20
}
backup_schedule = "0 2 * * *"
network = {
acl = var.main_allowed_cidrs
}
retention_days = 32
}resource "stackit_objectstorage_bucket" "media" {
project_id = var.project_id
name = "shop-platform-prod-media"
}Values to confirm
The database tier db-custom-4-15360 (4 vCPU, 15 GiB) became flavor_id 4.32, which the draft explains as 4 vCPU and 32 GiB, the smallest single-node PostgreSQL Flex flavor in eu01 that covers the source. The draft also sets a daily 02:00 backup and 32 days of retention, which its comments call a default and the STACKIT minimum, because the source states neither. The Valkey access list has no default and the draft rejects an empty list, so you must name the client ranges. Confirm all of these before you plan.
Further services in the curated mapping
Services this run did not contain. They come from the mapping StackToIT keeps for Google Cloud, not from this run, so treat the class as the usual one, not as a result.
| Google Cloud service | STACKIT target | Usual class |
|---|---|---|
| AlloyDB | PostgreSQL Flex | Replatform |
| Cloud Run | Kubernetes Engine (SKE) or Cloud Foundry | Containerize |
| Google Kubernetes Engine | Kubernetes Engine (SKE) | Replatform |
| Spanner | PostgreSQL Flex or self-managed distributed SQL | Redesign |
| Cloud SQL for MySQL or SQL Server | MariaDB or SQLServer Flex, by engine | Replatform |
Memorystore is RECONFIGURE in this run; the curated mapping allows REPLATFORM as well, depending on the configuration.
Configuration differences that bite in practice
The first seven rows come from findings and draft comments this run raised on the estate. The two DNS rows come from the Cloud DNS run behind our DNS cutover runbook and from the STACKIT DNS documentation, because this estate has an unsigned public zone and no private zone.
| Setting | Google Cloud behaviour | On STACKIT |
|---|---|---|
| Memorystore reachability | Reachable only from its VPC | A Valkey instance has its own hostname and address and is reachable by default from STACKIT address ranges; narrow the instance access list to your application's egress addresses |
| Memorystore high availability | Standard tier has a replica and automatic failover | High availability is the service plan: choose a replica plan |
| Cloud SQL destroy guard | deletion_protection blocks Terraform from deleting the instance | Not carried automatically; keep it with a lifecycle prevent_destroy block |
| Firewall target tags | Rules select VMs by network tag | Security groups attach explicitly to the server's network interfaces |
| Subnetwork egress | Default route and Cloud NAT decide internet access | The network keeps STACKIT's default gateway with source NAT; the run could not prove the source behaviour, so it says so |
| Pub/Sub delivery rules | Acknowledgement deadlines, retry policy, push and dead letter are subscription properties | Exchanges and queues are made by hand in RabbitMQ; the draft lists what it did not carry |
| Public DNS signing | A zone may be signed with DNSSEC | STACKIT DNS states that zone signing is currently not available; remove the DS record before moving the delegation |
| Private DNS zones | Zones visible to chosen VPC networks | STACKIT DNS is public only; internal names need a resolver of your own |
| Bigtable and BigQuery | Managed wide-column store and serverless warehouse | No managed counterpart; both are design decisions, classed REDESIGN |
How to read the mapping
The class is the type of work
RECONFIGURE means a counterpart exists and settings change. REPLATFORM means a different platform model. REDESIGN means the architecture changes. No class is an approval on its own.
Read the open settings, not only the class
A DIRECT zone still leaves the switch of the registrar's name servers to you, and a REPLATFORM topic leaves its names and delivery settings open. The class and the open decisions are two different answers.
Start with the REDESIGN rows
They have no counterpart, so they set the schedule and the budget. Waves follow dependencies only: Bigtable and BigQuery sit in wave 1 because nothing in this estate depends on them, not because the run ranks them first. Start their design work before the other units, whatever wave they are in.
Pin the provider before you trust the confidence
The run states that units of a provider with no lock file entry are capped at MEDIUM confidence. Commit the lock file that pins the Google provider and run again; a unit that is still MEDIUM after that is MEDIUM on its own terms.
Questions architects ask
Which Google Cloud services have no STACKIT counterpart?
In this run Bigtable and BigQuery, both classed REDESIGN. The curated mapping adds Spanner. Each needs a design choice, such as a self-managed store, MongoDB Flex or a lakehouse, before it is a migration.
Does the mapping decide the target for me?
It proposes one with a reason. The target of a REDESIGN unit is a starting point for the architect, and the open settings list what only a person can settle.
Is Cloud DNS a direct move?
In this run a public zone without DNSSEC is DIRECT, with the delegation switch left to you. In our Cloud DNS run, a signed zone stays DIRECT but carries a warning to remove the DS record first, and a private zone is REDESIGN, because STACKIT DNS is public authoritative DNS only.
Where do I find the full list for my own estate?
Run the assessment on your Terraform. assessment.json holds one entry per unit with class, confidence, target and reason, and index.html shows the same per unit.
Sources
Your next move: STACKIT.
Tell us about your estate. We show you what StackToIT delivers for it: target architecture, Terraform artifacts and a structured migration plan.