AZURE BLOB → STACKIT OBJECT STORAGE · HANDLEIDING

Azure Blob Storage naar STACKIT Object Storage

Een storage account met twee containers wordt twee STACKIT-buckets. Deze handleiding voert StackToIT uit op een kleine demo-omgeving, toont de Terraform die het schrijft en somt op wat u daarna handmatig instelt: versiebeheer, lifecycleregels, een kopie in een tweede regio en de overstap van de Azure Storage SDK naar een S3-client.

De demo-invoer en het concept

Een storage account met versiebeheer, soft delete, geo-redundante replicatie, twee privécontainers en één lifecycleregel, voor deze pagina geschreven en op 4 november 2026 beoordeeld door StackToIT. Links: de invoer. Rechts: de resourceblokken van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen boven elk blok in het bestand zijn hier weggelaten. De invoerblokken staan niet naast elkaar in main.tf, dus elk heeft een eigen paneel, letterlijk weergegeven.

Invoer: storage account en containermain.tf
resource "azurerm_storage_account" "media" {
  name                            = "stmediagwc01"
  resource_group_name             = azurerm_resource_group.media.name
  location                        = azurerm_resource_group.media.location
  account_kind                    = "StorageV2"
  account_tier                    = "Standard"
  account_replication_type        = "GRS"
  access_tier                     = "Hot"
  min_tls_version                 = "TLS1_2"
  allow_nested_items_to_be_public = false

  blob_properties {
    versioning_enabled = true

    delete_retention_policy {
      days = 14
    }

    container_delete_retention_policy {
      days = 7
    }
  }
}

resource "azurerm_storage_container" "invoices" {
  name                  = "invoices"
  storage_account_id    = azurerm_storage_account.media.id
  container_access_type = "private"
}
Invoer: azurerm_storage_management_policy.mediamain.tf
resource "azurerm_storage_management_policy" "media" {
  storage_account_id = azurerm_storage_account.media.id

  rule {
    name    = "archive-old-exports"
    enabled = true

    filters {
      prefix_match = ["exports/"]
      blob_types   = ["blockBlob"]
    }

    actions {
      base_blob {
        tier_to_cool_after_days_since_modification_greater_than = 30
        delete_after_days_since_modification_greater_than       = 365
      }
    }
  }
}
STACKIT-Terraform van StackToITterraform/storage.tf
resource "stackit_objectstorage_bucket" "media" {
  project_id = var.project_id
  name       = "stmediagwc01-exports"
}

resource "stackit_objectstorage_bucket" "media_2" {
  project_id = var.project_id
  name       = "stmediagwc01-invoices"
}
  • Eén account, één bucket per container

    Azure groepeert containers onder een storage account. STACKIT Object Storage kent buckets, en buckets kunnen niet worden genest. De run schrijft voor elke container één bucket en noemt die naar het account en de container, hier stmediagwc01-exports en stmediagwc01-invoices.

  • Alleen naam en project

    De bucketresource van de vastgezette STACKIT-provider heeft een naam en een instelling voor object lock. De accountsoort, de performancetier, de toegangstier, replicatie, versiebeheer en de lifecycleregel worden dus niet gegenereerd, en het bestand meldt dat bij elk ervan in een NOT CARRIED-opmerking.

  • De klasse is REPLATFORM

    Azure Blob is niet S3-compatibel: de API, de authenticatie en het uploadprotocol verschillen. De run classificeert het account als REPLATFORM met zekerheidsniveau MEDIUM en vraagt u alle applicaties op te sporen die het gebruiken.

Voer het uit

Het commando leest de Terraform van de bron en schrijft het rapport, het concept en het uitvoeringspakket naar de uitvoermap. Het doet geen netwerkverzoeken en wijzigt niets in beide clouds. De samenvattingsregels hieronder zijn gekopieerd uit de console van deze run.

Commandoterminal
stacktoit assess . ./out --offline --no-validate
Consolesamenvattingconsole
Source        5 resources · 1 unit · visibility: Complete
Migration     1 drafted (of 1 units the draft considered)
Target        STACKIT Terraform generated
Attention     1 unit to review · 5 open requests (1 block the draft, marked in inputs-template.yaml)
  • Vijf resources, één eenheid

    Het storage account, zijn twee containers en het lifecyclebeleid tellen als één eenheid, omdat ze allemaal naar dezelfde dienst verhuizen. Het concept bevat twee resourceblokken, één per container.

  • Eén vraag blokkeert het concept

    De run vraagt eerst om de STACKIT-regio (eu01 of eu02). Zolang die niet in het invoerbestand is beantwoord, is het concept een voorstel dat niet zoals geschreven kan worden gepland.

Welk bestand beantwoordt welke vraag

terraform/storage.tf
De twee buckets, met een opmerking bij elke Azure-instelling die het concept niet overneemt
migration/data-movement.md
De tabel voor dataverplaatsing: de eenheid staat met het mechanisme UNKNOWN op de lijst tot een medewerker er een kiest
execution/manual/actions.md
De handmatige stappen met per stap een eigenaarsrol en de voorwaarde waaronder de stap klaar is
assurance/critical-semantics.json
De kritieke instellingen van het account en waarom elk nog openstaat
review/inputs.yaml
Ontwerpantwoorden, te beginnen met de doelregio
review/decisions.yaml
Beoordelingsregistraties voor de instellingen van het account, één per eigenaarsrol

Wat het concept met elke Azure-instelling doet

Azure-instelling in de demoWat de run beslisteUw actie
account_replication_type = GRSNiet gegenereerd. STACKIT Object Storage kent geen beheerde replicatie tussen regio's; de run legt de instelling vast als UNSUPPORTED.Bepaal of de tweede kopie nodig is. Zo ja, plan een synchronisatietaak naar een bucket in de tweede regio.
versioning_enabled = trueNiet gegenereerd: de bucketresource heeft geen instelling voor versiebeheer.Schakel versiebeheer in via de S3-API zodra de bucket bestaat. Het kan later worden opgeschort maar niet worden uitgeschakeld.
delete_retention_policy, container_delete_retention_policyNiet gegenereerd. De run vond voor STACKIT Object Storage geen soft delete of point-in-time-herstel.Gebruik versiebeheer, en Object Lock waar verwijdering moet worden voorkomen.
storage_management_policy (na 30 dagen cool, na 365 verwijderen)Niet gegenereerd: de bucketresource van de vastgezette provider heeft geen lifecycle-attribuut, en STACKIT documenteert geen opslagtiers, dus de overgang naar cool na 30 dagen heeft geen tegenhanger.Stel de verwijdering na 365 dagen in als S3-lifecycleregel Expiration op de bucket (put-bucket-lifecycle-configuration, zie de STACKIT-how-to). Laat de tiering-stap vervallen en controleer dat geen regel data beschermde die u nu bewaart.
access_tier = Hot, account_tier = StandardNiet gegenereerd; de accountsoort en de tiers hebben geen tegenhanger.Geen, maar leg het vast in het architectuurdossier.
Accountnaam en containernamenOvergenomen in de bucketnaam. Bucketnamen zijn uniek binnen een regio.Bevestig de namen aan de hand van alles wat naar het oude account verwijst.

Gelezen uit de opmerkingen in terraform/storage.tf en de bevindingen in assessment.json van deze run.

Verplaats de data

StackToIT verplaatst nooit data: het dataverplaatsingsbestand toont de eenheid en laat het mechanisme aan een medewerker over. Dit is de gebruikelijke volgorde.

  1. 1. Maak de buckets en inloggegevens aan

    Pas het beoordeelde concept toe in een testproject. De run noemt credentialresources onder de doelen van het account, maar schrijft alleen de buckets, dus maak de access key en secret key voor het project zelf aan; STACKIT beheert credentials op projectniveau.

  2. 2. Schakel versiebeheer in vóór de eerste kopie

    Voer het versiebeheercommando uit de STACKIT-documentatie uit op elke bucket die dat in Azure had, zodat elke latere overschrijving de oudere versie bewaart.

  3. 3. Kopieer de data

    Gebruik een tool die beide protocollen spreekt. De onderstaande commando's zijn een voorbeeld met rclone; de run zelf wijst naar rclone of een kopieertool van Azure naar S3. Omvang, wijzigingsfrequentie en toegestane downtime bepalen de keuze tussen één kopie bij de cutover en herhaalde synchronisaties daarvoor.

  4. 4. Vergelijk en schakel daarna de applicaties om

    Vergelijk aantallen en groottes van objecten per bucket en laat de applicaties daarna overstappen van de Azure Storage SDK naar een S3-SDK en van accountsleutels, SAS-URL's of Entra-tokens naar S3-toegangssleutels.

  5. 5. Bewaar de bron tot de controle is afgerond

    Laat het Azure-account ongemoeid tot de nieuwe buckets echt verkeer hebben verwerkt. Zolang geen applicatie uitsluitend naar STACKIT heeft geschreven, is een rollback een configuratiewijziging; daarna kopieert u eerst de nieuwe objecten terug.

Commando's voor de kopie

Praktijk, geen uitvoer van StackToIT. De eerste paneel is het versiebeheercommando uit de STACKIT-documentatie voor het eu01-endpoint; de tweede is één manier om te kopiëren en te vergelijken met rclone, met de demonamen.

Versiebeheer inschakelen (STACKIT-documentatie)terminal
aws --endpoint-url https://object.storage.eu01.onstackit.cloud s3api put-bucket-versioning \
  --bucket $BUCKET_NAME \
  --versioning-configuration Status=Enabled
Kopiëren en vergelijken (voorbeeld)terminal
# for example, with rclone (not run by StackToIT)
rclone config create azblob azureblob account=stmediagwc01 key="$AZURE_STORAGE_KEY"
rclone config create stackit s3 provider=Other \
  endpoint=https://object.storage.eu01.onstackit.cloud \
  access_key_id="$STACKIT_ACCESS_KEY" secret_access_key="$STACKIT_SECRET_KEY"

rclone sync azblob:invoices stackit:stmediagwc01-invoices
rclone sync azblob:exports  stackit:stmediagwc01-exports
rclone check azblob:invoices stackit:stmediagwc01-invoices --size-only

Beslis voordat u toepast

  • Regio en endpoint

    Elke regio heeft een eigen endpoint, https://object.storage.eu01.onstackit.cloud voor eu01, en een bucket in eu01 is onafhankelijk van een bucket met dezelfde naam in eu02. Beantwoord eerst de vraag over de regio.

  • Adresseringsstijl

    STACKIT ondersteunt virtual-hosted en path-style adressering. Controleer welke uw S3-client gebruikt en of die een eigen endpoint accepteert.

  • Geschiedenis

    Bepaal of oude versies en blobs die via soft delete zijn verwijderd mee moeten. Een gewone synchronisatie van de actuele inhoud zorgt er niet voor dat STACKIT de geschiedenis bewaart die Azure bewaarde.

  • Openbare containers

    De demo heeft er geen. Als uw omgeving containers met openbare leestoegang heeft, vereist de bucket een expliciet toegangsontwerp, omdat het concept het toegangsniveau niet overneemt.

Vragen van opslagteams

Is STACKIT Object Storage S3-compatibel?

Ja. De STACKIT-documentatie beschrijft een S3-compatibele API via HTTPS, dus standaard S3-tools kunnen ermee werken. Azure Blob Storage is niet S3-compatibel, en daarom wijzigen applicaties hun client en hun inloggegevens.

Maakt het concept de access keys aan?

Nee. Voor deze demo schrijft het alleen de twee buckets. Credentials worden op STACKIT op projectniveau beheerd, dus maak ze aan na het toepassen en geef ze bij de cutover aan de applicaties.

Wat gebeurt er met de lifecycleregel en met soft delete?

Geen van beide wordt gegenereerd, omdat de bucketresource zo'n instelling niet heeft, en de run toont beide als openstaande instellingen. STACKIT documenteert S3-lifecycleregels voor het laten verlopen van objecten en oude versies, dus de verwijdering na 365 dagen kan via de S3-API op de bucket worden ingesteld; de overgang naar een koelere tier heeft geen tegenhanger. Gebruik voor bescherming tegen verwijdering versiebeheer, en Object Lock waar het moet worden voorkomen.

Kan ik geo-redundante replicatie behouden?

Niet als beheerde instelling. STACKIT Object Storage kent in de bronnen die de run controleerde geen beheerde replicatie tussen regio's. Als een tweede kopie vereist is, levert een synchronisatietaak naar een bucket in de tweede regio die.

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