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.

Mediabucketmain.tf
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"
  }
}
Website- en logbucketsmain.tf
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.

Mediabucketassessment.json
{
  "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."
  }
}
Encryptiesleutelassessment.json
{
  "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.

Golvenmigration/technical-sequencing.md
## 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 |
Stateful eenhedenmigration/data-movement.md
| 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-resourceSTACKIT-doelMigratieklasse
OBS-bucket (media, website, logs)STACKIT Object Storage: bucket, credentials group, credentialHerconfiguratie
KMS-sleutelSTACKIT KMS: key ring en sleutelHerconfiguratie

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 demoWat de STACKIT-documentatie vermeldtWat te beslissen
versioning = trueVersiebeheer 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_expirationLifecycle 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 COLDDe 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_ruleCORS 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 blockBucket-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-writeEr 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_idEncryptie 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.
bucketnamen3 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.

  1. 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.

  2. De buckets aanmaken

    Gebruik de namen die u hebt gecontroleerd. Het project staat tot 1.000 buckets toe.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

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

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring