HUAWEI CLOUD RDS → STACKIT · LEITFADEN
Huawei Cloud RDS zu STACKIT Managed Databases
Huawei Cloud RDS ist kein einheitliches Migrationsobjekt: Der db.type jeder Instanz bestimmt das Ziel. PostgreSQL geht nach PostgreSQL Flex, MariaDB nach MariaDB, SQL Server nach SQLServer Flex, und auch MySQL nach MariaDB, weil STACKIT MariaDB anbietet und kein MySQL. Im Beispiellauf werden vier RDS-Instanzen zu vier REPLATFORM-Einheiten mit MEDIUM-Konfidenz, alle in Welle 3 hinter den Netzwerkeinheiten. Der Lauf nennt je Instanz das Ziel und einen Dump- oder Restore-Weg; Datenmechanismus, Ausfallzeit und Rückweg bleiben bei Ihrem Datenbankteam.
Die Datenbankmigration in acht Schritten
1. Jede Instanz inventarisieren
Terraform zeigt Engine, Version, Flavor, Hochverfügbarkeitsmodus, Volume und Backup-Fenster. Es zeigt nicht, welche Funktionen Ihre Anwendungen nutzen, wie groß die Daten sind und wer sich verbindet. Tragen Sie das neben den Dateien zusammen, bevor Sie bewerten.
2. Bewerten und zuerst die Datendatei lesen
Führen Sie stacktoit assess auf dem Root-Modul aus. Öffnen Sie assessment.json für Klasse, Ziel und Begründung, danach migration/data-movement.md: Jede RDS-Instanz steht dort als zustandsbehaftete Einheit mit dem Status DECISION_REQUIRED und dem Mechanismus UNKNOWN.
3. Das Ziel je Engine festlegen
Nutzen Sie die Tabelle unten. Sorgfalt braucht MySQL: Der Lauf hält fest, dass STACKIT MariaDB anbietet und kein MySQL; MySQL-spezifische Funktionen sind also vor dem Umschalten zu testen.
4. Das Netzwerk bauen, von dem die Datenbanken abhängen
Die VPC und die Security Group sind Welle 1, das Subnetz Welle 2, alle vier Datenbanken Welle 3. Legen Sie zuerst die STACKIT-Netzwerke und die Regeln für die Datenbankports an. STACKIT-Security-Group-Regeln erlauben nur Verkehr.
5. Zielinstanzen anlegen und dimensionieren
Aus einem Huawei-Flavor wird ein Flex-Flavor oder ein STACKIT-Plan; die Zielgröße wählen Sie also selbst. Für PostgreSQL Flex werden Speichergröße und Performance-Klasse laut Architekturseite getrennt gewählt, und die Performance-Klasse lässt sich nach dem Anlegen nicht mehr ändern. Wählen Sie sie bewusst, und schalten Sie, wie es die PostgreSQL-Flex-Übersicht empfiehlt, für Produktionsinstanzen den Instanzschutz ein, den die seit 1. August 2026 allgemein verfügbare API v3 mitbringt.
6. Den Datenumzug proben
Kopieren Sie einen echten Datenbestand, messen Sie die Dauer und vergleichen Sie Zeilenzahlen oder Prüfsummen. Für PostgreSQL nennt der Lauf pg_dump und pg_restore oder logische Replikation, für MariaDB und MySQL einen logischen Dump, für SQL Server Backup und Restore. Das sind die Wege, die der Lauf nennt; Sie entscheiden und messen.
7. Mit Rückweg umschalten
Schreibzugriffe anhalten, die letzte Kopie ziehen, Connection Strings umstellen und die Huawei-Instanz behalten, bis Ihre Prüfungen bestehen. Nach dem Umschalten existieren neue Schreibvorgänge nur noch auf STACKIT; klären Sie vorab, ob der Rückweg eine Rückkopie oder einen hingenommenen Verlust bedeutet. Der Plan überlässt das der Person, die den Schritt ausführt.
8. Die Quelle stilllegen
Löschen Sie die RDS-Instanz und ihre Backups erst, wenn die nötige Aufbewahrungsfrist verstrichen ist. Die MariaDB-10.5-Instanz des Beispiels sollte direkt auf 10.11 oder neuer landen: Stand November 2026 hat STACKIT MariaDB 10.6 abgekündigt, will die Version am 1. Juli 2027 abschalten und bittet darum, alte Instanzen nach dem Upgrade zu löschen, weil sie sonst weiter Kosten verursachen.
PostgreSQL und MySQL auf RDS, bewertet
Eine kleine Huawei-Cloud-Umgebung, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet: ein Netzwerk, eine Security Group und vier RDS-Instanzen. Links zwei RDS-Blöcke der Eingabe, rechts das Ergebnis, das der Lauf dafür festgehalten hat: ein Auszug aus assessment.json mit den Werten, wie der Lauf sie geschrieben hat. Die Flavor-Codes der Eingabe sind Beispielwerte.
resource "huaweicloud_rds_instance" "orders" {
name = "ledger-orders"
flavor = "rds.pg.n1.large.2.ha"
ha_replication_mode = "async"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a", "eu-west-101b"]
db {
type = "PostgreSQL"
version = "16"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 200
}
backup_strategy {
start_time = "02:00-03:00"
keep_days = 14
}
}
resource "huaweicloud_rds_instance" "crm" {
name = "ledger-crm"
flavor = "rds.mysql.n1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "MySQL"
version = "8.0"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 100
}
}[
{
"id": "huaweicloud_rds_instance.orders",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT PostgreSQL Flex"
},
"reason": "Managed PostgreSQL to managed PostgreSQL: data moves with pg_dump/pg_restore or logical replication, and the flavor becomes a Flex flavor."
}
},
{
"id": "huaweicloud_rds_instance.crm",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT MariaDB"
},
"reason": "STACKIT offers MariaDB, not MySQL; test MySQL-specific features before cut-over, and move the data with a logical dump."
}
}
]Hochverfügbarkeit bauen Sie neu
Die Instanz orders läuft als Primary mit Standby in zwei Zonen. Der Lauf führt Zonen und Backup-Einstellungen unter den Einstellungen auf, die Ihnen überlassen bleiben (14 bei dieser Instanz). Auf STACKIT hat ein Replica Set drei Knoten; die Topologie ist also eine Entwurfsentscheidung und keine Kopie.
MySQL ist die Ausnahme
Die Instanz crm ist MySQL 8.0 und landet auf MariaDB. Die Begründung sagt es offen: MySQL-spezifische Funktionen vor dem Umschalten testen und die Daten mit einem logischen Dump umziehen.
Passwörter bleiben draußen
db.password kommt aus einer sensiblen Variable ohne Wert im Lauf. Der Lauf meldet sie als fehlende Eingabe, fragt nichts ab und braucht das Geheimnis nicht, um die Instanz einzustufen.
MariaDB und SQL Server auf RDS, bewertet
Die beiden übrigen Instanzen desselben Laufs im selben Aufbau.
resource "huaweicloud_rds_instance" "legacy" {
name = "ledger-legacy"
flavor = "rds.mariadb.n1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "MariaDB"
version = "10.5"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 50
}
}
resource "huaweicloud_rds_instance" "reporting" {
name = "ledger-reporting"
flavor = "rds.mssql.2019.se.x1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "SQLServer"
version = "2019_SE"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 100
}
}[
{
"id": "huaweicloud_rds_instance.legacy",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT MariaDB"
},
"reason": "Managed MariaDB to STACKIT MariaDB: data moves with a logical dump, and the flavor becomes a STACKIT plan."
}
},
{
"id": "huaweicloud_rds_instance.reporting",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT SQLServer Flex"
},
"reason": "Managed SQL Server to SQLServer Flex: check the edition and features in use, and move the data with a backup and restore."
}
}
]MariaDB 10.5 landet auf einer neueren Version
Stand November 2026 stuft die STACKIT-Seite zu MariaDB 10.6 als veraltet ein, plant die Abschaltung für den 1. Juli 2027 und empfiehlt 10.11 oder neuer. Eine Quelle mit 10.5 zieht also mit einem Versions-Upgrade um. Testen Sie die Anwendung gegen die Zielversion.
SQL Server braucht eine Funktionsprüfung
Der Lauf verlangt, Edition und genutzte Funktionen zu prüfen. Die STACKIT-Seite führt Replikation, Linked Server, Database Mail, Transparent Data Encryption und FILESTREAM als nicht unterstützt auf und nennt für einen Restore nur den Weg in eine neue Datenbank.
So wird jede RDS-Engine zugeordnet
| RDS-Engine (db.type) | STACKIT-Ziel | Was zu klären ist |
|---|---|---|
| PostgreSQL | PostgreSQL Flex · REPLATFORM | Flex-Flavor, Einzelinstanz oder Replica Set mit drei Knoten, Speicherklasse, Extensions. Daten mit pg_dump und pg_restore oder logischer Replikation. |
| MySQL | MariaDB · REPLATFORM | Laut Lauf bietet STACKIT MariaDB statt MySQL an. MySQL-spezifische Funktionen testen, dann mit einem logischen Dump umziehen. |
| MariaDB | MariaDB · REPLATFORM | Zielversion 10.11 oder neuer, STACKIT-Plan statt Flavor, logischer Dump. |
| SQL Server | SQLServer Flex · REPLATFORM | Edition und genutzte Funktionen, nicht unterstützte Funktionen, Backup und Restore in eine neue Datenbank. |
Ziele und Klassen so, wie der Lauf sie für die vier Instanzen entschieden hat; die rechte Spalte verbindet die Begründungen des Laufs mit der für diese Seite gelesenen STACKIT-Dokumentation. Die Dokumentation des Huawei-Cloud-Providers nennt vier Werte für db.type: MySQL, PostgreSQL, SQLServer und MariaDB.
Vier zustandsbehaftete Einheiten, kein Mechanismus gewählt
Links die Tabelle der zustandsbehafteten Einheiten aus migration/data-movement.md, rechts Welle 3 aus migration/technical-sequencing.md. Beides sind Zeilen, wie der Lauf sie geschrieben hat.
## Stateful source units
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| huaweicloud_rds_instance.crm | huaweicloud_rds_instance | STACKIT MariaDB | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.legacy | huaweicloud_rds_instance | STACKIT MariaDB | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.orders | huaweicloud_rds_instance | STACKIT PostgreSQL Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.reporting | huaweicloud_rds_instance | STACKIT SQLServer Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |## Wave 3 — 4 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_rds_instance.crm` | REPLATFORM / MEDIUM | STACKIT MariaDB |
| `huaweicloud_rds_instance.legacy` | REPLATFORM / MEDIUM | STACKIT MariaDB |
| `huaweicloud_rds_instance.orders` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
| `huaweicloud_rds_instance.reporting` | REPLATFORM / MEDIUM | STACKIT SQLServer Flex |Nichts wird für Sie übertragen
StackToIT überträgt nie Daten. Der Mechanismus bleibt UNKNOWN, bis eine Person ihn nach Datenmenge, tolerierter Ausfallzeit und der nötigen Konsistenz der Anwendung wählt.
NOT_PROVIDED ist eine Einladung
Datenklasse, RPO und Ausfalltoleranz nennen Sie in einer Anwendungsdatei. Bis dahin nimmt der Lauf nichts an.
Entscheidungen, die bei Ihrem Datenbankteam bleiben
Topologie
Einzelinstanz oder Replica Set mit drei Knoten je Datenbank, und in welchen Zonen. Der Standby-Aufbau der Quelle ist eine Eingabe, keine Vorlage.
Version
Die Zielversion je Engine, geprüft gegen das, was die Anwendung unterstützt.
Backups und Wiederherstellung
Die PostgreSQL-Instanz des Beispiels hält 14 Tage Backups vor. Die STACKIT-Seite zu PostgreSQL Flex beschreibt standardmäßig aktive Transaktionslogs und Point-in-Time-Recovery; Aufbewahrung und Restore-Übung legen Sie selbst fest.
Funktionslücken
MySQL-Funktionen ohne MariaDB-Entsprechung, SQL-Server-Funktionen, die die STACKIT-Seite als nicht unterstützt führt, PostgreSQL-Extensions, auf die Sie sich stützen.
Cutover und Rückweg
Das Fenster, die Umstellung der Connection Strings und der Rückweg, je Datenbank vor der ersten Probe aufgeschrieben.
Zuständigkeit
Der Lauf weist die vier Schritte als Ausgangspunkt der Rolle Data Architect zu. Ersetzen Sie sie durch echte Personen.
Fragen aus Datenbankteams
Wohin geht eine Huawei-Cloud-RDS-MySQL-Instanz auf STACKIT?
Der Lauf ordnet sie als REPLATFORM-Einheit STACKIT MariaDB zu und begründet das damit, dass STACKIT MariaDB anbietet, nicht MySQL. Testen Sie MySQL-spezifische Funktionen vor dem Umschalten und ziehen Sie die Daten mit einem logischen Dump um. Die MariaDB-Seite nennt MySQL-Kompatibilität als Merkmal; das macht den Test billig, ersetzt ihn aber nicht.
Kopiert StackToIT die Daten?
Nein. Es führt jede Datenbank als zustandsbehaftete Einheit auf, zeigt den Mechanismus als UNKNOWN und den Status als DECISION_REQUIRED und nennt Wege wie pg_dump und pg_restore. Sie wählen, proben und messen.
Braucht der Lauf die Datenbankpasswörter?
Nein. Der Lauf kommt ohne sie aus: Die nicht gesetzte sensible Variable db_password wird als fehlende Eingabe gemeldet, die Quelle als VARIABLE_UNRESOLVED markiert, und die Antwortvorlage führt sie als Anfrage, die den Entwurf blockiert. Den Wert selbst nimmt die Vorlage nie auf; er käme aus einer Variablendatei oder aus TF_VAR_db_password, und nur, wenn Sie ihn im Lauf haben wollen.
Wird ein STACKIT-Terraform-Entwurf für die Datenbanken geschrieben?
In diesem Build nicht. Der Lauf schreibt terraform.tf, variables.tf und eine README und führt die vier Instanzen als dem Architekten überlassen auf, mit ihren kritischen Einstellungen: 14 bei der PostgreSQL-Instanz und je 11 bei den übrigen.
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.