De voorbeeld-stemapp van Docker draait als vijf containers. Een Python-webapp neemt de stemmen aan en geeft ze door aan Redis. Een .NET-worker zet elke stem over naar Postgres. Een Node.js-pagina toont de resultaten zodra ze binnenkomen. We draaiden het geheel op een test-VM (geen DreamHost-server) om te zien hoeveel server je ervoor nodig hebt. Tien minuten na de start gebruikten de vijf containers samen 177 MiB.
Alle vijf containers moeten blijven draaien, dus op Fly.io, Google Cloud Run en AWS Fargate betaal je voor elk ervan de klok rond. Elk platform rekent de database, Redis, het netwerk en uitgaand dataverkeer daarnaast als aparte posten. Voor de rekeningen hieronder kozen we per platform de kleinste grootte waarin past wat de stack gebruikte, zodat we bij alle drie dezelfde werklast doorrekenen.
Wat de stack gebruikte op onze test-VM
De VM was even groot als ons Stack 4-abonnement. We startten de stack vanaf de gepubliceerde images van Docker, lieten hem tot rust komen en stuurden daarna met k6 vijf minuten lang elke seconde 20 stemmen en 2 weergaven van de resultatenpagina. Alle 6.602 verzoeken kregen antwoord, en 95 procent kwam binnen 7,8 ms terug.
| Container | Geheugen, stabiel / piek | Kleinste passende grootte, Fly / Run / Fargate |
|---|---|---|
| Stemmen (Python-webapp) | 92 / 95 MiB | 256 MB / 1 vCPU / 0.25 vCPU |
| Resultatenpagina (Node-webapp) | 22 / 30 MiB | 256 MB / 1 vCPU / 0.25 vCPU |
| Worker (.NET) | 30 / 36 MiB | 256 MB / 1 vCPU-pool / 0,25 vCPU |
| Redis | 6 / 29 MiB | 256 MB / 1 GiB Memorystore / 0,25 vCPU |
| Postgres | 28 / 30 MiB | 1 GB / 0,6 GB / 1 GiB, alle beheerd |
| Alle vijf | 177 / 197 MiB in de eerste test | Hieronder per post doorgerekend |
Stabiel is de mediaan van 12 metingen met docker stats na tien minuten, en piek is de hoogste meting bij 20 stemmen per seconde. De pieken komen uit twee tests. In de eerste, op de VM met 4 GB, piekte Redis op 6 MiB en alle vijf containers samen op 197 MiB. Bij een herhaling op een VM met 8 GB haalde Redis 29 MiB, het getal in de rij van Redis.
Geen enkele container kwam boven ongeveer 105 MiB, zelfs niet bij 200 stemmen per seconde, dus de kleinste grootte die elk platform verkoopt, geeft elke container nog altijd meer dan twee keer zijn piekgeheugen. De rekeningen hieronder gaan uit van die kleinste groottes, behalve waar de CPU-regels van Cloud Run meer vragen.
De CPU kwam bij 20 stemmen per seconde nauwelijks in beweging. De mediaan van de stemcontainer was 4% van één CPU in de herhaling en 9,3% in de eerste test. Een gedeelde vCPU bij Fly kan 6,25% gebruiken voordat hij zijn burst-tegoed aanspreekt, dus de stemapp zou een deel van de tijd uit dat tegoed putten. We begrensden ook de stem-, resultaten-, worker- en Redis-containers op 0,25 vCPU en 512 MiB, de kleinste Fargate-taak, met Linux-limieten op onze tweede test-VM. Postgres begrensden we niet, omdat die in de rekeningen op RDS draait. In die herhaling was de p95-latentie van de stack 6,8 ms met limiet en 8,6 ms zonder, een verschil dat binnen de normale spreiding tussen tests valt. De stemapp zou waarschijnlijk als eerste tegen die limiet aanlopen als het verkeer groeit.
Met de stack en Portainer actief gebruikte de hele VM 595 MiB en had hij nog 3.309 MiB beschikbaar. Je zou deze stack dus prima op Stack 4 kunnen draaien, dat minder kost dan Stack 8. Wij zouden toch voor Stack 8 kiezen, dat op de Docker-pagina wordt aangeraden voor apps in productie, omdat het ruimte laat voor een veel drukkere versie van deze stack en voor een database die groeit.
Maandelijkse kosten bij drie groottes
Fly.io is geprijsd in Ashburn, Virginia, Cloud Run in Iowa en AWS in US East (N. Virginia). Voor elk gelden de gepubliceerde standaardtarieven (on-demand), geraadpleegd op 20 okt 2026, voor een maand van 730 uur, exclusief btw. Fly.io noemt prijzen voor Machines per 30 dagen, dus die zijn omgerekend naar 730 uur; Managed Postgres telt mee tegen de vermelde maandprijs.
- Scenario 1: de stack hierboven zonder de resultatenpagina, met 1 miljoen verzoeken, 50 GB uitgaand dataverkeer en een database van 5 GB per maand.
- Scenario 2: voegt de resultatenpagina toe als tweede webdienst, met 3 miljoen verzoeken, 150 GB uitgaand en een database van 10 GB.
- Scenario 3: twee kopieën van elke webdienst, met 10 miljoen verzoeken, 1 TB uitgaand en een database van 20 GB.
| Je stack die altijd draait | Fly.io, per maand | Google Cloud Run, per maand | AWS Fargate, per maand | Docker VPS Stack 8, elk scenario |
|---|---|---|---|---|
| Scenario 1: webapp, worker, Redis, Postgres | $47.06 | $83.74 | $70.68 | $13.99/maandvoor 3 maanden, dan $21.99/maand |
| Scenario 2: twee webdiensten, worker, Redis, Postgres | $52.68 | $111.57 | $86.84 | |
| Scenario 3: twee kopieën van elke webdienst, 1 TB uitgaand | $76.92 | $248.33 | $194.16 |

Elke platformrekening omvat een beheerde database met back-ups, terwijl je op de server Postgres zelf draait en er zelf back-ups van maakt. Van scenario 1 naar scenario 3 wordt de rekening van Cloud Run ongeveer drie keer zo hoog en die van Fargate bijna. Die van Fly.io stijgt met zo'n 60%.
Waar het geld van scenario 1 naartoe gaat
| Kostenpost | Fly.io | Google Cloud Run | AWS Fargate |
|---|---|---|---|
| Webapp | $2,22, Machine van 256 MB | $12,01, één minimale instance met 1 vCPU | $7,21, ARM-taak met 0,25 vCPU |
| Worker | $2.22 | $31,17, worker pool met 1 vCPU | $7.21 |
| Redis | $2,22, Machine van 256 MB | $35,77, Memorystore Basic 1 GiB | $7,21, taak |
| Postgres | $39,40, Managed Postgres Basic en 5 GB | $9,77, db-f1-micro, 10 GiB SSD en back-ups | $13,98, db.t4g.micro en 20 GB gp3 |
| Load balancer, IP-adressen, TLS | $0, gedeeld IPv4 en gratis certificaten | $0, het run.app-adres | $35,08, load balancer en 5 IPv4-adressen |
| Verzoeken | Inbegrepen | $0.40 | Inbegrepen |
| Uitgaand dataverkeer, 50 GB | $1.00 | $5.47 | $0, binnen de gratis 100 GB |
| Gratis niveau | Geen voor nieuwe organisaties | -$10.84 | Tegoeden niet meegeteld; gratis 100 GB hierboven verrekend |
| Totaal (opgeteld vóór afronding) | $47.06 | $83.74 | $70.68 |
Het grootste deel van de rekening van Fly.io is de database. Managed Postgres met opslag komt op $39,40, waarvan $38 voor het Basic-abonnement. De drie Machines kosten samen $6,66. Elk Managed Postgres-abonnement omvat hoge beschikbaarheid, back-ups en verbindingspooling.
Op Cloud Run houd je één minimale instance aan op de webdienst, zodat verzoeken niet op een koude start hoeven te wachten. Die krijgt 1 vCPU, omdat een dienst alleen minder dan 1 vCPU kan gebruiken als elke instance één verzoek tegelijk afhandelt. We gingen uit van 100 ms actieve tijd per verzoek, omdat Cloud Run de gefactureerde tijd naar boven afrondt op 100 ms. De worker draait als worker pool, de optie van Google voor doorlopend achtergrondwerk, en een worker pool begint bij 1 vCPU. We hebben die geprijsd op basis van de tarieftabel van Google. Het eigen rekenvoorbeeld van Google voor een worker pool met 1 vCPU en 512 MiB, geprijsd in België, komt op $16,83 per maand vóór het gratis niveau. Dat is lager dan de tarieftabel van Google oplevert, dus controleer jouw situatie in de prijscalculator van Google.
Bij Google is Redis de grootste post die je betaalt. Een Redis-container zou als worker pool kunnen draaien, die op een privé-IP verbindingen vanuit je VPC accepteert, maar die zou ook bij een volledige vCPU beginnen, ongeveer $31 per maand. Daarom hebben we Memorystore for Redis geprijsd, de beheerde Redis van Google, waarvan de kleinste Basic-instance 1 GiB bevat.
Bij AWS betaal je meer voor het netwerk dan voor de containers. De drie Fargate-taken kosten samen $21,63, terwijl de load balancer en IP-adressen op $35,08 uitkomen. We hebben de taken geprijsd als Linux/ARM; op x86 zou elke taak ongeveer $9,01 kosten in plaats van $7,21. Een Application Load Balancer rekent per uur af en moet minstens twee Availability Zones gebruiken. AWS rekent $0,005 per uur, ongeveer $3,65 per maand, voor elk openbaar IPv4-adres. We telden vijf adressen: één voor elk van de drie taken, plus twee voor de load balancer, één in elke Availability Zone.
Naarmate het verkeer groeit, gaat uitgaand dataverkeer de rekening bepalen. Bij de 1 TB per maand van scenario 3 is het de grootste afzonderlijke post bij Google, met $111,64. Bij AWS komt het op $81,00 na de gratis 100 GB. Fly.io rekent $0,02 per GB, waarmee de terabyte op $20,00 komt. Op een Docker VPS betaal je niet per GB, al geldt wel redelijk gebruik.
Wat elke prijs omvat
| Fly.io, Cloud Run, Fargate | Docker VPS | |
|---|---|---|
| Database | Beheerde Postgres met back-ups. Het Basic-abonnement van Fly biedt hoge beschikbaarheid. De machines met gedeelde cores van Cloud SQL hebben geen SLA. | Postgres draait in een container die je zelf beheert. Volgens het Help Center van DreamHost bevat een VPS geen automatische back-ups. |
| Waar het draait | De regio die je kiest, zoals hier Ashburn, Iowa of N. Virginia | Volgens het Help Center van DreamHost wordt elke VPS gehost in het datacenter US East in Ashburn, Virginia. Je kunt opschalen tot Stack 32. |
| CPU | Gedeelde of gedeeltelijke vCPU's op Fly.io en Fargate | 2 vCPU AMD EPYC op Stack 8 |
| Uitgaand dataverkeer | Gefactureerd per GB boven een eventuele gratis bundel | Ongelimiteerd, binnen redelijk gebruik |
| Updates | Het platform beheert de hosts en jij werkt je images bij | De support van DreamHost is 24/7 beschikbaar voor de hardware, het netwerk en de connectiviteit. Jij beheert het besturingssysteem, de software en de configuratie, inclusief je images. |
| Dashboard | De console van elk platform | Portainer CE, geïnstalleerd |
Postgres zelf draaien als Fly.io-app verlaagt ook de rekening van Fly.io, maar dan neem je hetzelfde databasewerk op je als op een server. Voor een vergelijking van alleen de database, zie wat beheerde Postgres op zichzelf kost. Is je altijd actieve app één Laravel-app, dan behandelt Laravel Cloud en Forge: prijzen voor één app die situatie, inclusief taakplanner en queue-worker. En als Portainer meer dashboard is dan je nodig hebt: we hebben Portainer vergeleken met lichtere Docker-dashboards op een kleine server.
Bereken de prijs van je eigen stack
- Zet de containers op een rij die de hele maand draaien
Als een container op elk uur moet reageren of een wachtrij afwerkt, draait hij de hele maand, dus reken hem als altijd actief. Laat alles wat kan slapen op een platform dat per verzoek factureert: zo'n enkele kleine container past vaak binnen het maandelijkse gratis niveau van Cloud Run.
- Meet wat elke container gebruikt
Voer dit uit op een machine waarop de stack draait, één keer nadat hij tot rust is gekomen en nog eens onder je normale verkeer:
bashdocker stats --no-stream \ --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"Onze stack gebruikte 335 MiB twee minuten na de start en ongeveer de helft daarvan na tien minuten, dus geef de jouwe even de tijd voordat je meet.
- Kies de kleinste grootte waarin hij past
Reken op ongeveer 1,5 keer de hoogste meting van elke container. Controleer daarna de minimums van elk platform in de tabel hierboven.
- Tel de posten buiten de containers op
Tel daarna de database, Redis, load balancer, IP-adressen en uitgaand dataverkeer op. In onze drie scenario's zijn die op elk platform groter dan de rekenkracht. In de uitsplitsing per dienst op je laatste factuur zie je welke je al betaalt.
- Maak een back-up van Postgres voordat je overstapt
Een dump van de databasecontainer kost één commando. Zet het in een klein script dat cron elke nacht uitvoert. Voor de database van de stemapp:
bashdocker compose exec -T db \ pg_dump -U postgres -Fc postgres \ > votes-$(date +%F).dumpKopieer elke dump naar opslag buiten de server, en zet er af en toe een terug in een losse container om te controleren of het werkt.
Blijf op je platform als
Delen van je app schalen tussen verzoeken naar nul, je bedient gebruikers vanuit meerdere regio's, of je wilt dat iemand anders de failover en back-ups van de database regelt.
Verlaag eerst de kosten als
Eén post is veel groter dan de rest, bijvoorbeeld een worker pool die vastzit op het minimum van 1 vCPU, en een verbintenis van een jaar dekt die post.
Stap over naar een Docker VPS als
De hele stack draait de hele maand in één regio, je uitgaande dataverkeer groeit voorbij de gratis hoeveelheden, en je bent klaar om Postgres en de back-ups ervan zelf te beheren.
Hoe we hebben gemeten
DreamHost voerde de test uit op 20 oktober 2026, op een Colima-VM op een Mac met Apple silicon. Daarop draaide Ubuntu 24.04 op aarch64 met Docker 29.5.2. De VM had 3.904 MiB bruikbaar geheugen en geen swap. De begrensde test en een herhaling van de belastingstest liepen op een tweede VM met hetzelfde aantal CPU's en twee keer zoveel geheugen, omdat het extra geheugen niet verandert wat elke container gebruikt. k6 stuurde de belasting vanaf dezelfde VM en deelde dus de CPU met de stack. Onder belasting draaide docker stats elke 3 tot 5 seconden, dus een piek die korter duurde, kon het missen. De stap met 200 stemmen per seconde liep op een stack die al warmgedraaid was, direct na de lichtere stappen.
De VPS-abonnementen van DreamHost noemen AMD EPYC-processors, die x86 zijn, terwijl de VM op arm64 draaide. We hebben niets op Fly.io, Cloud Run of Fargate gedraaid, dus koude starts en CPU-gedrag van die platforms zitten niet in deze cijfers. De begrensde run bootst een Fargate-taak alleen na en laat de Service Connect-agent weg, die op Fargate de CPU en het geheugen van elke taak deelt. Cloud SQL is geprijsd met 10 GiB SSD-opslag, onze eigen keuze. Belasting, logging, opslag in een containerregister, aanmeldtegoed en betaalde supportabonnementen zitten niet in de rekeningen. We passen het gratis niveau van Google toe op zowel de services als de workerpools. Telt Google die als één tegoed, dan vallen de rekeningen bij Google hoger uit. Alle platformprijzen zijn op 16 oktober en opnieuw op 20 oktober 2026 geraadpleegd, zonder wijzigingen.
Veelgestelde vragen over de kosten van containers die altijd draaien
Is Fly.io nog gratis?
Nieuwe organisaties krijgen op Fly.io geen gratis niveau en geen maandelijks gratis tegoed. De proefperiode duurt 2 uur Machine-looptijd of 7 dagen, afhankelijk van wat het eerst afloopt.
Is Google Cloud Run voor altijd gratis?
Het wordt elke maand opnieuw ingesteld, telt voor je hele factureringsaccount en wordt verrekend als korting. Voor services op basis van verzoeken dekt het 180.000 vCPU-seconden, 360.000 GiB-seconden en 2 miljoen verzoeken. Google noemt een tweede tegoed voor workerpools. We hebben beide toegepast, wat $10,84 van scenario 1 afhaalde. Telt Google ze als één tegoed, dan is die rekening $5,22 hoger.
Verandert een NAT-gateway de rekening van Fargate?
Ja, die wordt hoger. Staan je taken in privésubnetten achter een NAT-gateway, dan rekent AWS volgens de VPC-prijzen $0,045 per uur voor de gateway, ongeveer $32,85 per maand, plus $0,045 per GB die erdoorheen gaat. In onze rekeningen krijgt elke taak in plaats daarvan een openbaar IPv4-adres.
Maakt een verplichting van een jaar het verschil kleiner?
Alleen de rekenkracht wordt goedkoper: met één reserveringsblok komt scenario 1 op Fly.io uit op $45,06. Met kortingen voor een gebruiksverplichting van één jaar zakt Cloud Run naar $72,97. Een Compute Savings Plan van één jaar brengt Fargate op $66,08, met RDS nog op on-demandbasis. Managed Postgres van Fly, de 1 GiB-laag van Memorystore en Cloud SQL met gedeelde cores krijgen geen korting.
Bronnen
- Fly.io Resource Pricing, Fly.io, geraadpleegd op 20 okt. 2026. fly.io/docs/about/pricing
- Managed Postgres, Fly.io, geraadpleegd op 20 okt. 2026. fly.io/docs/mpg
- Free trial, Fly.io, geraadpleegd op 20 okt. 2026. fly.io/docs/about/free-trial
- CPU performance, Fly.io, geraadpleegd op 16 okt. 2026. fly.io/docs/machines/cpu-performance
- Cloud Run pricing, Google Cloud, geraadpleegd op 20 okt. 2026. cloud.google.com/run/pricing
- Configure CPU limits for services, Google Cloud, geraadpleegd op 16 okt. 2026. cloud.google.com/run/docs/configuring/services/cpu
- Configure CPU limits for worker pools, Google Cloud, geraadpleegd op 16 okt. 2026. cloud.google.com/run/docs/configuring/workerpools/cpu
- Deploy worker pools, Google Cloud, geraadpleegd op 16 okt. 2026. cloud.google.com/run/docs/deploy-worker-pools
- Cloud SQL pricing, Google Cloud, geraadpleegd op 20 okt. 2026. cloud.google.com/sql/pricing
- Memorystore for Redis pricing, Google Cloud, geraadpleegd op 20 okt. 2026. cloud.google.com/memorystore/docs/redis/pricing
- Network pricing, Google Cloud, geraadpleegd op 20 okt. 2026. cloud.google.com/vpc/network-pricing
- AWS Fargate Pricing, Amazon Web Services, geraadpleegd op 20 okt. 2026. aws.amazon.com/fargate/pricing
- AWS Price List API files (ECS, ELB, VPC, RDS, Data Transfer, US East), Amazon Web Services, geraadpleegd op 20 okt. 2026. pricing.us-east-1.amazonaws.com/offers/v1.0/aws/index.json
- Compute Savings Plans price list, US East, Amazon Web Services, geraadpleegd op 16 okt. 2026. pricing.us-east-1.amazonaws.com/savingsPlan/v1.0/aws/AWSComputeSavingsPlan/current/region_index.json
- Fargate task CPU and memory, Amazon Web Services, geraadpleegd op 16 okt. 2026. docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-tasks-services.html
- Elastic Load Balancing pricing, Amazon Web Services, geraadpleegd op 20 okt. 2026. aws.amazon.com/elasticloadbalancing/pricing
- Application Load Balancers, Amazon Web Services, geraadpleegd op 16 okt. 2026. docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html
- Amazon VPC pricing, Amazon Web Services, geraadpleegd op 20 okt. 2026. aws.amazon.com/vpc/pricing
- Amazon ECS Service Connect, Amazon Web Services, geraadpleegd op 16 okt. 2026. docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
- Amazon RDS DB instance storage, Amazon Web Services, geraadpleegd op 16 okt. 2026. docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html
- Amazon EC2 On-Demand Pricing (data transfer), Amazon Web Services, geraadpleegd op 20 okt. 2026. aws.amazon.com/ec2/pricing/on-demand
- Example voting app, Docker (GitHub), geraadpleegd op 16 okt. 2026. github.com/dockersamples/example-voting-app
- Container runtime contract, Google Cloud, geraadpleegd op 16 okt. 2026. cloud.google.com/run/docs/container-contract
- Docker VPS Hosting, DreamHost, geraadpleegd op 22 okt. 2026. dreamhost.com/hosting/vps/docker
- VPS overview, DreamHost Help Center, geraadpleegd op 22 okt. 2026. help.dreamhost.com/hc/en-us/articles/50476238203028-VPS-overview
- Resource Allocation Policy, DreamHost, geraadpleegd op 16 okt. 2026. dreamhost.com/legal/resource-allocation-policy