HUAWEI CLOUD OBS → STACKIT OBJECT STORAGE · TUTORIAL
Huawei OBS zu STACKIT Object Storage am Beispiel
Ein OBS-Bucket wird zu einem STACKIT-Object-Storage-Bucket mit S3-API: Clients ändern Endpunkt und Zugangsdaten, Lifecycle-, Replikations- und Zugriffseinstellungen werden geprüft. Dieses Tutorial wendet StackToIT auf drei Buckets und einen Verschlüsselungsschlüssel an, zeigt, was der Lauf benennt und ordnet, und gleicht dann jede OBS-Einstellung des Beispiels mit dem ab, was die STACKIT-Dokumentation aufführt. So wissen Sie, wo die eigentliche Arbeit liegt, bevor das erste Byte kopiert wird.
Drei Buckets und ein Schlüssel als Eingabe
Eine kleine Huawei-Cloud-Umgebung, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links der Media-Bucket mit Versionierung, CORS, Lifecycle-Regeln und serverseitiger Verschlüsselung. Rechts ein öffentlicher Website-Bucket und ein Log-Bucket.
resource "huaweicloud_obs_bucket" "media" {
bucket = "acme-media"
storage_class = "STANDARD"
acl = "private"
versioning = true
encryption = true
sse_algorithm = "kms"
kms_key_id = huaweicloud_kms_key.obs.id
cors_rule {
allowed_origins = ["https://www.acme.example"]
allowed_methods = ["GET", "HEAD"]
allowed_headers = ["*"]
expose_headers = ["ETag"]
max_age_seconds = 3000
}
lifecycle_rule {
name = "archive-originals"
prefix = "originals/"
enabled = true
transition {
days = 60
storage_class = "WARM"
}
transition {
days = 180
storage_class = "COLD"
}
expiration {
days = 1095
}
}
lifecycle_rule {
name = "old-versions"
enabled = true
noncurrent_version_expiration {
days = 90
}
}
tags = {
team = "web"
}
}resource "huaweicloud_obs_bucket" "site" {
bucket = "acme-site"
acl = "public-read"
website {
index_document = "index.html"
error_document = "error.html"
}
}
resource "huaweicloud_obs_bucket" "logs" {
bucket = "acme-logs"
storage_class = "WARM"
acl = "log-delivery-write"
}Was der Lauf festgehalten hat
Auszüge aus assessment.json, die Werte genau so, wie der Lauf sie geschrieben hat. Links der Media-Bucket, rechts der Verschlüsselungsschlüssel, von dem er abhängt.
{
"id": "huaweicloud_obs_bucket.media",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Object Storage",
"resources": [
"stackit_objectstorage_bucket",
"stackit_objectstorage_credentials_group",
"stackit_objectstorage_credential"
]
},
"reason": "An OBS bucket becomes a STACKIT Object Storage bucket with an S3 API. Clients change endpoint and credentials; lifecycle, replication and access settings need review."
}
}{
"id": "huaweicloud_kms_key.obs",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT KMS",
"resources": [
"stackit_kms_keyring",
"stackit_kms_key"
]
},
"reason": "A KMS key becomes a STACKIT KMS key. Key material of the source does not move, so data encrypted with it is re-encrypted."
}
}Gleiche Begründung für jeden Bucket
Website- und Log-Bucket erhalten dieselbe Klasse, dasselbe Ziel und dieselbe Begründung wie der Media-Bucket. Der Lauf beurteilt einzelne Bucket-Einstellungen nicht; er benennt sie.
Einstellungen benannt, nicht bewertet
Beim Media-Bucket listet der Lauf 20 Einstellungen für Ihre Architekten, darunter acl, versioning, encryption, kms_key_id, cors_rule.allowed_origins, lifecycle_rule.transition.storage_class und tags. Der Website-Bucket hat 4, darunter website.index_document; der Log-Bucket 3.
Drei STACKIT-Objekte je Bucket
Das Ziel eines Buckets besteht aus Bucket, Credentials Group und Credential. Die Zugangsdaten sind neu: Von den OBS-Zugriffsschlüsseln wird nichts übernommen.
Der Schlüssel zieht nicht um
Schlüsselmaterial der Quelle wird nicht übertragen, daher werden damit verschlüsselte Daten im Ziel neu verschlüsselt. Der Schlüssel ist eine eigene Einheit mit STACKIT KMS als Ziel.
Reihenfolge und offene Datenentscheidung
Aus technical-sequencing.md und data-movement.md desselben Laufs. Der Media-Bucket wartet auf den Schlüssel; die beiden anderen Buckets hängen von nichts ab.
## Wave 1 — 3 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_kms_key.obs` | RECONFIGURE / MEDIUM | STACKIT KMS |
| `huaweicloud_obs_bucket.logs` | RECONFIGURE / MEDIUM | STACKIT Object Storage |
| `huaweicloud_obs_bucket.site` | RECONFIGURE / MEDIUM | STACKIT Object Storage |
## Wave 2 — 1 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_obs_bucket.media` | RECONFIGURE / MEDIUM | STACKIT Object Storage || Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| huaweicloud_obs_bucket.logs | huaweicloud_obs_bucket | STACKIT Object Storage | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_obs_bucket.media | huaweicloud_obs_bucket | STACKIT Object Storage | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_obs_bucket.site | huaweicloud_obs_bucket | STACKIT Object Storage | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |Verfahren bewusst offen
Der Lauf führt die drei Buckets als zustandsbehaftete Einheiten und hält das Verfahren als UNKNOWN mit dem Stand DECISION REQUIRED fest. Größe, Änderungsrate, tolerierte Ausfallzeit und Wiederanlaufpunkt stehen nicht im Terraform und sind daher als unbekannt vermerkt.
Der Schlüssel ist keine Dateneinheit
Der Verschlüsselungsschlüssel ist nicht als zustandsbehaftet gelistet. Die damit geschützten Daten werden beim Kopieren des Media-Buckets neu verschlüsselt; planen Sie diesen Schritt zusammen mit dem Media-Bucket.
Verantwortliche
Die drei Buckets bilden ein Arbeitspaket beim Storage Architect; der Schlüssel ist ein eigenes Paket, dessen Verantwortlichen der Lauf offen lässt.
So wird die Umgebung zugeordnet
| Huawei-Cloud-Ressource | STACKIT-Ziel | Migrationsklasse |
|---|---|---|
| OBS-Bucket (Media, Website, Logs) | STACKIT Object Storage: Bucket, Credentials Group, Credential | Rekonfigurieren |
| KMS-Schlüssel | STACKIT KMS: Key Ring und Schlüssel | Rekonfigurieren |
Klassen, wie der Lauf sie entschieden hat, jeweils mit Konfidenz MEDIUM. Der KMS-Schlüssel und zwei der Buckets ziehen in Welle 1 um, der Media-Bucket in Welle 2.
Was jede OBS-Einstellung bei STACKIT braucht
Der Lauf benennt diese Einstellungen; die Tabelle gleicht sie mit den STACKIT-Seiten aus der Quellenliste ab. „Aufgeführt“ heißt, die Seite führt die Operation auf. Eine nicht aufgeführte Operation ist eine Frage an STACKIT, keine Antwort.
| OBS-Einstellung im Beispiel | Was die STACKIT-Dokumentation aufführt | Was zu entscheiden ist |
|---|---|---|
| versioning = true | Versionierung ist aufgeführt (get und put). Ein Objekt kann höchstens 1.000 Versionen haben. | Versionierung im neuen Bucket vor dem Kopieren aktivieren. Prüfen Sie, ob Ihr Kopierwerkzeug ältere Versionen mitnimmt oder nur aktuelle. |
| lifecycle_rule mit Ablauf in Tagen und noncurrent_version_expiration | Lifecycle ist aufgeführt. Die Referenz beschreibt den Ablauf aktueller Versionen (Tage oder Datum) und den Ablauf nicht aktueller Versionen. | Diese Regeln neu anlegen; sie haben ein direktes Gegenstück. |
| lifecycle_rule mit Übergängen nach WARM und COLD | Die Lifecycle-Referenz führt keine Übergangsaktion auf. | Entscheiden Sie, ob die Daten in einer Klasse bleiben oder auf anderem Weg ablaufen oder archiviert werden. Das ist die größte Designänderung im Beispiel. |
| storage_class STANDARD, WARM, COLD (Huawei: Standard, Infrequent Access, Archive) | Die für diesen Leitfaden gelesenen Seiten beschreiben keine Speicherklassen. | Einstellung streichen und die Daten, die in den günstigeren Klassen lagen, neu kalkulieren. |
| cors_rule | CORS ist aufgeführt (get, put, delete), und die Dokumentation hat eine eigene CORS-Anleitung. | Regel mit den nach dem Umzug gültigen Origins neu anlegen. |
| acl = public-read und der website-Block | Bucket-ACLs sind nur lesend (get) aufgeführt, eine Website-Konfiguration ist nicht aufgeführt. Bucket Policies sind aufgeführt (get, put, delete), mit Anleitung. | Klären Sie mit STACKIT, wie eine öffentliche statische Seite ausgeliefert wird, bevor Sie sich darauf verlassen; andernfalls liefern Sie die Seite über ein anderes Frontend aus und halten den Bucket privat. |
| acl = log-delivery-write | Eine Bucket-Logging-Operation ist nicht aufgeführt. | Anderen Weg für Zugriffslogs wählen, etwa am Frontend oder in der Anwendung. |
| encryption = true mit sse_algorithm = kms und kms_key_id | Verschlüsselung ist aufgeführt (get, put, delete). Laut Verschlüsselungsanleitung sind alle gespeicherten Daten im Ruhezustand mit AES256 verschlüsselt; zusätzlich gibt es serverseitige Verschlüsselung je Objekt mit vom Speicher-Backend verwalteten Schlüsseln oder mit einem selbst bereitgestellten Schlüssel (SSE-C). STACKIT KMS erwähnt die Anleitung nicht. | Zuerst das Verschlüsselungsmodell festlegen: Der OBS-Schlüssel zieht nicht um; die Daten werden daher beim Einspielen neu verschlüsselt. |
| Bucket-Namen | 3 bis 63 Zeichen; Buchstaben, Ziffern und Bindestriche; systemweit eindeutig, nicht nur im Projekt; Punkte werden nicht empfohlen. | Jeden Namen auf Verfügbarkeit prüfen. STACKIT rät von Punkten ab; Namen mit Punkten, wie sie bei Website-Buckets üblich sind, erhalten daher einen neuen Namen. |
Quellseite: die Terraform-Provider-Dokumentation zu huaweicloud_obs_bucket (Speicherklassen, ACL-Werte, Website, Logging, Lifecycle). Zielseite: die STACKIT-Seiten der Quellenliste.
Einen Bucket umziehen, der Reihe nach
Die Reihenfolge zwischen den Einheiten legt der Lauf fest; dies ist die Reihenfolge innerhalb eines Buckets. Schritte 1 bis 4 bereiten vor, 5 und 6 übertragen Daten, 7 schließt den Umzug ab.
Object Storage im Zielprojekt aktivieren
Hier entstehen die vom Lauf benannte Credentials Group und das Credential. Als allgemeine Praxis: eine Credentials Group je Anwendung, damit ein Schlüssel zurückgezogen werden kann, ohne andere zu berühren.
Buckets anlegen
Verwenden Sie die geprüften Namen. Ein Projekt erlaubt bis zu 1.000 Buckets.
Versionierung, Lifecycle, CORS, Policy und Verschlüsselung neu anlegen
Die Tabelle oben dient als Checkliste. Tun Sie das vor dem ersten Kopieren, damit die Objekte unter den endgültigen Regeln ankommen.
Übertragungsfenster vereinbaren
Quota und Rate gelten je Projekt: Die dokumentierte Obergrenze liegt bei 500 MB/s für Up- und Download. Rechnerisch brauchen 10 TB bei dieser Rate mindestens etwa 5,6 Stunden; verstehen Sie das als Untergrenze.
Erste Kopie bei laufender Quelle
Das rclone-Tutorial von STACKIT kopiert mit rclone copy zwischen zwei S3-Remotes und dem STACKIT-Endpunkt für eu01. rclone hat außerdem einen Huawei-OBS-Provider, dessen Endpunkte dem Muster obs.<Region>.myhuaweicloud.com folgen. Das sind Beispiele verbreiteter Werkzeuge; die Engine führt sie nicht aus.
Kopie wiederholen, dann umstellen
Kopieren Sie erneut, um Änderungen aufzunehmen, stoppen Sie alle schreibenden Clients, kopieren Sie ein letztes Mal und stellen Sie die Clients auf den neuen Endpunkt und die neuen Zugangsdaten um. Diese Abfolge ist allgemeine Praxis, nichts, was der Lauf für Sie plant.
Prüfen und stilllegen
Vergleichen Sie Objektzahl und Größe, halten Sie die Quelle schreibgeschützt, bis der Anwendungsverantwortliche abnimmt, und legen Sie dann Quell-Bucket und OBS-Schlüssel still.
Entscheidungen, die Ihre Architekten treffen
Öffentliche Website
Ob der Website-Bucket eine Object-Storage-Seite bleibt oder hinter ein anderes Frontend zieht.
Günstigere Klassen
Was WARM und COLD ersetzt und was das für die Kosten des Media-Archivs bedeutet.
Verschlüsselungsmodell
Sich auf die Verschlüsselung im Ruhezustand verlassen, zusätzlich serverseitige Verschlüsselung mit vom Backend verwalteten Schlüsseln nutzen oder SSE-C mit einem Schlüssel verwenden, den Sie selbst halten, etwa im Secrets Manager. Die für diese Seite gelesene Anleitung beschreibt keine STACKIT-KMS-Schlüssel für Buckets; klären Sie das mit STACKIT, bevor Sie damit planen.
Cutover-Verfahren
Alles auf einmal oder nach Präfix; was die Clients aushalten, während sich der Endpunkt ändert.
Fragen von Storage-Teams
Kopiert StackToIT die Objekte?
Nein. StackToIT liest Terraform, stuft die Buckets ein und führt sie als zustandsbehaftete Einheiten, deren Datenverfahren Sie festlegen. Nichts im Lauf überträgt Daten oder verbindet sich mit einem Cloud-Konto.
Brauchen unsere Anwendungen Codeänderungen?
Meist reicht eine Konfigurationsänderung: Das Ziel ist eine S3-API, Clients ändern also Endpunkt, Zugangsdaten und, wo sie verwendet werden, Bucket-Namen. Was sich auf OBS-spezifisches Verhalten oder auf die in der Tabelle als offen markierten Funktionen stützt, braucht einen genaueren Blick.
Warum zieht der Media-Bucket nach dem Website-Bucket um?
Er verweist auf den KMS-Schlüssel, daher legt der Lauf ihn eine Welle später. Website- und Log-Bucket verweisen auf nichts und liegen daher in Welle 1 neben dem Schlüssel.
Gibt es bei STACKIT einen Lifecycle-Übergang in eine Archivklasse?
Die Lifecycle-Referenz beschreibt den Ablauf aktueller und nicht aktueller Versionen und führt keine Übergangsaktion auf. Prüfen Sie die aktuelle Seite und fragen Sie STACKIT, wenn Archivierung per Lifecycle eine Anforderung ist.
Quellen
- Terraform Registry: huaweicloud_obs_bucket (Provider 1.100.0)
- STACKIT-Dokumentation: Verschlüsselung verwalten
- STACKIT-Dokumentation: Limits von Object Storage
- STACKIT-Dokumentation: Unterstützte Operationen auf Buckets und Objekten
- STACKIT-Dokumentation: Lifecycle-Konfiguration
- STACKIT-Dokumentation: Daten mit rclone migrieren
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.