AWS TERRAFORM → STACKIT TERRAFORM
AWS Terraform zu STACKIT Terraform
StackToIT liest Ihr AWS-Terraform so, wie Ihre Entwickler es geschrieben haben, mit Modulen und Variablen, und schreibt STACKIT-Provider-Code, den Ihr Plattformteam prüfen, versionieren und über die eigene Pipeline anwenden kann.
Eine echte Konvertierung: Aurora PostgreSQL zu PostgreSQL Flex
Die Orders-Datenbank der AWS Retail Store Sample App, links genau so, wie AWS sie veröffentlicht, rechts genau so, wie StackToIT sie im veröffentlichten Lauf geschrieben hat.
module "orders_rds" {
source = "terraform-aws-modules/rds-aurora/aws"
version = "7.7.1"
name = "${var.environment_name}-orders"
engine = "aurora-postgresql"
engine_version = "15.10"
instance_class = "db.t3.medium"
instances = {
one = {}
}
vpc_id = var.vpc_id
subnets = var.subnet_ids
allowed_security_groups = concat(var.allowed_security_group_ids, [var.orders_security_group_id])
master_password = random_string.orders_db_master.result
create_random_password = false
database_name = "orders"
storage_encrypted = true
apply_immediately = true
skip_final_snapshot = true
create_db_parameter_group = true
db_parameter_group_name = "${var.environment_name}-orders"
db_parameter_group_family = "aurora-postgresql15"
create_db_cluster_parameter_group = true
db_cluster_parameter_group_name = "${var.environment_name}-orders"
db_cluster_parameter_group_family = "aurora-postgresql15"
tags = var.tags
}resource "stackit_postgresflex_instance" "dependencies_orders_rds_this" {
project_id = var.project_id
name = "retail-store-ecs-orders"
version = "15"
flavor_id = "2.4"
storage = {
class = var.postgresflex_storage_class
size = var.orders_rds_storage_size
}
backup_schedule = "0 2 * * *"
network = {
acl = coalescelist(var.orders_rds_allowed_cidrs, stackit_ske_cluster.retail_app_ecs_cluster.egress_address_ranges)
access_scope = var.orders_rds_access_scope == "SNA" ? "SNA" : null
}
retention_days = 32
}Engine und Version übernommen
Aus aurora-postgresql 15 wird eine PostgreSQL-Flex-Instanz in Version 15, benannt nach der Quelle.
Netzwerkzugriff aus dem Graphen
Standardmäßig stammt die ACL der Datenbank aus den Egress-Bereichen des SKE-Clusters, der die ECS-Dienste ersetzt. So erreichen nur die Workloads die Datenbank.
Zu entscheidende Werte werden Variablen
Speicherklasse und -größe sind Eingaben mit benannter Herkunft, keine erfundenen Standardwerte. Ihr Team setzt sie einmal, und der nächste Lauf liest sie ein.
Jedes Attribut erfasst
Von den 27 relevanten Attributen dieses Aurora-Clusters wird jedes verbraucht, einem STACKIT-Vertrag zugeordnet oder als nicht übernommen benannt. Keines bleibt unerfasst.
So funktioniert die Konvertierung
Umgebung auflösen
Root-Module, Child-Module aus der Terraform Registry, Variablen sowie count- und for_each-Expansionen werden zu einem Abhängigkeitsgraphen.
Pro Ressource entscheiden
Eine versionierte Regelbasis gibt jeder Ressource ein STACKIT-Ziel und eine Migrationsklasse, abhängig von ihrer tatsächlichen Konfiguration.
STACKIT-Code schreiben
Dateien pro Bereich: Netzwerk, Daten, Identität, Kubernetes, Load Balancing, Messaging, Sicherheit und Observability, dazu Variablen und festgelegte Provider-Versionen.
Validieren und nachverfolgen
Statische Validierung mit OpenTofu gegen den festgelegten STACKIT-Provider und Trace-IDs vom STACKIT-Code zurück zu jeder Quellressource.
Was in terraform/ entsteht
Das STACKIT-Terraform des Retail-Store-Laufs, so gegliedert, wie ein Plattformteam es pflegt.
- network.tf
- STACKIT-Netzwerke für die bisherige VPC und ihre Subnetze
- data.tf
- PostgreSQL Flex, MariaDB, Key Value Store, OpenSearch und MongoDB Flex
- kubernetes.tf
- SKE-Cluster und Node Pool für die ECS-Workloads
- identity.tf
- Service Accounts und Rollenzuweisungen für die bisherigen IAM-Rollen
- loadbalancing.tf
- STACKIT Application Load Balancer
- messaging.tf
- STACKIT RabbitMQ für Amazon MQ
- security.tf
- Security Groups und Regeln
- observability.tf
- STACKIT Logs
- variables.tf
- Jeder Wert, den Ihr Team festlegt, mit Herkunft
- terraform.tf
- Festgelegter STACKIT-Provider
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 Plattformteams
Konvertiert StackToIT Terraform-Module?
Ja. StackToIT löst Registry- und lokale Module auf, auch die Community-Module für AWS, und ordnet die Ressourcen zu, die sie erzeugen. Die Konvertierung oben stammt aus dem Modul terraform-aws-modules/rds-aurora.
Funktioniert das mit OpenTofu?
Ja. StackToIT liest Terraform- und OpenTofu-Root-Module und validiert den STACKIT-Code statisch mit OpenTofu.
Wer wendet das STACKIT-Terraform an?
Ihr Team, über Ihre eigene Pipeline, nachdem Ihre Architekten es geprüft haben. StackToIT ändert nichts in einer Cloud.
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.