Galle, LK--:--5/6 sites live

Paying for Cloud as a Student: Budgets, Static Sites and a $10 PaaS

Budget alerts first, static by default, the minimums that quietly bill you, load balancers vs Ingress, and running a dozen apps on one Coolify VM.

23 Oct 20264 min read#Cost#FinOps#GCP#Coolify
Paying for Cloud as a Student

When you're a student, every cloud bill is personal. You don't have a FinOps team; you have a debit card and a free-trial counter. This story is about the cost decisions behind my projects — what actually costs money, what doesn't, and the defaults that quietly charge you.

Prices below are the list prices I recorded in my handbook labs; they change, and they vary by region. Treat them as orders of magnitude, and check the provider's pricing page before you commit.


Rule zero: the budget alert comes before the first VM

The first GCP lab in my handbook isn't a VM. It's billing: budgets and alerts. Set a monthly budget with email alerts at 50%, 90% and 100% before you create anything. It won't stop spending on its own, but it turns a surprise into a notification.

GCP budget alerts lab


The cheapest server is no server

Four of my client sites and three learning hubs have no backend at all:

  • Mahesh Travellers uses Next.js static export. Tour content changes a few times a year, so the whole site is plain files on a CDN. No server bill, nothing to patch, fast for visitors in Europe.
  • W3DevOps, the SRE handbook and the networking hub are dependency-free HTML/CSS/JS. On S3 + CloudFront that's fractions of a cent per month at student traffic.
  • Super King Star Resort keeps rooms and packages in a TypeScript file, avoiding a database connection cost entirely.

For storage you do need, the class matters more than the provider:

Class (GCS)Minimum duration~$/GB-monthUse for
Standardnone0.020Live assets
Nearline30 days0.010Monthly reports, raw logs
Coldline90 days0.004DR snapshots
Archive365 days0.0012Compliance archives

Quintrix ITSO exists because of this table: most CCTV footage belongs in the bottom row, and lifecycle rules can't tell which.


Serverless isn't automatically cheap

Cloud Run bills while requests are running and scales to zero — ideal for a competition demo like Nora Labs. But the defaults have costs:

  • --min-instances=1 (CryptoEdge, to keep its scheduler alive) means paying for one warm instance all month, traffic or not.
  • --max-instances is a cost ceiling as much as a scaling limit. Nora's 1 is about SQLite, but it also caps a runaway bill.
  • Artifact Registry storage grows forever. Every push tags :$SHA. Add a cleanup policy or you pay to store every build you ever made.

Load balancers add up quietly

From the Kubernetes track: a cloud LoadBalancer costs roughly $15–25 per month each. Give 20 microservices their own and you're at ~$500/month before any compute. An Ingress controller puts them all behind one. The same arithmetic is why I don't run Kubernetes for small projects at all.


A sub-$10/month PaaS

For everything small — previews, staging sites, CinePrompt, Transcript Maker — I self-host Coolify v4 on one Google Compute Engine VM in us-central1-b. Git-push deploys, automatic SSL through Traefik, wildcard DNS, for under $10/month of compute.

OptionRough monthly costTrade-off
Managed PaaS per app$25–200+ per service, strict RAM capsZero ops
One VPS / small VM + Coolify$5–20 for the whole boxI'm the on-call engineer
Managed ECS/EKSCluster + LB + nodesOverkill for a dozen side projects

The catch is that "cheap" includes my time: firewall rules, SSH permissions, patching. Anything that needs real uptime goes back to a managed platform.


The bill nobody sends: abandoned resources

The flip side of cost control is that things get cleaned up — sometimes things you still wanted. My live-check script found the Nora Labs URL returning a Google 404 on 30 October 2026; the full story is in Cloud Run problems I actually hit. Whatever you delete to save money, delete it on purpose, and update every link that points at it.

What I'd tell another student

  1. Budget alert first, always.
  2. Default to static. Add a server when a feature demands it.
  3. Read the minimums: storage durations, min-instances, load balancers.
  4. One small VM with Coolify beats ten managed apps for side projects.
  5. Put cost-relevant limits in config with a comment saying why.
  6. Keep a list of what's running — and check it.

See the DevOps deployment map →


Keep going: ← Previous story · Next story →