AWS VPC → STACKIT NETZWERK

AWS VPC und Netzwerk zu STACKIT migrieren

STACKIT kennt kein VPC-Objekt: Subnetze werden zu STACKIT-Netzwerken in einem Projekt, und Netzwerke, die privat miteinander kommunizieren, kommen in eine Network Area. StackToIT übernimmt Präfixe und DNS-Server und macht aus dem, was STACKIT anders löst, etwa NAT-Egress-Adressen, klare Entscheidungen.

Subnetze behalten ihre Präfixe

Eine kleine Umgebung, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links die Eingabe, rechts die Ressourcenblöcke aus dem STACKIT-Terraform der Engine; die Prüfkommentare über jedem Block in der Datei sind hier ausgelassen.

Beispieleingabemain.tf
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

resource "aws_subnet" "private_a" {
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.1.0/24"
  availability_zone = "eu-central-1a"
}

resource "aws_subnet" "private_b" {
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.2.0/24"
  availability_zone = "eu-central-1b"
}
STACKIT-Terraform von StackToITterraform/network.tf
resource "stackit_network" "private_a" {
  project_id       = var.project_id
  name             = "private-a"
  ipv4_prefix      = "10.0.1.0/24"
  ipv4_nameservers = var.default_ipv4_nameservers
}

resource "stackit_network" "private_b" {
  project_id       = var.project_id
  name             = "private-b"
  ipv4_prefix      = "10.0.2.0/24"
  ipv4_nameservers = var.default_ipv4_nameservers
}

Das Community-VPC-Modul, umgestellt

Aus dem veröffentlichten Lauf der AWS Retail Store Sample App. Die Subnetze werden aus den Availability Zones berechnet; ihre Anzahl und Präfixe werden daher zu Variablen, die Sie einmal setzen. Die Prüfkommentare über jedem Block in der Datei sind hier ausgelassen.

AWS-Quelleterraform/lib/vpc/vpc.tf
module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.21.0"

  name = var.environment_name
  cidr = var.vpc_cidr

  azs             = local.azs
  public_subnets  = local.public_subnets
  private_subnets = local.private_subnets

  enable_nat_gateway   = true
  create_igw           = true
  enable_dns_hostnames = true
  single_nat_gateway   = true

  # Manage so we can name
  manage_default_network_acl    = true
  default_network_acl_tags      = { Name = "${var.environment_name}-default" }
  manage_default_route_table    = true
  default_route_table_tags      = { Name = "${var.environment_name}-default" }
  manage_default_security_group = true
  default_security_group_tags   = { Name = "${var.environment_name}-default" }

  public_subnet_tags  = merge(var.tags, var.public_subnet_tags)
  private_subnet_tags = merge(var.tags, var.private_subnet_tags)

  tags = var.tags
}
STACKIT-Terraform von StackToITterraform/network.tf
resource "stackit_network" "vpc_vpc_private" {
  count            = var.private_count
  project_id       = var.project_id
  name             = "vpc-vpc-private-${count.index}"
  ipv4_prefix      = var.private_ipv4_prefixes[count.index]
  ipv4_nameservers = var.default_ipv4_nameservers
}

resource "stackit_network" "vpc_vpc_public" {
  count            = var.public_count
  project_id       = var.project_id
  name             = "vpc-vpc-public-${count.index}"
  ipv4_prefix      = var.public_ipv4_prefixes[count.index]
  ipv4_nameservers = var.default_ipv4_nameservers
}

So wird das Netzwerk zugeordnet

AWS-RessourceSTACKIT-ZielMigrationsklasse
VPCSTACKIT-Projektnetzwerk oder Network AreaRekonfigurieren
SubnetzeSTACKIT-Netzwerke mit denselben IPv4-PräfixenRekonfigurieren
Internet-GatewayIn ein geroutetes STACKIT-Netzwerk eingebautRekonfigurieren
NAT-GatewaySTACKIT-Standardrouting mit ausgehendem NATRekonfigurieren
Routing-TabellenSTACKIT-Standardrouting oder Routing-Tabellen der Network AreaRekonfigurieren
Security GroupsSTACKIT-Security-Groups und -RegelnRekonfigurieren
Netzwerk-ACLsSTACKIT-Security-Groups (zustandsbehaftet)Redesign

Klassen so, wie der Lauf der AWS Retail Store Sample App sie entschieden hat.

Entscheidungen, die der Lauf Ihrem Netzwerkteam vorlegt

  • Egress-Adresse

    Ein NAT-Gateway liefert eine feste Egress-Adresse. Auf STACKIT gehört die Adresse dem Netzwerk selbst; StackToIT fragt daher, ob Server auf Freigabelisten öffentliche STACKIT-IPs erhalten.

  • Privates DNS

    Namen, die nur der AWS-VPC-Resolver beantwortet, brauchen einen eigenen DNS-Server. StackToIT zeigt, wo die Quelle darauf angewiesen ist.

  • Projekt oder Network Area

    Ob das Zielprojekt in einer Network Area liegt, ändert Routing und Cluster-Platzierung. Der Lauf hält es daher als Entscheidung vor dem Pilot fest.

Was aus dem Netzwerk des Retail Store wurde

Das Community-VPC-Modul des veröffentlichten Laufs, Ressourcengruppe für Ressourcengruppe.

AWS-RessourcenIm LaufBei STACKIT
VPC1 EinheitNetwork Area und Netzwerke
Subnetze7 im Modul; „private“ und „public“ sind aktiv, fünf weitere sind abgeschaltetJe ein STACKIT-Netzwerk für die zwei aktiven; die übrigen würden zu Netzwerken, wenn sie aktiviert würden
NAT-Gateway und seine Adresse1 Gateway, als einzelnes NAT gesetztAusgehendes Routing des STACKIT-Netzwerks; die Adresse gehört dem Netzwerk
Internet-Gateway1Das Standard-Gateway des STACKIT-Netzwerks
Routing-Tabellen6; „private“ und „public“ sind aktivStandard-Routing des Netzwerks
Network ACLs7, in der Quelle alle abgeschaltetWürden zu Security Groups, da STACKIT keine zustandslosen ACLs hat
Security Groups15: 7 entworfen, 5 für verwaltete Datendienste, 3 abgeschaltetSTACKIT-Security-Groups und -Regeln für die 7; die 5 erreichen die Datendienste als Adressen in der Zugriffsliste

Zahlen aus dem veröffentlichten Lauf der AWS Retail Store Sample App; abgeschaltet heißt, dass die Quellkonfiguration die Ressource nicht anlegt.

Weitere Netzwerkentscheidungen, die der Lauf aufwirft

Alle sind vor dem Pilot fällig und haben einen Verantwortlichen.

  • Platzierung der Workloads (Network Architect)

    Ein Kubernetes-Engine-Cluster wird in genau ein Netzwerk gesetzt, und Datenbank, Cache oder Broker nehmen eine Zugriffsliste und keine Netzwerk-ID. Zur Wahl stehen ein Netzwerk für Cluster und Dienste, die Quellnetzwerke mit Platzierung nach Schicht, ein Neuentwurf oder Verbraucher außerhalb des Netzwerks.

  • Pod-Segmentierung (Security Architect)

    Was die fünf Security Groups der Dienste auf Kubernetes bedeuten, lässt sich nicht belegen. Zur Wahl stehen NetworkPolicy aus den Gruppenregeln, eine Security Group auf den Nodes oder keine Segmentierung.

  • Pfad des Load Balancers (Network Architect)

    Ein Target Pool erreicht Ziele über private IPs, und der Cluster gibt keine Node-Adresse an Terraform aus. Ein Workload ist über einen Node Port oder über einen Ingress-Controller erreichbar.

  • Welche Netzwerkinstanz (Platform Architect)

    Der Load Balancer verweist auf ein wiederholtes öffentliches Netzwerk. Die Quelle sagt nicht, welche Instanz gemeint ist, daher wird keine angenommen.

Bewiesen an einer echten AWS-Umgebung

Die AWS Retail Store Sample App, ein öffentliches Terraform-Projekt von AWS, von StackToIT bewertet und vollständig veröffentlicht, genau so, wie der Lauf es geschrieben hat.

Fallstudie ansehen (Englisch)
282
Terraform-Ressourcendefinitionen analysiert
44
Migrationseinheiten identifiziert
38
Zieleinheiten erzeugt, von 52 betrachteten
331
Planschritte erstellt

Fragen aus Netzwerkteams

Hat STACKIT eine VPC?

Nicht als GA-Containerobjekt. Ein Projekt mit seinen Netzwerken bildet die Grenze, und eine Network Area verbindet Netzwerke privat. Die neueren stackit_vpc-Ressourcen sind ein optionales Provider-Feature, das sich noch ändern kann; daher nutzt StackToIT sie nicht.

Bleiben unsere CIDR-Bereiche erhalten?

Ja. Ein Subnetz wird zu einem STACKIT-Netzwerk mit demselben IPv4-Präfix.

Was passiert mit Security Groups?

STACKIT-Security-Groups sind zustandsbehaftet wie die von AWS, einschließlich Regeln, die auf eine andere Gruppe verweisen. StackToIT legt die Regeln daher einzeln neu an.

Werden Network ACLs übernommen?

STACKIT kennt keine zustandslosen Network ACLs. Das Modul im veröffentlichten Lauf definiert sieben, die in der Quelle alle abgeschaltet sind; deshalb hat der Lauf keine entworfen. Wären sie aktiv, würden sie als zustandsbehaftete Security Groups neu gebaut, und das ist ein Neuentwurf.

Warum bekommen die Datenbanken keine Security Group?

Die verwalteten Datendienste von STACKIT haben keine Security Group und beziehen ihre Clients aus einer eigenen Zugriffsliste. Im Lauf wurden fünf Quellgruppen aus diesem Grund nicht entworfen; was sie zuließen, erreicht die Zugriffslisten als Adressen.

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.