ARCHITECTUUR · KOSTENVERGELIJKING EN BUDGET
Kostenvergelijking en budgetplanning voor cloudmigratie
Een migratiebudget mislukt op twee manieren: het vergelijkt prijzen van dingen die niet vergelijkbaar zijn, of het vergeet alles wat geen prijs is. De ontwerpvraag is welke methode u een getal geeft dat u kunt verdedigen. Deze pagina zet vier aanpakken uiteen, laat zien wat een lijstprijsmodel op basis van uw Terraform kan stellen aan de hand van een StackToIT-run die met en zonder aannames is geprijsd, en geeft een regel om te kiezen.
Vier manieren om het budget op te bouwen
Kies er één als ruggengraat en gebruik de andere om die te toetsen. Rijen met de markering praktijk zijn algemene methode, niet iets wat StackToIT berekent.
| Aanpak | Wat u ervan krijgt | Wat u er niet van krijgt |
|---|---|---|
| 1. Lijstprijsmodel van de beoordeelde omgeving (de run) | Een regel per factureerbare resource aan beide kanten, met de status en de aanname erachter; een snel eerste beeld van de dekking | Gebruiksafhankelijke kosten, support, licenties, beheer, migratiearbeid; elke besparing over valuta heen zonder wisselkoers |
| 2. Gebruiksmodel op basis van factuurexports en monitoring (praktijk) | Echte hoeveelheden voor verkeer, aanvragen en groei van opslag | Een doelontwerp; STACKIT-regels totdat het ontwerp is gekozen |
| 3. Pilotgolf, gemeten (praktijk) | Gemeten kosten van de run en migratie-inspanning voor één workload | Een getal voor workloads van een andere vorm; de kosten van wachten op de pilot |
| 4. Offerte van de leverancier voor vastgelegde capaciteit (praktijk) | Een prijs voor een vastgelegde afname | Een vergelijking zolang de omvang niet is vastgelegd met een van de bovenstaande aanpakken |
Aanpak 1 is snel en open over zijn hiaten. Aanpak 2 en 3 vullen de hiaten met metingen.
Wat de run heeft geprijsd en wat open bleef
Op 4 november 2026 beoordeeld door StackToIT: twee applicatieservers, een datavolume, een Multi-AZ PostgreSQL-database en een back-upbucket op AWS. Voor deze pagina geschreven.
resource "aws_instance" "app" {
count = 2
ami = "ami-0abcdef1234567890"
instance_type = "m5.xlarge"
root_block_device {
volume_size = 80
volume_type = "gp3"
}
}
resource "aws_ebs_volume" "data" {
availability_zone = "eu-central-1a"
size = 500
type = "gp3"
}
resource "aws_db_instance" "main" {
identifier = "main"
engine = "postgres"
engine_version = "16.3"
instance_class = "db.m5.xlarge"
allocated_storage = 200
multi_az = true
username = "app"
password = "change-me-at-migration"
}
resource "aws_s3_bucket" "backups" {
bucket = "acme-app-backups"
}Waarom deze vorm
Compute, blokopslag, een database en een objectbucket zijn de regels waaruit de meeste budgetten bestaan, en ze tonen alle vier de redenen waarom een regel zonder prijs blijft.
Twee runs: waarom een regel geen prijs heeft
De tabel met prijsstatussen in financial/cost-coverage.md, uit een run zonder aannames en uit een tweede run met het hieronder getoonde aannamebestand.
15 lines in all: 6 of the source, 9 of the target.
| State | Lines | Meaning |
|---|---|---|
| AMBIGUOUS | 1 | More than one price fits and none is picked. |
| PRICED | 5 | A price record and a known quantity give an amount. |
| PRICE_SOURCE_ABSENT | 1 | No price source was available for this line. |
| QUANTITY_UNKNOWN | 1 | A price is known and the quantity is not: neither zero nor one. |
| TARGET_NOT_CHOSEN | 7 | The target design does not choose what the price needs. |15 lines in all: 6 of the source, 9 of the target.
| State | Lines | Meaning |
|---|---|---|
| AMBIGUOUS | 1 | More than one price fits and none is picked. |
| PRICED | 9 | A price record and a known quantity give an amount. |
| PRICE_SOURCE_ABSENT | 1 | No price source was available for this line. |
| TARGET_NOT_CHOSEN | 4 | The target design does not choose what the price needs. |Run 1
Van 15 regels zijn er 5 geprijsd. 7 wachten op een keuze van het doel, zoals een server-flavor, 1 heeft meerdere passende prijzen, 1 heeft geen bronprijs en 1 heeft een prijs maar geen hoeveelheid.
Run 2
Met het aannamebestand zijn 9 van de 15 regels geprijsd. Van de 6 die overblijven, zijn er 4 het bootvolume van de server en het datavolume, waarvan het bestand het doel niet noemt, 1 de AWS-servercompute (besturingssysteem en tenancy niet vermeld) en 1 de bucketopslag van AWS, waarvoor de cache geen prijslijst bevat.
Het aannamebestand
Twee van de vier items van het bestand dat in run 2 met --assumptions is meegegeven. De andere twee noemen een server-flavor en een opslagklasse van PostgreSQL als doelkeuze. Elk item noemt een onderwerp, een variabele, een waarde en een reden. De waarden zijn demogetallen, geen aanbevelingen.
schema_version: "1.0"
assumptions:
- id: cutover
scenario: STANDARD_730H
subject: scenario
variable: parallel_run_months
value: "2"
unit: month
explanation: "Planning figure for this demo: two months of side-by-side running" - id: volume-size-stackit-objectstorage-bucket.backups
scenario: STANDARD_730H
subject: stackit_objectstorage_bucket.backups
variable: volume_size
value: "2000"
unit: GB
explanation: "Demo figure: backups hold about 2 TB on average"Alleen wat u opgeeft wordt gebruikt
De template die de run schrijft, noemt elke waarde waarop het model wacht. Een regel die het bestand niet noemt, blijft zonder prijs. Let op: in run 2 noemt cost-model.json alleen het overlap- en het bucketitem als gebruikt, hoewel de twee doelkeuzes hun regels hebben geprijsd; lees bij elke geprijsde regel de redentekst, die de aanname noemt.
Planningsgetal voor de overlap
parallel_run_months is hoe lang beide omgevingen tegelijk draaien. De run noemt de bedragen per maand van elke kant, vermenigvuldigt ze met uw maanden en houdt het resultaat buiten elk totaal en elke vergelijking. In run 2 was dat 736,47 USD per maand voor de geprijsde bronregels en 1.355,93 tot 1.531,01 EUR voor de geprijsde STACKIT-regels bij de demokeuzes, elk een ondergrens omdat ongeprijsde regels ontbreken.
Hoe het model een regel weergeeft
Gelezen uit de twee runs. De klasse geeft aan hoeveel van een regel feit is.
| Status of klasse | Betekenis | Volgende actie in de run |
|---|---|---|
| PRICED | Een prijsrecord en een bekende hoeveelheid geven een bedrag | Geen; controleer de aanname als de klasse ASSUMPTION is |
| TARGET_NOT_CHOSEN | Het concept laat de flavor, het plan of de opslagklasse over aan een variabele | Geef de keuze op in het aannamebestand of in het invoerbestand |
| AMBIGUOUS | Meer dan één prijs past en geen is gekozen, bijvoorbeeld het besturingssysteem van een instance | Geef het ontbrekende feit op |
| PRICE_SOURCE_ABSENT, CACHE_MISSING | De prijslijst van het bronaanbod staat niet in de cache | Vul de prijscache eenmalig online met stacktoit prices refresh |
| QUANTITY_UNKNOWN, USAGE_NOT_STATED | Een prijs is bekend en het gebruik van één maand niet; de regel is dus geen 0 en geen 1 | Geef het gebruik op, bijvoorbeeld gigabytes in een bucket |
| KNOWN, ESTIMATE, ASSUMPTION, OUT_OF_MODEL | Feit uit de bron, een genoemde vermenigvuldiger zoals 730 uur, een hoeveelheid of klasse die u aannam, of niet berekend | Behandel OUT_OF_MODEL als onbekend, nooit als nul |
In run 2 was de vergelijking op omgevingsniveau PARTIAL en noemde die geen besparing, omdat de bronprijzen in USD waren, de STACKIT-prijzen in EUR en er geen wisselkoers was opgegeven.
Wat op het budget hoort en niet in het model zit
Het model berekent geen kosten voor gebruik, verkeer, support, licenties, beheer of migratiearbeid. Zet die zelf op het budget.
Dataoverdracht en aanvragen
Het model prijst gebruik alleen waar het bestand één maand ervan noemt. Uw broncloud bepaalt wat die rekent voor het lezen en uitgaand overdragen van objecten; vraag naar de kosten voor de volumes die u verplaatst.
Versiegeschiedenis
Amazon S3 rekent de normale tarieven voor elke versie van een object, elk een heel object. Het kopiëren van geschiedenis vermenigvuldigt het volume dat u leest en opslaat, dus bepaal of u die verplaatst.
Instellingen voor redundantie
Azure-opties voor redundantie wegen lagere kosten af tegen hogere beschikbaarheid. STACKIT Object Storage heeft volgens de run geen beheerde cross-region replicatie, dus een tweede kopie is een syncjob met eigen opslag en overdracht.
Parallel draaien
Beide omgevingen kosten geld terwijl u overschakelt. De run noemt dit apart als eenmalig item, per maand overlap en voor uw aangenomen maanden, in geen enkel totaal.
Mensen en tijd
Migratiearbeid, bijscholing en de pilot schat u zelf met aanpak 3.
Moment van de besparing (praktijk)
Een besparing telt vanaf de dag dat de bron wordt uitgefaseerd, niet vanaf de dag dat het doel draait. Plan de uitfasering als eigen mijlpaal.
Hoe u beslist
Een regel die u in een stuurgroep kunt toepassen.
Begin bij elke omgeving met aanpak 1
Die is goedkoop en toont hoeveel van de omgeving überhaupt te prijzen is. Een dekking van 5 van de 15 regels is een bevinding, geen mislukking.
Doelkeuzes afronden met de architecten
Regels met TARGET_NOT_CHOSEN zijn ontwerpvragen. Beantwoord ze in het invoerbestand en prijs daarna opnieuw.
Gemeten hoeveelheden toevoegen voor de duurste regels
Gebruik aanpak 2 voor opslag en verkeer waar de regel wel een prijs heeft en geen hoeveelheid.
Een pilotgolf gebruiken als workloads verschillen
Heeft de omgeving meerdere vormen, meet dan van elk één voordat u extrapoleert.
Bandbreedtes en dekking tonen, geen enkel getal
Toon het aandeel geprijsde regels, de aannames erachter en de items die erbuiten zijn gehouden. Run 2 geeft voor de STACKIT-kant al een bandbreedte in plaats van één getal.
Vragen van finance en architectuur
Zegt StackToIT hoeveel we besparen?
Alleen wanneer beide kanten voor dezelfde eenheden in één valuta zijn geprijsd. Run 2 noemde geen besparing en zei waarom. Een besparingspercentage vereist een volledige vergelijking met een wisselkoers waarvan bron en datum zijn genoemd.
Zijn de prijzen actueel?
Ze komen uit een prijscache met een ophaaldatum die in de run staat (hier 26 oktober 2026). Beide runs toonden het ontbrekende AWS S3-aanbod in de cache en noemden het commando om te verversen. De demoruns waren offline; zonder --offline kan een assessment ontbrekende openbare prijzen zelf ophalen.
Is de uitvoer een factuur?
Nee. De run noemt zijn getallen een eerste raming van de infrastructuurkosten onder uitdrukkelijke aannames, geen rekening: lijstprijzen, geen kortingen, geen Spot, geen savings plans.
En de kosten van de migratie zelf?
Niet berekend. Het enige eenmalige item dat het model noemt, zijn de kosten van het parallel draaien van beide omgevingen, los van elk totaal.
Welke valuta moeten we gebruiken?
Gebruik er één voor de beslissing. Het model houdt elke kant in zijn eigen valuta en vergelijkt alleen met een wisselkoers die u opgeeft.
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
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.