AWS → STACKIT · CHECKLIST

Migratiechecklist AWS naar STACKIT

Gebruik deze lijst om een AWS-omgeving naar STACKIT te brengen zonder het overzicht te verliezen. Elke controle noemt het bestand in de uitvoermap van StackToIT dat het antwoord bevat, zodat een reviewer die kan afvinken tegen bewijs in plaats van tegen het geheugen. De voorbeelden komen uit een demo-omgeving van negen AWS-eenheden en uit de gepubliceerde Retail Store-run.

Hoe de checklist is opgebouwd

Zes fasen, in de volgorde waarin het werk plaatsvindt. De bestandsnamen zijn paden binnen de uitvoermap van een assessment.

  • Bewijs, geen mening

    Een controle is afgerond wanneer het bestand ernaast dat bevestigt, of wanneer een persoon het antwoord in de reviewbestanden heeft vastgelegd. StackToIT leest en schrijft bestanden en wijzigt niets in welke cloud dan ook.

  • Op de schaal van een echte run

    De Retail Store-run omvat 282 Terraform-resources en 44 migratie-eenheden. Uw omgeving krijgt eigen aantallen; de controles blijven dezelfde.

  • Beslissingen horen bij de lijst

    Openstaande beslissingen blokkeren stappen van het plan. Een checklist die ze overslaat, vinkt vakjes af waaraan het plan zich niet houdt.

Fase 1 · Inventarisatie

ControleWaar het antwoord staatKlaar wanneer
De hele omgeving is gelezen: elke rootmodule, childmodule en variabelenbestandconsole.txt en assessment.json (gescande resources, migratie-eenheden)Het aantal eenheden komt overeen met wat uw team verwacht; ontbrekende modules zijn verklaard
Variabelen die bepalen of een resource bestaat, zijn bekendconsole.txt (regel visibility), assessment.json (voorwaardelijke eenheden)Geen enkele eenheid blijft voorwaardelijk door een variabele die u kunt opgeven; de Retail Store-run registreert 41 uitgeschakelde eenheden en 8 voorwaardelijke eenheden waarover alleen een plan beslist
De bron doorstaat de eigen controlesconsole.txt (Source checks)De validatie is uitgevoerd, of u weet waarom niet (bijvoorbeeld een ontbrekend lockbestand voor dependencies)
Resources buiten Terraform zijn opgesomdUw inventaris; het optionele commando discover voegt alleen-lezen verzameling toeIn de console aangemaakte resources worden handmatig toegevoegd, omdat een assessment alleen ziet wat in de bestanden staat

Fase 2 · Ontwerp

ControleWaar het antwoord staatKlaar wanneer
Elke eenheid heeft een klasse en een doelassessment.json, migration/source-target.csvGeen eenheid is onverklaard; REDESIGN- en MANUAL_REVIEW-eenheden hebben een eigenaar
Openstaande beslissingen zijn opgesomd en hebben een eigenaarexecutive/decisions.md, decisions.json, review/decisions.yamlElke beslissing die een stap van het plan blokkeert, heeft een antwoord of een datum
De standaardwaarden die het concept koos, zijn bevestigd of gewijzigdexecutive/decisions.md (te bevestigen standaardwaarden)Voor elke standaardwaarde van publiek endpoint, dimensionering en egress is een antwoord vastgelegd
Wat het concept niet overneemt, is begrepenengineering/not-carried.csv, engineering/architect-report.mdVoor elke niet overgenomen eigenschap is er een beslissing of een geaccepteerd verlies
De landing zone is gedefinieerdmigration/landing-zone-requirements.mdOrganisatie, project, regio en netwerkbereiken zijn afgestemd

Hoe "niet overgenomen" eruitziet

engineering/not-carried-summary.csv van de demorun: één rij per eenheid met het aantal eigenschappen dat het concept niet kon overnemen. Een aantal groter dan nul is een ontwerpcontrole, geen fout.

Samenvatting van niet overgenomen eigenschappenengineering/not-carried-summary.csv
unit,type,class,confidence,counted,properties_not_carried
aws_db_instance.orders,aws_db_instance,REPLATFORM,MEDIUM,yes,3
aws_instance.app,aws_instance,RECONFIGURE,MEDIUM,yes,2
aws_s3_bucket.uploads,aws_s3_bucket,RECONFIGURE,MEDIUM,yes,1
aws_secretsmanager_secret.api_key,aws_secretsmanager_secret,RECONFIGURE,MEDIUM,yes,1
aws_subnet.app_a,aws_subnet,RECONFIGURE,MEDIUM,yes,1
aws_subnet.app_b,aws_subnet,RECONFIGURE,MEDIUM,yes,1
aws_vpc.app,aws_vpc,RECONFIGURE,MEDIUM,no,

Fase 3 · Bouw

ControleWaar het antwoord staatKlaar wanneer
Vereiste services zijn ingeschakeld in het doelproject en de doelregioterraform/README.md (Enable these services first)De services die het concept gebruikt, zijn ingeschakeld; het portaal toont een uitgeschakelde service als niet ingeschakeld in uw regio
Variabelen zonder standaardwaarde hebben waardenreview/target-values.tfvars (de kopie van target-values-template.tfvars), terraform/variables.tfproject_id, toegangsscopes, client-CIDR's, machinetypen en opslagklassen zijn ingesteld
Het concept valideert tegen een testprojectterraform/README.md (init, validate, plan)Een plan draait foutloos in een testproject; StackToIT voert apply nooit uit
De state wordt als secret behandeldterraform/README.md (Secrets the provider writes into the state)Opslag van en toegang tot de state zijn bepaald vóór de eerste apply
De apply-volgorde en de voorbereidende stappen worden gevolgdexecution/terraform/apply.mdHandmatige stappen en API-aanroepen die eerst moeten, zijn afgevinkt
Over opt-in-API-aanroepen is beslistexecutive/decisions.md, execution/api/Elke aanroep van een API zonder vermelde releasestatus is vastgelegd als toegestaan of geweigerd

Fase 4 · Data

ControleWaar het antwoord staatKlaar wanneer
Elke stateful eenheid heeft een gekozen verplaatsingsmethodemigration/data-movement.mdGeen eenheid toont DECISION_REQUIRED
Omvang, wijzigingssnelheid en tolerantie voor downtime zijn vastgelegdreview/inputs.yaml (omvang van de dataset, downtime, RPO), migration/data-movement.md (lijst "Not known")De onbekenden die het rapport noemt, zijn vervangen door uw cijfers
De methode is geoefendStap "data rehearsal" in execution/manual/actions.mdDe verstreken tijd van elk onderdeel is vastgelegd en het venster voor de schrijfstop is daarop afgestemd
Secrets worden door een persoon gekopieerdSecrets Manager-stappen in execution/manual/actions.mdDe waarden staan in STACKIT Secrets Manager; het concept bevat ze nooit
De vergelijkingscontroles zijn afgestemdmigration/data-movement-plan.json (controles per asset)Aantallen, lijsten of checksums zijn per opslag benoemd, met een eigenaar voor GO of NO-GO

De datatabel en de controles vóór elke stap

Links: migration/data-movement.md. Elke eenheid toont DECISION_REQUIRED en de dataklasse, RPO en downtime zijn NOT_PROVIDED totdat u ze vastlegt. Rechts: de eerste regels van execution/verify/checks.md, een afvinkbare lijst die uit het plan wordt gegenereerd.

Tabel voor dataverplaatsingmigration/data-movement.md
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| aws_db_instance.orders | aws_db_instance | STACKIT PostgreSQL Flex |  | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| aws_s3_bucket.uploads | aws_s3_bucket | STACKIT Object Storage |  | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
Controles vóór elke stapexecution/verify/checks.md
## Before each step

- [ ] `TF/stackit_network.app_a` · `variable-supplied` `variable=project_id` — The variable `project_id` has a value.
- [ ] `TF/stackit_network.app_b` · `variable-supplied` `variable=project_id` — The variable `project_id` has a value.
- [ ] `TF/stackit_secretsmanager_instance.migrated_secrets` · `variable-supplied` `variable=project_id` — The variable `project_id` has a value.
- [ ] `TF/stackit_secretsmanager_user.migration` · `variable-supplied` `variable=project_id` — The variable `project_id` has a value.

Fase 5 · Cutover

ControleWaar het antwoord staatKlaar wanneer
De applicaties die elke opslag gebruiken, zijn opgesomdCutoverstappen in execution/manual/actions.mdHet plan leest niet welke applicaties een opslag gebruiken; hun eigenaren sommen ze op
Het venster en de schrijfstop zijn afgestemdStappen voor de schrijfstop; de invoer voor het onderhoudsvenster in review/inputs.yamlDe eigenaar heeft een venster vastgelegd; het plan verzint er geen
DNS heeft een verlaagde TTL en een rollbackmigration/technical-sequencing.md (stappen voor zonedelegatie)De TTL is verlaagd en verlopen, de antwoorden zijn gecontroleerd op de nameservers van het doel
De beslisstap voor rollback heeft een eigenaarBeslisstap voor rollback in execution/manual/actions.mdEen benoemde eigenaar legt GO of ROLLBACK vast
Zie het runbook voor cutover en rollback voor de stappen in volgordeRunbook voor cutover en rollbackElke stap heeft een eigenaar, een controle en een weg terug

Fase 6 · Na de cutover

ControleWaar het antwoord staatKlaar wanneer
De voortgang is vastgelegdreview/progress.yamlElke stap is DONE, FAILED of WAIVED, met een eigenaar en een datum
Herstel is aangetoondStap voor de restore-controle van elke databaseEen point-in-time clone is gelezen en vergeleken vóór de GO
De bron wordt in de juiste volgorde uitgefaseerdOntmantelingsstappen in execution/manual/actions.mdUitfasering is pas na de GO gestart; de laatste back-ups zijn bewaard gedurende de periode die u hebt bepaald
Het resultaat is ongewijzigd gearchiveerdUitvoermap en het bijbehorende manifest.jsonDe map doorstaat het commando verify voordat die wordt gedeeld of gearchiveerd

Waar u de voortgang vastlegt

review/progress.yaml gaat uit van progress-template.yaml. Elk item is met een hash aan de stap gekoppeld; als een latere run de stap wijzigt, wordt uw item als verouderd getoond in plaats van stilzwijgend overgenomen.

Voortgangsjournaalprogress-template.yaml
entries:

  # MANUAL critical-semantic - aws_subnet.app_a
  - action_id: "MAN/semantic/aws_subnet.app_a/availability-zone"
    contract_sha256: "sha256:466db94bafa1a6993c03688825aff955665d3be7fa1f3d4387e6c6a0c7d4ac72"
    state: NOT_STARTED

  # MANUAL critical-semantic - aws_subnet.app_a
  - action_id: "MAN/semantic/aws_subnet.app_a/effective-route-table"

Vragen die teams stellen

Kan de checklist alleen op basis van het rapport worden afgevinkt?

Alleen voor de ontwerpfasen. Bouw, data, cutover en nazorg vergen werk in uw eigen omgeving; de bestanden vertellen wat u moet doen en wanneer iets als klaar telt, en u legt het resultaat vast in de reviewbestanden.

Heb ik eerst een volledige AWS-inventaris nodig?

Het assessment leest Terraform. Voor vergelijking met het live account verzamelt het commando discover een alleen-lezen inventaris met uw lokale AWS-inloggegevens; het assessment zelf maakt nooit verbinding met AWS.

Waar tonen managed databases en buckets hun risico's?

In de bestanden over dataverplaatsing en in de lijst met niet overgenomen eigenschappen: engineversies, publieke of private endpoints, bucketinstellingen die via een API lopen in plaats van via Terraform, en versleutelingsverklaringen die onbekend zijn.

Is elk vakje verplicht?

Nee. WAIVED bestaat niet voor niets in het voortgangsjournaal, maar een ontheffing vereist een notitie, zodat zichtbaar blijft wat is weggelaten.

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