AWS → STACKIT · CHECKLIST BACKUP EN DR

AWS Backup en disaster recovery op STACKIT: de checklist

AWS Backup is één service met plannen, vaults en selecties; STACKIT maakt back-ups per service. Daar gaat het bij back-upmigraties mis: een retentieregel die in één plan stond, zit nu in het back-upschema van de server, de volume-automatisering, de databaseinstellingen en de bucket. Deze checklist doorloopt de fasen van inventarisatie tot de eerste hersteltest en noemt het bestand van een StackToIT-run dat elk antwoord bevat.

Inventarisatie: vind elke back-upregel waarop u vertrouwt

Voer eerst het assessment uit. De demo-omgeving voor deze pagina, beoordeeld op 4 november 2026, heeft 10 resources in 6 eenheden: 3 RECONFIGURE (het back-upplan, het snapshotbeleid, de EC2-instance), 1 REPLATFORM (de RDS-database), 1 DIRECT (de replicabucket) en 1 MANUAL_REVIEW (de bucket met versiebeheer en replicatie). Deze controles zorgen ervoor dat niets wat data beschermt, wordt overgeslagen.

ControleWaar het antwoord staatKlaar wanneer
Som elk back-upplan, elke vault en elke selectie op, en welke resources elke selectie bereikt.assessment.json, eenheid van het planU weet of een tagselectie een server, een volume of een database bereikt.
Som snapshotbeleid (Data Lifecycle Manager) op, met tags, schema's en aantallen.assessment.json, eenheid van het beleidElk beleid is gekoppeld aan een volume of een server.
Lees de ingebouwde retentie van elke database en het back-upvenster.assessment.json, eenheid van de databaseRetentiedagen en het back-upvenster zijn vastgelegd.
Som buckets op met versiebeheer, lifecycleregels en replicatie.terraform/storage.tf-commentaren, terraform/s3api/Elke bucket met een replicatieregel staat op een lijst.
Leg het herstelpunt en de hersteltijd vast die elke applicatie nodig heeft.migration/data-movement.md (de run vermeldt er geen, tenzij u ze opgeeft)Getallen van de eigenaar van de applicatie, niet geraden.

Ontwerp: bepaal wat de centrale service vervangt

De run koppelt per service, dus de ontwerpbeslissingen zijn ook per service.

ControleWaar het antwoord staatKlaar wanneer
Kies welke servers een back-upschema krijgen; u moet er een server voor opgeven.terraform/backup.tf, variabele voor de server-idVoor elke beschermde server is een server-id ingesteld.
Bepaal hoe volumes worden beschermd: snapshots geselecteerd op label, of back-ups.terraform/backup.tf, volume-automatiseringLabels op STACKIT-volumes komen overeen met de selector.
Bepaal het aantal snapshots tegen de gedocumenteerde limiet per volume.commentaar boven de volume-automatiseringDe retentie die u daarboven nodig hebt, wordt door back-ups gedekt.
Bepaal wat een vault lock of een immutable vault vervangt.Reden van de back-upeenheid in assessment.jsonEen schriftelijk antwoord: object lock op een bucket, offline kopie of geaccepteerde leemte.
Bepaal het DR-doel: tweede STACKIT-regio, tweede bucket of een andere locatie.terraform/storage.tf, ledgerregel voor geo-replicatieEen benoemd doel en een eigenaar.

Bouw: het back-upplan wordt een back-upschema voor de server

Links: de vault, het plan en de tagselectie. Rechts: de twee serverback-upblokken van het concept met de twee commentaarregels erboven die uitleggen wat de selectie bereikt en wat niet wordt overgenomen; de overige commentaarregels zijn weggelaten. De dagelijkse regel van 03:00 met 35 dagen wordt een rrule en retention_period = 35.

Voorbeeldinvoermain.tf
resource "aws_backup_vault" "main" {
  name = "company-vault"
}

resource "aws_backup_plan" "daily" {
  name = "daily-35d"

  rule {
    rule_name         = "daily"
    target_vault_name = aws_backup_vault.main.name
    schedule          = "cron(0 3 * * ? *)"

    lifecycle {
      delete_after = 35
    }
  }
}

resource "aws_backup_selection" "tagged" {
  name         = "tagged-resources"
  plan_id      = aws_backup_plan.daily.id
  iam_role_arn = "arn:aws:iam::111122223333:role/backup-role"

  selection_tag {
    type  = "STRINGEQUALS"
    key   = "backup"
    value = "daily"
  }
}
STACKIT-Terraform van StackToITterraform/backup.tf
# no volume automation is drafted for the selection tagged-resources of aws_backup_plan.daily: it reaches no volume in the scan.
# NOT CARRIED (aws_backup_plan.daily): rule.target_vault_name — STACKIT Server Backup keeps backups per server and has no vault: the vault a rule writes to, aws_backup_vault.main (company-vault), is not carried.
resource "stackit_server_backup_enable" "daily" {
  project_id = var.project_id
  server_id  = var.daily_server_id
}

resource "stackit_server_backup_schedule" "daily" {
  project_id = var.project_id
  server_id  = var.daily_server_id
  name       = "daily-35d-daily"
  rrule      = "DTSTART;TZID=UTC:20200101T030000 RRULE:FREQ=DAILY;INTERVAL=1"
  enabled    = true
  backup_properties = {
    name             = "daily-35d-daily"
    retention_period = 35
  }
  depends_on = [stackit_server_backup_enable.daily]
}
  • Eerst inschakelen, dan plannen

    Het concept schrijft een stackit_server_backup_enable en laat het schema ervan afhangen. STACKIT documenteert serverback-ups als crash-consistente back-ups van de volumes die aan een server zijn gekoppeld, met een retentieperiode die u kiest.

  • De tagselectie, opgelost

    De run lost backup=daily op tegen de scan: het schema beschermt aws_instance.app en de RDS-database met dezelfde tag krijgt in plaats daarvan de back-up van zijn eigen service. Het schema neemt nog steeds een variabele voor de server-id: stel die in op de STACKIT-server van aws_instance.app en herhaal het schema voor elke andere server die de tag dekte.

  • Geen vault

    STACKIT Server Backup bewaart back-ups per server. De vault, de naam ervan en de IAM-rol van de selectie hebben geen tegenhanger en staan als niet overgenomen vermeld.

Bouw: het snapshotbeleid wordt een volume-automatisering

Links: het beleid van de Data Lifecycle Manager. Rechts: de volume-automatisering van het concept met de ene commentaarregel die het aantal snapshots controleert; de overige commentaarregels zijn weggelaten. De doeltag wordt een labelselector, de createregel van 24 uur een rrule en het aantal te bewaren snapshots een count-beleid.

Voorbeeldinvoermain.tf
resource "aws_dlm_lifecycle_policy" "ebs" {
  description        = "Daily EBS snapshots"
  execution_role_arn = "arn:aws:iam::111122223333:role/dlm-role"
  state              = "ENABLED"

  policy_details {
    resource_types = ["VOLUME"]
    target_tags = {
      snapshot = "true"
    }
    schedule {
      name = "daily"
      create_rule {
        interval      = 24
        interval_unit = "HOURS"
        times         = ["03:00"]
      }
      retain_rule {
        count = 7
      }
    }
  }
}
STACKIT-Terraform van StackToITterraform/backup.tf
# Check the count: the policy keeps 7 snapshots for schedule daily; the documented limit is 6 snapshots per volume (docs.stackit.cloud, introduction to the server), so the days beyond are not covered by snapshots — backups (daily retention, default 14 days, `backupRetentionPolicies`) are the longer-retention path; whether the Automation Service enforces the number is not documented, verify it on the first run.
resource "stackit_volume_automation" "ebs" {
  project_id  = var.project_id
  template_id = var.ebs_automation_template_id
  name        = "daily-ebs-snapshots-daily"
  description = "Daily EBS snapshots"
  input = jsonencode({
    kind                = "VolumeRecoveryPointManagement"
    inheritVolumeLabels = false
    snapshotRetentionPolicy = {
      kind  = "count"
      value = 7
    }
    volumeLabelSelector = "snapshot=true"
  })
  triggers = {
    schedule = {
      rrule = "DTSTART;TZID=UTC:20200101T030000 RRULE:FREQ=DAILY;INTERVAL=1"
    }
  }
}
  • Het aantal van 7

    De run toetst de 7 snapshots van het beleid aan een gedocumenteerde limiet van 6 per volume en meldt dat de dagen daarboven niet door snapshots worden gedekt. Dagelijkse back-ups in dezelfde automatisering (backupRetentionPolicies) zijn de route voor langere retentie, en of de limiet wordt afgedwongen, controleert u bij de eerste run.

  • Opt-in-resource

    De vastgezette provider markeert stackit_volume_automation als resource die nog kan wijzigen, en het concept schakelt die opt-in in terraform.tf in. Uw team beslist of het die accepteert of de automatisering op een andere manier aanmaakt.

  • Labels moeten bestaan

    De automatisering selecteert op label. Zet snapshot=true op de STACKIT-volumes die het nodig hebben, anders wordt er geen snapshot gemaakt.

Bouw: databaseretentie en point-in-time recovery

Links: de RDS-instance met 14 dagen retentie, een back-upvenster en Multi-AZ. Rechts: de PostgreSQL Flex-instance van het concept met vier van de commentaarregels erboven, ongewijzigd; de overige commentaarregels zijn weggelaten.

Voorbeeldinvoermain.tf
resource "aws_db_instance" "orders" {
  identifier              = "orders-db"
  engine                  = "postgres"
  engine_version          = "16.4"
  instance_class          = "db.m6g.large"
  allocated_storage       = 100
  username                = "app"
  password                = var.db_password
  backup_retention_period = 14
  backup_window           = "02:00-02:30"
  multi_az                = true
  skip_final_snapshot     = false
  final_snapshot_identifier = "orders-db-final"
  tags = {
    backup = "daily"
  }
}
STACKIT-Terraform van StackToITterraform/data.tf
# recovery window: the source restores to any point within 14 days, as late as about five minutes before now (RDS uploads transaction logs to S3 every five minutes).
# PostgreSQL Flex restores to an arbitrary point of its available backups (transaction logs are on by default) into a cloned instance, and keeps them retention_days = 32.
# LEDGER backup retention: 14 days → retention_days = 32 — TRANSFORMED
# LEDGER high availability: standby / multi-node → flavor_id = "2.16-replica" (a replica flavor: three nodes that mirror each other; no STACKIT page states the zone of each node or how a failover works, so a zone failure or an automatic takeover is not claimed) — TRANSFORMED
resource "stackit_postgresflex_instance" "orders" {
  project_id = var.project_id
  name       = "orders-db"
  version    = "16"
  flavor_id  = "2.16-replica"
  storage = {
    class = var.postgresflex_storage_class
    size  = 108
  }
  backup_schedule = "0 2 * * *"
  network = {
    acl          = var.orders_allowed_cidrs
    access_scope = var.orders_access_scope == "SNA" ? "SNA" : null
  }
  retention_days = 32
}
  • Retentie verandert

    Het concept stelt retention_days in op 32 en backup_schedule op 02:00 per nacht, het begin van het venster 02:00-02:30 in de bron; er staat geen commentaar over hoe de tijd is afgeleid. De run markeert de stap van 14 naar 32 als getransformeerd en meldt dat niet is aangetoond dat de twee herstelvensters gelijk zijn.

  • Herstel maakt een kloon

    Point-in-time recovery op PostgreSQL Flex herstelt naar een nieuwe, gekloonde instance, dus het herstelrunbook omvat het omschakelen van de applicatie naar die instance.

  • De laatste snapshot wordt niet overgenomen

    De laatste snapshot van de bron heeft bij verwijdering geen tegenhanger. Exporteer eerst de data als die de cutover moet overleven. De eigen documentatie van STACKIT waarschuwt bovendien dat het verwijderen van een instance zonder instance protection definitief is.

Bouw: bucketversiebeheer en replicatie

Links: versiebeheer, de replicabucket en de replicatieregel. Rechts: de bucket van het concept met de twee NOT CARRIED-commentaren (het commentaar over replicatie gevolgd door de bijbehorende beslissingsregel) en de ledgerregel voor geo-replicatie; de overige commentaarregels zijn weggelaten. Versiebeheer wordt buiten Terraform overgenomen: de run schrijft terraform/s3api/documents/versioning.json met Status Enabled, toe te passen via de S3 API voordat het eerste object binnenkomt.

Voorbeeldinvoermain.tf
resource "aws_s3_bucket_versioning" "documents" {
  bucket = aws_s3_bucket.documents.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket" "documents_replica" {
  bucket = "acme-documents-replica"
}

resource "aws_s3_bucket_replication_configuration" "documents" {
  bucket = aws_s3_bucket.documents.id
  role   = "arn:aws:iam::111122223333:role/s3-replication"

  rule {
    id     = "all"
    status = "Enabled"
    destination {
      bucket = aws_s3_bucket.documents_replica.arn
    }
  }
}
STACKIT-Terraform van StackToITterraform/storage.tf
# NOT CARRIED (aws_s3_bucket_replication_configuration.documents): role = arn:aws:iam::111122223333:role/s3-replication, rule — stackit_objectstorage_bucket has no replication attribute (pinned provider). STACKIT's supported-operations page lists Put, Get and Delete Bucket Replication, but no STACKIT page describes replication targets, cross-region behaviour or the role the source assumes, so whether replication between STACKIT buckets works is UNKNOWN (not observed); the source's destination, role, storage class and filter do not carry over.
#   Decision: probe `put-bucket-replication` between two STACKIT buckets before relying on it, or replace it with a scheduled sync (rclone) or application writes to both buckets.
# NOT CARRIED (aws_s3_bucket_versioning.documents): versioning_configuration.status = Enabled — stackit_objectstorage_bucket has no versioning attribute (pinned provider), but STACKIT Object Storage supports versioning through its S3 API (the provider lacks it, STACKIT does not). … Once enabled, versioning cannot be disabled on STACKIT, only suspended (docs manage-bucket-versioning). (shortened: the whole reason is in the trace of this block)
# LEDGER geo-replication: second region → none — sync to a second bucket if required — UNSUPPORTED
resource "stackit_objectstorage_bucket" "documents" {
  project_id = var.project_id
  name       = "acme-documents-primary"
}
  • Versiebeheer gaat maar één kant op

    De handleiding van STACKIT voor versiebeheer stelt het in met aws s3api put-bucket-versioning en vermeldt dat het na inschakelen niet meer kan worden uitgeschakeld, alleen worden opgeschort.

  • Historie vraagt om een eigen kopie

    Een gewone sync kopieert alleen huidige versies. Het document voor het kopiëren van data schrijft eerdere versies op volgorde van versie-id, oudste eerst, en merkt op dat versie-id's van de bron niet kunnen worden behouden.

  • Replicatie is een proef of een sync

    De provider kent geen replicatieattribuut. STACKIT noemt de replicatiebewerkingen voor buckets, maar de run vond geen STACKIT-pagina over replicatiedoelen of cross-regiogedrag. De run stelt daarom voor put-bucket-replication tussen twee STACKIT-buckets te proberen of een geplande sync te gebruiken.

Data en cutover: houd de bescherming doorlopend

Back-ups aan beide kanten moeten overlappen tot het doel zich heeft bewezen.

ControleWaar het antwoord staatKlaar wanneer
Laat AWS Backup en DLM draaien tot de eerste STACKIT-back-up van elke resource is voltooid (praktijk).Schema's in terraform/backup.tf en data.tfEén voltooide STACKIT-back-up per beschermde resource.
Maak vóór de schrijfstop een laatste back-up van elke brondatabase (praktijk).Stap voor de schrijfstop in terraform/handover/database-orders/data-move.mdDe back-up-id is vastgelegd.
Kopieer buckets met versiebeheer samen met hun versiehistorie als de historie ertoe doet.terraform/s3api/documents/data-copy.mdHet aantal versies per sleutel komt aan beide kanten overeen.
Vervang bucketreplicatie door een geplande sync of schrijfacties van de applicatie, of probeer eerst replicatie tussen twee STACKIT-buckets.commentaar in terraform/storage.tfEen geteste voorziening, geen aanname.
Leg de rollbackgrens vast: wanneer een rollback data verliest die op het doel is geschreven.terraform/handover/database-orders/data-move.md en terraform/s3api/documents/data-copy.md (controle rollback-limit)Een datum en een eigenaar zijn vastgelegd.

Nazorg: bewijs dat u kunt herstellen

Een back-up die u nooit hebt hersteld, is een vrome hoop.

ControleWaar het antwoord staatKlaar wanneer
Herstel één volumeback-up van de server naar een nieuw volume en lees er bestanden uit; STACKIT documenteert dit gedeeltelijke herstel.Uw eigen runbook, gebaseerd op het schema in terraform/backup.tfControle van bestanden en applicatie slaagt; de tijd is vastgelegd.
Herstel de database naar een tijdstip als kloon.terraform/data.tf-commentarenHet laatste herstelbare punt komt overeen met het herstelpunt dat u nodig hebt.
Herstel een oude objectversie uit de bucket.terraform/s3api/documents/De versie wordt teruggegeven.
Verwijder tijdelijke toegang die voor de migratie is gebruikt en faseer AWS Backup uit na de retentie die u hebt bepaald.execution/manual/actions.mdBronvault en -plannen zijn op een vastgelegde datum verwijderd.

Vragen over back-upmigratie

Is er een STACKIT-equivalent van AWS Backup?

Volgens de reden van de run is er geen centrale back-upservice zoals AWS Backup. Elke service heeft een eigen voorziening: back-upschema's voor servers, volume-automatiseringen, de ingebouwde back-ups van managed databases en snapshots voor bestandsopslag.

Kan ik een immutable vault krijgen?

De run meldt dat de isolatie van de back-ups van de Automation Service geen lock-, write-once- of immutability-instelling is. De Object Storage-documentatie van STACKIT beschrijft object lock met compliance-retentie tot 365 dagen voor buckets, wat een andere bouwsteen is.

Maakt of herstelt StackToIT back-ups?

Nee. StackToIT leest Terraform en schrijft een concept, scripts en documenten. Back-ups en herstel voert uw team uit.

Wordt S3-bucketreplicatie overgenomen?

Nee. stackit_objectstorage_bucket heeft geen replicatieattribuut. De run stelt voor replicatie tussen twee STACKIT-buckets te proberen of een geplande sync te gebruiken, en legt het kopiëren naar een tweede regio vast als niet ondersteund.

Waarom vraagt het concept om een server-id?

Omdat een back-upschema voor een STACKIT-server bij precies één server hoort, niet bij een tag. De run loste de tagselectie op naar aws_instance.app maar laat de id als variabele staan; stel die in op de STACKIT-server die die instance vervangt.

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