The Google Cloud free tier is a monthly allowance on more than 20 products, counted per billing account and with no end date. For a small app it covers 2 million Cloud Run requests, 50,000 Firestore reads a day, 5 GB of Cloud Storage in three US regions and one e2-micro VM. Cloud SQL is never free, and the $300 trial is a separate 90-day credit.
In short
- The Free Tier covers 20+ products, needs a billing account, is counted per billing account (Firestore and logging per project), has no end date and does not roll over: what a month leaves unused is gone.
- Cloud Run gives 180,000 vCPU-seconds, 360,000 GiB-seconds and 2 million requests a month; Firestore 1 GiB and 50,000 reads, 20,000 writes and 20,000 deletes a day; Cloud Storage 5 GB-months, only in
us-west1,us-central1andus-east1. - A small app of 1,000 visits a day, priced by exodus-cost at list prices of October 2026, costs $1.08 a month in
us-central1, and the whole $1.08 is internet egress. The same app on a Cloud SQLdb-f1-microcosts $10.45. - The free e2-micro VM is free; its public IPv4 address is not: $0.005 an hour, about $3.65 a month.
- The Free Trial is $300 for 90 days, once. When it ends without an upgrade, resources stop at once and are deleted after a 30-day grace period.
Prices are Google's list prices, read on October 19, 2026.
Two offers with "free" in the name
New accounts meet two offers, and most confusion about "is Google Cloud free" comes from mixing them up.
The Free Trial is $300 of credit that lasts 90 days. You get it if you have never paid for Google Cloud, Google Maps Platform or Firebase and have not had the trial before. Signing up still asks for a card or another payment method; Google places a temporary hold of $0 to $1 on it to check it, and does not charge it. The credit sits on a Free Trial billing account, and while the account is on the trial nothing is billed.
The Free Tier is a list of monthly allowances, product by product, that applies to every billing account in good standing, on the trial or paid. Google's page says it has no end date, and that Google may change or remove the limits with 30 days' notice. An account with a negotiated pricing contract or a custom rate card is not eligible, apart from a few products the page names.
The two stack. During the trial, usage inside the free tier costs nothing and does not touch the $300: Google's free program page says free tier usage is "not charged against your $300 free credit". Usage beyond the free tier is paid from the credit while there is credit. After you upgrade to a paid account, the free tier keeps going and anything above it goes to your card.
So an app that fits in the free tier does not need the trial at all. It does need a billing account, because the free tier is only available through one.
What the free tier covers for a small app
Google's table lists more than 20 products. For an app that serves web requests, keeps some data and stores some files, these are the lines that matter. All amounts are per month unless the line says otherwise.
Cloud Run, on the default request-based billing: 180,000 vCPU-seconds, 360,000 GiB-seconds of memory and 2 million requests, plus 1 GiB of internet egress within North America. At 1 vCPU and 512 MiB that is 1.8 million requests of 100 ms, or 180,000 requests of one second, if they do not overlap. The allowance is money, not seconds: Google applies it as a discount at Tier 1 prices, so in a Tier 2 region such as London or Frankfurt it covers fewer seconds. The Cloud Run free tier, explained works through all of it, including instance-based billing, jobs and worker pools.
Firestore: 1 GiB of stored data, 50,000 document reads, 20,000 writes and 20,000 deletes a day, and 10 GiB of outbound data transfer a month. The daily quotas reset around midnight Pacific time. Only one database per project gets them, the one called (default); a named database is billed from the first read. TTL deletes, point-in-time recovery data, backups, restores and clones have no free usage either.
Cloud Storage: 5 GB-months of Standard storage, 5,000 class A operations (uploads, lists) and 50,000 class B operations (reads), and 100 GB of egress from North America. Every one of these applies only to buckets in us-west1, us-central1 and us-east1, added up across the three. A bucket in Europe or Asia pays for its storage from the first gigabyte. Exodus team: on our own bill the operations allowance also showed up for a bucket in Belgium; plan by Google's page, which says US only.
Compute Engine: one e2-micro VM, counted in hours, so one instance runs all month for free, or two run half of it. It must sit in us-west1, us-central1 or us-east1, with 30 GB-months of standard persistent disk and 1 GB of egress from North America. GPUs are always charged.
Around the app: Cloud Build 2,500 build-minutes on e2-standard-2; Artifact Registry 0.5 GB of stored images; Secret Manager 6 active secret versions and 10,000 accesses; Cloud Scheduler 3 jobs; Cloud Tasks 1 million operations; Pub/Sub 10 GiB of messages; BigQuery 1 TiB of queries and 10 GiB of storage; and Cloud Logging, the first 50 GiB of logs per project.
The way an allowance is counted decides who shares it. Per billing account means every project linked to the account draws from one pool, and the first usage of the month spends it, whichever project that is. A staging copy, a teammate's side project and the production app all eat the same 180,000 vCPU-seconds. Per project means each project has its own: two projects get two Firestore free quotas and two lots of 50 GiB of logs. To see which projects share an account:
gcloud billing accounts list
gcloud billing projects list --billing-account=BILLING_ACCOUNT_IDWhat is never free
These are the lines that turn a "free" app into a bill, roughly in the order a small app meets them.
Cloud SQL. It has no free tier. Its pricing page offers only the $300 credit to new customers. The smallest instance, db-f1-micro, is $0.0105 an hour, $7.67 for a 730-hour month, before storage; shared-core machines like it are also outside the Cloud SQL SLA. The Cloud SQL smallest instances guide prices every small size with storage and backups. There is also a Cloud SQL free trial instance: 30 days of an Enterprise Plus instance with 8 vCPUs, 64 GB of memory and 100 GB of storage, one per new project. It has no SLA and no backups, its settings cannot be changed, and after 30 days it stops serving unless you upgrade it to a paid instance (it is kept for a 90-day grace period, then deleted). That is a test drive, not a free database.
Internet egress past the allowances. Data your app sends to users is charged at $0.12 a GiB on the Premium Tier to North America and Europe, after the first GiB of the month. The allowances above are small: Cloud Run's 1 GiB counts only within North America. For most small apps egress is the first line that is never zero, as the next section shows. Egress on Google Cloud, explained has the full price table.
A VM's public IPv4 address. The e2-micro is free; an external IPv4 address in use on it is $0.005 an hour, with one hour a month free per account. Left on all month that is about $3.65. A VM that only talks out through other services can run with --no-address, but then it cannot be reached from the internet directly.
Firestore beyond the default database. Named databases, backups, point-in-time recovery and TTL deletes are billed from the first unit.
Anything above a quota, at list price, with no warning. The free tier never stops spending. A paid account goes on running and billing past every allowance. A budget is the only alarm, and the commands to set one are below.
A small app's month, priced
To see what this means in dollars, here is one small app priced by exodus-cost, the open pricing code of the Exodus CLI, at the list prices it carries (read October 9, 2026, Firestore October 13; Cloud Run, Firestore and Cloud SQL rechecked on October 19). It gives every free tier to this one app, as if nothing else shared the billing account.
The app: one Cloud Run service at 1 vCPU and 512 MiB, 1,000 visits a day, 10 requests a visit of 200 ms each with no overlap (an upper bound), 20 Firestore reads and 2 writes a visit, 0.5 GiB in Firestore, 2 GB of user files in Cloud Storage with 1,000 uploads a month, 3 secrets, 0.4 GB of container images, and 0.3 MB sent to the user per visit. In a 30-day month that is 300,000 requests, 60,000 vCPU-seconds, 600,000 reads and 9 GB of egress.
In us-central1 every line but one comes to $0:
- Cloud Run: $1.64 at list price, all of it inside the free tier.
- Firestore: $0.34 at list price, inside the daily quotas.
- Cloud Storage, Secret Manager and Artifact Registry: $0.27 at list price, inside their allowances.
- Internet egress, 9 GB: $1.08.
So the honest answer to "can a small app run free on Google Cloud" is: almost. The compute and the database fit in the free tier with room to spare, and the bill is the data sent to users. exodus-cost charges egress from the first gigabyte; the network pricing page gives the first GiB of the month free, so the real line is about $0.12 lower.
Two changes move the number. In europe-west1 the same app costs $1.12, because the 2 GB of files pay $0.04 for storage outside the three US regions. And with a Cloud SQL db-f1-micro and 10 GB of SSD in place of Firestore, it costs $10.45: the database alone is $9.37, almost nine times the rest of the bill. That is the choice Cloud SQL, Firestore or serverless Postgres weighs for a new app.
Where the free tier ends as traffic grows
The free tier is a flat amount off the top, so a growing app's bill sits near zero and then climbs at list price. The same app, in us-central1, by visits a day:
- 100 visits: $0.11 with Firestore, $9.48 with Cloud SQL.
- 1,000 visits: $1.08 and $10.45.
- 3,000 visits: $3.34 and $12.61. Cloud Run is still inside the free tier.
- 10,000 visits: $22.77 and $30.65. Cloud Run's CPU now costs $10.08 after the free tier, Firestore's reads $1.49, egress $10.80.
- 30,000 visits: $82.07 and $84.80.
Two things stand out. Up to a few thousand visits a day, the database choice decides the bill more than the traffic does. Past 3,000 visits a day the CPU allowance is used up, and the free tier soon stops mattering: at 10,000 visits it is worth about $7 off a $30 bill, and the bill is CPU time and egress. Cloud Run costs, worked examples by traffic follows that curve with concurrency, which brings the CPU line down a long way for an app that waits on its database.
The $300 trial, and how it ends
The trial is useful for one thing: trying out what the free tier does not cover, such as Cloud SQL, without paying. Its rules, from Google's free program page:
- It lasts 90 days from signup and cannot be paused or extended.
- During it you cannot add GPUs to VMs, use the Marketplace, ask for a quota increase or create Windows Server VMs. The credit does not pay for the Gemini API in AI Studio or for partner models offered as managed APIs.
- It ends when you upgrade to a paid account, or when the 90 days pass or the $300 is spent.
What happens at the end depends on which of those it was. If you upgrade first, the resources keep running and whatever credit is left still works until day 90. If you do not, the Free Trial billing account closes, billing is disabled on its projects, every resource is stopped, and the account enters a 30-day grace period. Upgrading during the grace period might bring the resources and data back; after it they are deleted for good.
So a trial account is safe from surprise charges and unsafe for anything you want to keep. If an app on the trial matters, upgrade before day 90, and set a budget on the same day. The guide on setting up a Google Cloud project for a small team does both, with the roles a team needs.
Setting up an app to stay inside the free tier
The choices that keep a small app's bill near zero are made once, at setup:
- Pick a free-tier region.
us-central1,us-east1orus-west1are the only regions where Cloud Storage and thee2-microare free, and they are Tier 1 for Cloud Run. If your users are in Europe, latency may be worth $0.04 a month; choosing a Cloud Run region has the numbers. - Use the default Firestore database if Firestore fits the data, not a named one:
gcloud firestore databases create --location=us-central1- Keep Cloud Run on request-based billing and no minimum instances. One idle minimum instance costs more than the whole Cloud Run free tier.
- Link only the projects you mean to the billing account. They share the pool:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID- Set a budget that alerts. The free tier stops nothing. A small budget with a forecast rule sends an email before the month goes wrong:
gcloud billing budgets create --billing-account=BILLING_ACCOUNT_ID \
--display-name="small app" --budget-amount=5USD \
--threshold-rule=percent=0.5 \
--threshold-rule=percent=1.0,basis=forecasted-spendBudget alerts and the billing export explains what each rule sends and how to stop a project when it fires.
To see what the free tier took off a month, open the Cloud Billing reports: usage at list price is in the Usage cost column, and the free tier and trial credits are in Other savings. Reading your first Google Cloud bill explains the lines and the credits of a bill.
Where Exodus comes in
Exodus audits a repository and prices the same app today and on Cloud Run, line by line, with the free tier taken off and the assumptions written next to every number, the same way as the small app above. Its cost report says that the free tier is one per billing account and that it gives all of it to this app. See a sample report, or read what Cloud Run costs for the prices behind it.
FAQ
Is Google Cloud free?
Partly. More than 20 products have a free tier, a monthly allowance with no end date, and new customers get a $300 credit for 90 days. A small app can run on Cloud Run, Firestore and Cloud Storage for about a dollar a month, mostly egress. Cloud SQL, egress past small allowances and a VM's public IP are never free.
What is the difference between the Google Cloud free tier and the free trial?
The Free Trial is $300 of credit for 90 days, once, for people who have never paid for Google Cloud, Maps or Firebase. The Free Tier is a set of monthly allowances on 20+ products for any billing account, during the trial and after it, with no end date. Free tier usage is not charged against the $300.
What happens when the $300 free trial ends?
If you upgraded to a paid account before, nothing stops and leftover credit works until day 90. If not, the trial billing account closes when 90 days pass or the $300 is spent, every resource is stopped, and after a 30-day grace period the resources and data are deleted.
Is the Google Cloud free tier per project or per billing account?
Mostly per billing account: Cloud Run, Cloud Storage, the e2-micro, Cloud Build, Artifact Registry, Secret Manager and Cloud Scheduler give one allowance to all the projects on an account together. Firestore's free quota and the first 50 GiB of Cloud Logging are per project.
Is Cloud SQL free on Google Cloud?
No. Cloud SQL has no free tier; the smallest instance, db-f1-micro, costs $0.0105 an hour, about $7.67 a month before storage. A Cloud SQL free trial instance runs for 30 days in a new project, with no SLA and no backups, and stops serving afterwards unless it is upgraded to a paid one.
Sources
13
- docs.cloud.google.comFree Google Cloud features and trial offer, Google
- cloud.google.comGoogle Cloud Free Program, Google
- cloud.google.comCloud Run pricing, Google
- cloud.google.comFirestore pricing, Google
- cloud.google.comCloud Storage pricing, Google
- cloud.google.comCloud SQL pricing, Google
- docs.cloud.google.comCloud SQL free trial instances, Google
- cloud.google.comVPC network pricing, Google
- cloud.google.comCloud Scheduler pricing, Google
- cloud.google.comCloud Tasks pricing, Google
- docs.cloud.google.comgcloud reference, Google Cloud SDK 587.0.0: billing accounts list, billing projects link, billing budgets create, firestore databases create, compute instances create --no-address
- Exodus team: on our own billing account the Cloud Storage operations allowance also applied to a bucket in Belgium
- github.comexodus-cost, the open pricing crate of the Exodus CLI