On this page
  1. How do the three free tiers actually work in 2026?
  2. What does “lean” mean for a free-tier app?
  3. The free-tier playbook (do these in order)
    1. 1. Set a budget alert before you create anything
    2. 2. Prefer always-free services over credit-funded ones
    3. 3. Put a CDN in front of everything
    4. 4. Shut down what you’re not running
    5. 5. Put every expiry date on a calendar
  4. Which provider should you launch on?
  5. What does it actually cost? The $0-to-$X calculator
  6. Where the free tier stops being free
  7. Where AI coding assistants get this wrong
  8. Checklist
  9. FAQ
    1. Can I really run a web app on the big clouds for free?
    2. What’s the catch with free tiers?
    3. Which cloud has the best free tier in 2026?
    4. Do I need a credit card to sign up?
  10. Related topics
  11. Sources
guide

How to Launch Free Infrastructure on AWS, GCP, or Azure

Run a web app on AWS, GCP, Azure, Oracle, or Cloudflare for $0: free tiers, lean stacks, and real monthly costs from $0 to $300+.

Quick answer

  • You can run a real, low-traffic web app on AWS, GCP, or Azure for $0/month — if you stay inside each provider’s free limits.
  • The winning stack is the same on every cloud: serverless compute + a NoSQL or managed database + object storage, behind a CDN.
  • Set a budget alert first, use always-free services before credit-funded ones, and know exactly when each offer expires.
  • AWS replaced its 12-month free tier with a credit-based model on July 15, 2025 — most guides online still describe the old one. This one doesn’t.
  • Oracle and Cloudflare are the wildcards in this series: Oracle gives you a real always-on ARM VM for $0, and Cloudflare charges nothing for egress.

How do the three free tiers actually work in 2026?

The biggest change in cloud free tiers happened in July 2025, when AWS retired its 12-month free tier for new accounts and moved to credits. GCP and Azure kept their structures. Here is what each provider offers today:

AWS (new accounts)GCPAzure
Sign-up offerFree or Paid plan; $100 credit + up to $100 more$300 credit, valid 90 days$200 credit, valid 30 days
Free durationFree plan: 6 months or until credits run outTrial: 90 days; always-free tier never ends12 months of free amounts + always-free services
Always-free computeLambda: 1M requests + 400K GB-seconds/moCloud Run: 2M requests/mo; one e2-micro VMFunctions: 1M requests/mo; Container Apps: 2M requests/mo
Always-free databaseDynamoDB: 25 GBFirestore: 1 GBCosmos DB: 1,000 RU/s + 25 GB
Static hostingS3 + CloudFront: 1 TB egressCloud Storage: 5 GB (US regions)Static Web Apps: 100 GB bandwidth
The big gotchaFree plan auto-closes; data deleted after 90 daysTrial account closes; resources stoppedMust convert to pay-as-you-go within 30 days

The three step-by-step tutorials — AWS, GCP, and Azure — walk through each stack end to end, and Oracle and Cloudflare cover the two paths that don’t fit the table: Oracle’s Always Free tier (the only genuinely free always-on VM left among major clouds) and Cloudflare’s edge serverless (100K requests/day, zero egress fees). This guide is the playbook that applies to all five.

What does “lean” mean for a free-tier app?

A lean cloud footprint is four services, no more: compute, database, storage, and an edge layer (CDN + DNS). Anything beyond that is where free tiers turn into bills.

LayerAWSGCPAzure
ComputeLambda or EC2 (credit-funded)Cloud Run or e2-micro VMFunctions, App Service F1, or Container Apps
DatabaseDynamoDB (25 GB free)Firestore (1 GB free)Cosmos DB (1,000 RU/s free)
StorageS3Cloud StorageBlob Storage / Static Web Apps
EdgeCloudFront (1 TB free)Cloud CDNAzure Front Door / CDN

Your AI coding assistant will not generate this stack. It generates the enterprise version: a NAT Gateway ($32/month), an Application Load Balancer ($22/month), and an EKS cluster ($73/month) in front of a todo app — $127/month before the app serves a request. See AWS, GCP, and Azure for Vibecoders and Why Did My AI-Generated Terraform Config Almost Delete Production? for the full failure catalog. “Lean” means deleting those three before you deploy anything.

The free-tier playbook (do these in order)

These five steps apply to every provider and every free-tier app. Skipping any of them is how “free” becomes a surprise bill.

1. Set a budget alert before you create anything

Every provider has one: AWS Budgets, GCP Budgets & alerts, Azure Cost Management budgets. Set a $10-20/month threshold with email notifications on day one, before a single resource exists. It costs nothing and it is the only thing that tells you the free tier ended.

2. Prefer always-free services over credit-funded ones

Credits expire (AWS: 12 months, GCP: 90 days, Azure: 30 days); always-free allowances do not. Build on Lambda, DynamoDB, Cloud Run, Firestore, Functions, and Cosmos DB first. Use credits for the one thing with no free tier — usually a managed Postgres/MySQL — or don’t use them at all.

3. Put a CDN in front of everything

Egress — data leaving the cloud to the internet — is the line item that turns a $20/month estimate into a $200/month bill. CloudFront (AWS), Cloud CDN (GCP), and Azure CDN all have free or cheap egress; putting Cloudflare in front of any of them absorbs the rest for free. Never serve assets straight from a bucket or VM.

4. Shut down what you’re not running

A forgotten VM, disk, or IP address bills even when nothing uses it. If your app is low-traffic, prefer scale-to-zero services (Lambda, Cloud Run, Functions) over always-on VMs, and delete test resources the same day you create them. See How to Reduce Your Cloud Bill Without Breaking Production for the full orphan hunt.

5. Put every expiry date on a calendar

AWS Free plan closes at 6 months or when credits run out. GCP’s trial closes at 90 days or $300 spent. Azure’s $200 credit is gone at 30 days unless you convert to pay-as-you-go. None of these send a bill — they send a disabled account, a stopped VM, or a deleted project. Set three reminders when you sign up.

Which provider should you launch on?

Your situationProviderStart with
You want the leanest $0 path and don’t care about a specific cloudGCPDeploy Your First App on Google Cloud for Free
You want serverless functions + NoSQL, or you’re already AWS-shapedAWSDeploy Your First App on AWS for Free
You’re in the Microsoft ecosystem (.NET, Entra ID, GitHub)AzureDeploy Your First App on Azure for Free
You want a real always-on VM for $0, or you’re a self-hosterOracle CloudDeploy Your First App on Oracle Cloud for Free
You want edge serverless with no egress fees, and no card on fileCloudflareDeploy Your First App on Cloudflare for Free
You just want the app to run with zero opsNeither — use a PaaSBudget Cloud and PaaS Compared

If you haven’t decided whether the big three are right for you at all, start with How to Choose a Cloud Provider for Your AI-Generated App.

What does it actually cost? The $0-to-$X calculator

Your monthly bill is decided by traffic, not by which provider you picked. Run the scenarios below against your expected numbers once — the arithmetic takes two minutes, and it’s the difference between a $0 launch and a surprise first bill. Figures are approximate 2026 US list prices for compute + storage, before egress unless noted.

ScenarioStackMonthly bill
Static site or docs, any trafficCloudflare Pages — static assets are free and unlimited$0
Side-project API under 100K requests/dayCloudflare Workers + D1/R2, or the big-three free tiers$0
Real app on an always-on VMOracle Ampere A1 (2 OCPU / 12 GB) + 200 GB block storage$0
API past the free limits (~10M requests/month)Lambda or Functions + free NoSQL tier~$20
The same app, now with managed PostgresPrevious row + RDS db.t4g.micro (single-AZ)~$40
The AI-generated default stackNAT + ALB + EKS + Multi-AZ RDS + CloudWatch$100-300+

Worked example — 10 million requests/month, 512 MB function, 200 ms each:

  • AWS Lambda: 10M × $0.20/M = $2 in requests, plus 10M × 0.2 s × 0.5 GB × $0.0000167/GB-s ≈ $17 in compute → ~$19/month. Skip API Gateway REST ($3.50/M calls) — the HTTP API flavor is $1/M, or use a Lambda Function URL.
  • Google Cloud Run: 10M × $0.40/M = $4 in requests, plus vCPU- and GB-seconds — 100 ms billing increments and a 1 vCPU minimum per instance push the total to ~$50/month.
  • Cloudflare Workers (Paid): the $5/month minimum already includes 10 million requests → $5/month, with $0 egress.

Where the knee is: somewhere between 1 and 5 million requests/month (~100K-170K requests/day), an always-on VM beats per-request serverless — a t4g.small on AWS runs $12.10/month, and Oracle’s equivalent ARM VM runs $0. If your traffic is sustained rather than spiky, “small VM behind a CDN” is the cheapest architecture past the free tier.

Overage rate card — what you pay once you’re past the free allowances (1M requests/month on Lambda and Functions, 2M on Cloud Run, ~3M on Cloudflare’s daily 100K cap):

RequestsComputeEgress per GB
AWS Lambda$0.20/M$0.0000167/GB-s~$0.09
Azure Functions$0.20/M$0.000016/GB-s~$0.087
Google Cloud Run$0.40/M$0.000024/vCPU-s + $0.0000025/GB-s~$0.12
Cloudflare Workers (Paid)$0.30/M after 10M included$0.02/M CPU-ms after 30M included$0

The formula: monthly cost ≈ (requests - free allowance) × request rate + GB-seconds × duration rate + egress GB × egress rate. Hidden adders routinely push real bills 30-60% above that raw number — API Gateway, log ingestion ($0.50/GB on CloudWatch), and cross-service data transfer. Do this arithmetic once at launch and set the budget alert from the result; the calculator exists so the alert never has to fire.

Where the free tier stops being free

  • Egress overage. The most common bill-maker. A viral post serving 200 GB of assets costs $0 behind Cloudflare and real money on raw cloud egress. Watch the free bandwidth allowances (AWS: 1 TB CloudFront, GCP: 100 GB Cloud Storage, Azure: 100 GB Static Web Apps).
  • Request overage. Lambda, Cloud Run, Functions, and Container Apps all cap free requests monthly (1-2 million). A chatty app or a misconfigured retry loop burns through them fast.
  • Credit exhaustion and time expiry. AWS Free plan closes at 6 months; GCP trial at 90 days; Azure credit at 30 days. Each has a different recovery path, and none of them bills you — they just stop your resources.
  • The AI picking paid SKUs. AI-generated configs default to paid tiers: Multi-AZ RDS, Cloud SQL with high memory, General Purpose Azure SQL, standard App Service plans. Review every generated resource against the free-tier table above before deploying.
  • Idle reclamation (Oracle). Always Free VMs are reclaimed after 7 days of CPU, network, and memory all under 20% (95th percentile). Keep real traffic or a cron job hitting the instance.
  • Daily resets (Cloudflare). Free limits reset at midnight UTC, not monthly: 100K requests/day, 100K KV reads/day, 5M D1 row reads/day. Exceed one and requests fail (Error 1027) until the reset — no bill, just downtime.

Where this bites vibecoders

The AI codes the app, deploys it to the cloud, and never mentions that the free tier has a boundary. The vibecoder’s first clue is usually a disabled account or a $47 bill for egress. The difference between “free” and “expensive” is rarely the provider — it’s whether you set a budget alert on day one, built on always-free services instead of credits, put a CDN in front, and put the expiry dates on a calendar. That’s the entire playbook; the provider tutorials below just execute it per cloud.

Where AI coding assistants get this wrong

  • Generating the July 2025-era AWS architecture (NAT Gateway, ALB, EKS, Multi-AZ RDS) even though new AWS accounts no longer get a 12-month free tier for those.
  • Writing Terraform with no budget alerts, no tags, and no prevent_destroy, so the first surprise is a bill or a deleted database.
  • Provisioning managed Postgres/MySQL on every cloud as the default database, even though none of the three free tiers includes it (Firestore, DynamoDB, and Cosmos DB are the free options).
  • Setting Cloud Run/Lambda/Functions memory and concurrency high “to be safe,” which multiplies compute cost per request.
  • Exposing buckets and blobs with public-read ACLs instead of serving through the provider’s CDN.

Checklist

  • Set a budget alert ($10-20/month) before creating any resource
  • Build compute on always-free services (Lambda, Cloud Run, Functions) where possible
  • Use the provider’s free database (DynamoDB, Firestore, Cosmos DB) before paid ones
  • Put a CDN (provider or Cloudflare) in front of all static assets
  • Prefer scale-to-zero over always-on VMs for low-traffic apps
  • Note all three expiry dates: AWS 6 months, GCP 90 days, Azure 30 days
  • Review AI-generated configs against the four-service lean stack
  • Check the provider’s free-tier usage page monthly
  • Run the $0-to-$X scenarios in the calculator against your traffic estimate

FAQ

Can I really run a web app on the big clouds for free?

Yes, up to real monthly limits. AWS gives new accounts credits plus 30+ always-free services, GCP has an always-free tier with no end date, and Azure has 12-month free amounts plus always-free services. A low-traffic app — Lambda + DynamoDB on AWS, Cloud Run + Firestore on GCP, Functions + Cosmos DB on Azure — can run at $0 indefinitely.

What’s the catch with free tiers?

The limits. Egress bandwidth, request counts, and storage all have monthly caps, and the moment you exceed one, standard pricing kicks in. The other catches are time-based: AWS’s Free plan closes after 6 months, Azure requires converting to pay-as-you-go within 30 days, and GCP’s $300 credit expires after 90 days.

Which cloud has the best free tier in 2026?

GCP, for scale-to-zero Cloud Run plus a no-end-date always-free tier. AWS is close behind and stronger if you want serverless functions and DynamoDB. Azure’s always-free list is the longest, but its best free compute (B1s VMs) only lasts 12 months. The comparison table above breaks it down.

Do I need a credit card to sign up?

All three providers require a credit or debit card for identity verification, and all three put only a temporary hold on it (roughly $1) — no charge on signup. AWS’s Free plan will not charge you (it closes instead), GCP’s trial won’t bill you, and Azure’s free account won’t charge you unless you convert to pay-as-you-go. Cloudflare is the exception — no card at all, ever, on the free plan. Oracle also requires a real card (virtual and prepaid cards are rejected at signup).

Sources

Share: