GCP Cost Estimation
tsdevstack is free and open source. All costs on this page are paid directly to Google Cloud. There is no bill from tsdevstack and there never will be.
These are estimates based on published GCP pricing as of July 2026 in a US region (us-central1). Actual costs depend on your region, traffic, and any pricing changes by Google. Always verify with the official pricing pages linked at the bottom.
The AI buildout is squeezing server hardware supply, and that is expected to reach cloud list prices in the second half of 2026. As of July 2026 the GCP rates on this page are unchanged. Server memory contract prices rose sharply through the first half of 2026, and there is typically a 6 to 9 month lag before that shows up in cloud pricing, with forecasts pointing to roughly 5-10% general increases.
On GCP the most exposed lines are Cloud SQL and Memorystore, which are priced off provisioned memory, followed by Cloud Run compute. Load balancer and Cloud Armor fees are the least exposed. If you are budgeting past Q3 2026, add a 10% buffer on the database and cache lines.
What Gets Deployed
A typical tsdevstack project (3 NestJS backends + 1 Next.js frontend) creates these billable resources on GCP:
You can override CPU, memory, instance counts, database tier, Redis tier, and disk size per service in infrastructure.json. See Service Configuration for all available options.
Scenario 1 — Development (Scale-to-Zero)
Backend services and frontend set to minInstances: 0. Kong stays on (minInstances: 1). Assumed traffic: ~1,000 requests/day (testing only).
Cold starts after scale-to-zero: 2-8 seconds. Cloud Run handles this natively — no wake-up mechanisms needed.
tsdevstack deploys Cloud Run services with cpuIdle: true, which is request-based billing. A minInstances: 1 instance that is not serving requests bills CPU at the reduced idle rate of $0.0000025/vCPU-second rather than the active rate of $0.000024/vCPU-second. In a dev environment the gateway sits idle nearly all month, so an always-on Kong costs far less than a full-rate calculation suggests.
Scenario 2 — Production (Always-On, Single Instance)
All services set to minInstances: 1. Assumed traffic: ~100,000 requests/day (3M/month).
Cloud Run has two billing modes: CPU allocated during requests (request-based, the tsdevstack default) and CPU always allocated (instance-based). Under request-based billing an always-on instance pays memory for the full 730 hours, CPU at the idle rate while waiting, and the active CPU rate only while serving a request. The figures above assume ~3M requests/month at roughly 150ms of CPU each. Slower or heavier requests push these lines up toward the active rate.
Scenario 3 — Production Under Load (3 Instances, 24/7)
Assumed traffic: ~10M requests/day (300M/month). At this volume every service is effectively serving continuously, so CPU bills at the active rate for most of the month. Whether that arrives as 2 saturated instances or 3 at partial load barely changes the bill: what you pay for is total active vCPU-seconds, and traffic sets that.
Cloud Armor bills $0.75 per million requests, so at 300M/month it alone is ~$236, more than the database, cache, and load balancer combined. Together with Cloud Run's $0.40/million, per-request fees are ~$356 of this total. Earlier versions of this page listed Cloud Armor at ~$15-20 here, which was roughly 10x too low.
Cloud Run's active CPU rate is $0.0864/vCPU-hour, which is 2.1x AWS Fargate's $0.04048. GCP is the cheapest of the three providers when your services sit idle and the most expensive when they are saturated.
Instance-based billing (cpuIdle: false) is a flat $0.0648/vCPU-hour, versus $0.0864 while active under the default request-based mode. At this volume that cuts the compute lines by roughly 25%, around $165/month. Also consider Cloud Run committed use discounts (up to 17% savings).
Cloud Run Billing, and Why Kong Is Not $70
An earlier version of this page listed Kong at ~$70/month. That came from 730 hrs × ($0.0864/vCPU-hr + $0.009/GiB-hr), which applies Cloud Run's active CPU rate to every second of the month. It is not one of the two rates Cloud Run actually charges.
For 1 vCPU + 1 GiB over 730 hours:
It is reasonable to assume Kong is expensive because every request passes through it. Kong does see 100% of traffic, but that is not what drives the bill. Kong runs with a request concurrency of 1000, and under request-based billing CPU is charged while any request is in flight, not per request. One thousand concurrent requests cost the same CPU-second as one.
So the billed fraction of the month is 1 - e^(-arrival_rate × request_duration), not the sum of request durations:
*Above ~10M requests/day the $0.40/million request charge overtakes compute.
Kong only reaches ~$70 at roughly 5M requests/day sustained, at which point it would have scaled past one instance anyway.
What Drives the Cost
How to Reduce Costs
- Set
minInstances: 0for backend services and the frontend in dev — accept 2-8s cold starts, pay near-zero for idle compute. Kong is clamped to at least 1 regardless, and production should stay at 1. - Use
db-f1-microfor dev databases — upgrade only when needed - Right-size CPU/memory — monitor actual usage and lower from defaults if your services don't need 1 vCPU
- Committed use discounts — 1-year commitment saves up to 17% on Cloud Run compute
Override any default in .tsdevstack/infrastructure.json:
See Service Configuration for all available options.