HUAWEI CLOUD OBS → STACKIT OBJECT STORAGE · TUTORIAL
Huawei OBS naar STACKIT Object Storage, uitgewerkt
Een OBS-bucket wordt een STACKIT Object Storage-bucket met een S3-API: clients wijzigen eindpunt en inloggegevens en de instellingen voor lifecycle, replicatie en toegang worden beoordeeld. Deze tutorial voert StackToIT uit op drie buckets en een encryptiesleutel, laat zien wat de run benoemt en ordent en zet daarna elke OBS-instelling van de demo naast wat de STACKIT-documentatie vermeldt, zodat u weet waar het echte werk zit voordat de eerste byte wordt gekopieerd.
Drie buckets en een sleutel als invoer
Een kleine Huawei Cloud-omgeving, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld. Links de mediabucket met versiebeheer, CORS, lifecycleregels en server-side encryptie, rechts een publieke websitebucket en een logbucket.
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"
}Wat de run heeft vastgelegd
Fragmenten van assessment.json met de waarden precies zoals de run ze schreef. Links de mediabucket, rechts de encryptiesleutel waarvan die afhangt.
{
"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."
}
}Dezelfde reden voor elke bucket
De websitebucket en de logbucket krijgen dezelfde klasse, hetzelfde doel en dezelfde reden als de mediabucket. De run oordeelt niet over afzonderlijke bucketinstellingen; de run benoemt ze.
Instellingen benoemd, niet beoordeeld
De mediabucket heeft 20 instellingen die de run voor uw architecten opsomt, waaronder acl, versioning, encryption, kms_key_id, cors_rule.allowed_origins, lifecycle_rule.transition.storage_class en tags. De websitebucket heeft er 4, waaronder website.index_document; de logbucket 3.
Drie STACKIT-objecten per bucket
Het doel voor een bucket is een bucket, een credentials group en een credential. De inloggegevens zijn nieuw: van de OBS-toegangssleutels wordt niets overgenomen.
De sleutel verhuist niet
Sleutelmateriaal van de bron gaat niet mee, dus data die ermee is versleuteld, wordt op het doel opnieuw versleuteld. De sleutel is een eenheid op zich met STACKIT KMS als doel.
De volgorde en de open databeslissing
Uit technical-sequencing.md en data-movement.md van dezelfde run. De mediabucket wacht op de sleutel; de andere twee buckets hangen van niets af.
## 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 |Mechanisme onbeslist, met opzet
De run noemt de drie buckets stateful eenheden en legt het mechanisme vast als UNKNOWN met de status DECISION REQUIRED. Omvang, wijzigingsfrequentie, toegestane downtime en herstelpunt staan niet in de Terraform en zijn daarom als niet bekend aangemerkt.
De sleutel is geen data-eenheid
De encryptiesleutel staat niet als stateful vermeld. De data die de sleutel beschermt, wordt opnieuw versleuteld wanneer de mediabucket wordt gekopieerd, dus plan die stap samen met de mediabucket.
Eigenaren
De drie buckets vormen één werkpakket met de Storage Architect als eigenaar; de sleutel is een eigen werkpakket waarvan de run de eigenaar niet vermeldt.
Zo wordt de omgeving gekoppeld
| Huawei Cloud-resource | STACKIT-doel | Migratieklasse |
|---|---|---|
| OBS-bucket (media, website, logs) | STACKIT Object Storage: bucket, credentials group, credential | Herconfiguratie |
| KMS-sleutel | STACKIT KMS: key ring en sleutel | Herconfiguratie |
Klassen zoals de run ze heeft bepaald, allemaal met zekerheidsniveau MEDIUM. De KMS-sleutel en twee van de buckets gaan over in golf 1, de mediabucket in golf 2.
Wat elke OBS-instelling op STACKIT vergt
De run noemt deze instellingen; deze tabel zet ze naast de STACKIT-pagina's die onder de bronnen staan. "Vermeld" betekent dat de pagina de bewerking noemt; een bewerking die niet wordt vermeld, is een vraag aan STACKIT en geen antwoord.
| OBS-instelling in de demo | Wat de STACKIT-documentatie vermeldt | Wat te beslissen |
|---|---|---|
| versioning = true | Versiebeheer wordt vermeld (get en put). Een enkel object kan maximaal 1.000 versies hebben. | Schakel versiebeheer in op de nieuwe bucket vóór de kopie. Controleer of uw kopieertool oudere versies meeneemt of alleen de huidige. |
| lifecycle_rule with expiration days and noncurrent_version_expiration | Lifecycle wordt vermeld. De referentie beschrijft het verlopen van huidige versies (dagen of datum) en het verlopen van niet-huidige versies. | Maak deze regels opnieuw aan; ze hebben een directe tegenhanger. |
| lifecycle_rule transitions to WARM and COLD | De lifecyclereferentie noemt geen transitieactie. | Beslis of de data in één klasse blijft of op een andere manier verloopt of wordt gearchiveerd. Dit is de grootste ontwerpwijziging in de demo. |
| storage_class STANDARD, WARM, COLD (Huawei: Standard, Infrequent Access, Archive) | De pagina's die voor deze gids zijn gelezen, beschrijven geen opslagklassen. | Laat de instelling vallen en bereken de kosten opnieuw voor de data die in de goedkopere klassen stond. |
| cors_rule | CORS wordt vermeld (get, put, delete) en de documentatie heeft een CORS-handleiding. | Maak de regel opnieuw aan met de origins die na de verhuizing gelden. |
| acl = public-read and the website block | Bucket-ACL's worden alleen als get vermeld en er wordt geen bewerking voor websiteconfiguratie genoemd. Bucketbeleid wordt vermeld (get, put, delete), met een handleiding. | Bevestig bij STACKIT hoe een publieke statische site wordt geserveerd voordat u erop rekent; serveer de site anders vanaf een andere front-end en houd de bucket privé. |
| acl = log-delivery-write | Er wordt geen bewerking voor bucketlogging vermeld. | Kies een andere manier om toegangslogs te verzamelen, bijvoorbeeld aan de front-end of in de applicatie. |
| encryption = true with sse_algorithm = kms and kms_key_id | Encryptie wordt vermeld (get, put, delete). De encryptiehandleiding geeft aan dat alle opgeslagen data in rust wordt versleuteld met AES256 en beschrijft server-side encryptie per object met sleutels die door de opslagbackend worden beheerd of met een sleutel die u zelf aanlevert (SSE-C); STACKIT KMS wordt niet genoemd. | Beslis eerst over het encryptiemodel: de OBS-sleutel verhuist niet, dus de data wordt bij het binnenkomen opnieuw versleuteld. |
| bucketnamen | 3 tot 63 tekens; letters, cijfers en koppeltekens; uniek in het hele systeem en niet alleen in uw project; punten worden afgeraden. | Controleer of elke naam vrij is. STACKIT raadt punten af, dus geef namen met punten (gebruikelijk bij websitebuckets) een nieuwe naam. |
Bronzijde: de documentatie van de Terraform-provider voor huaweicloud_obs_bucket (opslagklassen, ACL-waarden, website, logging, lifecycle). Doelzijde: de STACKIT-pagina's in de bronnenlijst.
Eén bucket verplaatsen, op volgorde
De run legt de volgorde tussen eenheden vast; dit is de volgorde binnen een bucket. Stap 1 tot en met 4 zijn voorbereiding, 5 en 6 verplaatsen data, 7 sluit de verplaatsing af.
Object Storage inschakelen in het doelproject
De credentials group en het credential die de run noemt, worden hier aangemaakt. Als algemene praktijk gebruikt u één credentials group per applicatie, zodat een sleutel kan worden ingetrokken zonder andere te raken.
De buckets aanmaken
Gebruik de namen die u hebt gecontroleerd. Het project staat tot 1.000 buckets toe.
Versiebeheer, lifecycle, CORS, beleid en encryptie opnieuw aanmaken
Gebruik de tabel hierboven als checklist. Doe dit vóór de eerste kopie, zodat de objecten onder de definitieve regels aankomen.
Het overdrachtsvenster afspreken
Quota en snelheid gelden per project: het gedocumenteerde plafond is 500 MB/s voor up- en download. Als rekensom: 10 TB met die snelheid duurt minstens zo'n 5,6 uur; beschouw dat als ondergrens.
De eerste kopie uitvoeren terwijl de bron live blijft
De rclone-tutorial van STACKIT kopieert met rclone copy tussen twee S3-remotes en het STACKIT-eindpunt voor eu01. rclone heeft ook een Huawei OBS-provider waarvan de eindpunten obs.<region>.myhuaweicloud.com volgen. Dit zijn voorbeelden van veelgebruikte tooling; de engine voert ze niet uit.
De kopie herhalen en dan overschakelen
Voer de kopie opnieuw uit om wijzigingen op te halen, stop de schrijvers, voer de kopie een laatste keer uit en schakel clients om naar het nieuwe eindpunt en de nieuwe inloggegevens. Deze volgorde is algemene praktijk en niet iets wat de run voor u plant.
Controleren en uitfaseren
Vergelijk aantallen en groottes van objecten, houd de bron alleen-lezen tot de applicatie-eigenaar akkoord geeft en faseer daarna de bronbucket en de OBS-sleutels uit.
Beslissingen die de architecten zelf nemen
Publieke website
Of de sitebucket een object-storagesite blijft of achter een andere front-end gaat.
Goedkopere klassen
Wat WARM en COLD vervangt en wat dat doet met de kosten van het mediaarchief.
Encryptiemodel
Vertrouw op encryptie in rust, voeg server-side encryptie toe met door de backend beheerde sleutels of gebruik SSE-C met een sleutel die u zelf beheert, bijvoorbeeld in Secrets Manager. De handleiding die voor deze pagina is gelezen, beschrijft geen STACKIT KMS-sleutels voor buckets; leg het voor aan STACKIT voordat u erop plant.
Cutovermethode
Big-bang of per prefix; wat clients kunnen verdragen terwijl het eindpunt verandert.
Vragen van opslagteams
Kopieert StackToIT de objecten?
Nee. Het leest Terraform, classificeert de buckets en noemt ze als stateful eenheden waarvan u het datamechanisme bepaalt. Niets in de run verplaatst data of maakt verbinding met een cloudaccount.
Hebben onze applicaties codewijzigingen nodig?
Meestal een configuratiewijziging: het doel is een S3-API, dus clients wijzigen eindpunt, inloggegevens en, waar ze die gebruiken, bucketnamen. Alles wat steunt op OBS-specifiek gedrag of op functies die de tabel hierboven als open aanmerkt, verdient nadere aandacht.
Waarom gaat de mediabucket na de websitebucket over?
De mediabucket verwijst naar de KMS-sleutel, dus de run plaatst die één golf later. De website- en logbuckets verwijzen nergens naar en staan daarom in golf 1 naast de sleutel.
Is een lifecycletransitie naar een archiefklasse beschikbaar op STACKIT?
De lifecyclereferentie beschrijft het verlopen van huidige en niet-huidige versies en noemt geen transitieactie. Controleer de actuele pagina en leg het aan STACKIT voor als archivering via lifecycle een eis is.
Bronnen
- Terraform Registry: huaweicloud_obs_bucket (provider 1.100.0)
- STACKIT-documentatie: Manage encryption
- STACKIT-documentatie: Object Storage limits
- STACKIT-documentatie: Supported operations on buckets and objects
- STACKIT-documentatie: Life cycle configuration
- STACKIT-documentatie: Migrate data with rclone
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.