TL;DR: AWS, Azure, and Google Cloud all sell you a starting credit, not a sustained free tier: $100-$200 for AWS, $200 for Azure, $300 for Google Cloud, each gone in 30 days to a year. Underneath the credit, each provider also keeps a smaller set of services free every month with no expiry - AWS Lambda, Azure Functions, and Google Cloud Run all give away roughly 1-2 million free requests a month, forever. IBM Cloud skips the credit entirely and runs 40+ Lite plans that never expire and never bill. Read the always-free row for each service before you build on the credit - the credit runs out; the always-free row doesn’t.
The two things “free tier” means
Every big cloud provider blurs two different offers under one phrase.
- A signup credit. A pool of dollars, valid for a fixed window, spendable on almost any service. It behaves like a gift card, not a discount.
- An always-free allowance. A fixed monthly quota on a specific service - requests, GB, hours - that resets every month and never expires, on any account, forever.
The credit gets people in the door. The always-free allowance is what keeps a hobby project running without a card on file once the credit is gone.
Table 1: the account-level offer
| Provider | Signup credit | Credit window | Card required | After the window |
|---|---|---|---|---|
| AWS | $100 up front, up to $100 more for setup activities ($200 total) | Free account plan runs 6 months or until credits run out; credits themselves expire 12 months after signup | Yes | Free plan closes; AWS holds account data 90 days, then deletes it, unless you upgrade to the Paid plan |
| Azure | $200 | 30 days for the credit; a further set of services stay free for 12 months from account creation | Yes | Card is not charged automatically; the subscription downgrades and stops working until you upgrade |
| Google Cloud | $300 | 90 days | Yes | Trial ends; billing does not start on its own until you manually activate a paid account |
| IBM Cloud | $200, Pay-As-You-Go accounts only | 30 days | Not required for the Lite plans | No cliff - the 40+ Lite plans below keep working at $0 indefinitely |
IBM is the outlier worth noticing: the credit is optional. You can skip it and sign up straight into the free Lite plans, which is the only account type here with no expiry date attached to the free part at all.
Table 2: always-free allowances by building block
These numbers apply every month, on every account, with no time limit - separate from any of the credits above.
| Building block | AWS | Azure | Google Cloud |
|---|---|---|---|
| Serverless functions | AWS Lambda: 1M requests + 400,000 GB-seconds/month | Azure Functions (Consumption plan): 1M executions + 400,000 GB-s/month | Cloud Run: 2M requests/month |
| Managed NoSQL | Amazon DynamoDB: 25 GB storage, 25 write + 25 read capacity units/month | Azure Cosmos DB: 1,000 RU/s + 25 GB storage, one free-tier account per subscription | Firestore: 1 GiB storage, 50,000 reads / 20,000 writes / 20,000 deletes per day |
| Object storage | Amazon S3: no always-free allowance for new accounts - credit only | Blob Storage: none published | Cloud Storage: 5 GB-months (US regions only) |
| CDN | Amazon CloudFront: 1M requests + 100 GB data transfer/month | None published | None published |
| Monitoring | CloudWatch: 10 custom metrics, 1M API requests, 3 dashboards, 5 GB log ingestion/month | Azure Monitor: 5 GB/month Log Analytics ingestion; standard metrics and activity logs are free with no stated cap | None published |
Two of those blanks catch people out. Amazon S3 never had an always-free allowance: its 5 GB of standard storage belonged to the 12-month tier, which the July 2025 restructure closed. New accounts pay for S3 from day one or spend the signup credit on it. And CloudFront is the only dedicated always-free CDN allowance of the three: Azure and Google both fold CDN usage into general egress pricing once the account-level credit runs out.
AWS: the July 2025 split still trips people up
AWS retired its old per-service 12-month free tier for new signups on 2025-07-15. Anyone reading a blog post, a GitHub README, or a Stack Overflow answer from before that date is reading about a program that no longer exists for new accounts.
Accounts opened on or after that date get the credit model in Table 1, plus the always-free services that were never time-limited to begin with - AWS Lambda, Amazon DynamoDB, and Amazon CloudFront among them. Accounts opened before 2025-07-15 kept their original 12-month windows, and the last of those closed on 2026-07-14, so the old model is finished in practice now, for every account.
What that means per service: a new AWS account gets no free Amazon EC2 instance hours, no free Amazon RDS database, no free Amazon API Gateway calls, and no free Amazon Elastic Block Store volume. Each of those used to carry its own 12-month allowance - 750 instance hours a month for EC2 and RDS, 1 million calls a month for API Gateway, 30 GB of storage for EBS. Under the credit model they carry none. Usage on all four draws down the $200 signup credit, then bills at standard rates.
The account plan you pick at signup decides what happens when the money runs out. On the Free plan, AWS closes the account after 6 months or once the credits are spent, whichever comes first, and holds the data for 90 days before deleting it. On the Paid plan, nothing closes: the account just starts billing at pay-as-you-go rates. Both plans get the same always-free services, so the choice is about what happens at the cliff edge, not about what you get before it.
Azure: read “combined” carefully
Azure’s free-VM benefit is not four separate 750-hour grants. It is one 750-hour-a-month pool, shared across the B1s, B2pts v2 (Arm-based), and B2ats v2 (AMD-based) burstable sizes, for either Linux or Windows, for the first 12 months. Running two of those VM sizes at once does not double your free hours - it splits the same 750 from one pool.
Past the VM pool, Azure App Service’s Free (F1) tier is the one Azure allowance that never expires: 60 shared CPU-minutes a day, 1 GB RAM, 1 GB storage, no SLA. It is enough to keep a small static site or a low-traffic API awake, not enough to run anything with real load.
Google Cloud: the $300 credit is separate from what stays free
Google Cloud’s $300 credit and its always-free tier are two different programs that run at
the same time. The 90-day credit covers almost any product; the always-free tier - one
e2-micro Compute Engine instance, 5 GB of Cloud Storage, 1 TiB of BigQuery queries, 2
million Cloud Run requests, and a Firestore
allowance, all per month - keeps running after the 90 days end and after the $300 runs
out, with no card charge until you manually upgrade.
That makes Google Cloud the easiest of the three big providers to leave running unattended: nothing switches to paid billing on its own.
The catch is geography. The free e2-micro instance and the 5 GB of Cloud Storage only
count as free in US regions, and the free egress allowance is 1 GB a month out of North
America for Compute Engine and Cloud Run, 100 GB for Cloud Storage. Put the same workload
in a European or Asian region and it bills from the first hour. BigQuery is the exception
worth knowing about: 1 TiB of queries and 10 GiB of storage a month, with no region
condition attached.
IBM Cloud: no clock on the free part
IBM Cloud’s Lite plans cover 40+ services with no expiry and no credit card requirement - Cloudant (1 GB storage), Container Registry (5 GB of pull data transfer a month), Watson Assistant (10,000 API calls a month), Cloud SQL Query (30 GB scanned a day), and API Connect (50,000 calls a month) among them. The $200 Pay-As-You-Go credit is a separate, optional add-on for 30 days if you want to test a paid-tier product; skipping it does not affect the Lite plans at all.
What does not count as a free tier
- A signup credit. A $300 credit is not the same thing as a $300-a-month recurring allowance. Every provider above eventually asks for a card once a credit runs out; the always-free rows in Table 2 do not.
- The legacy AWS 12-month allowances. The pre-2025-07-15 program is closed to every account. No account created today can get one.
The practical takeaway
If you are picking a provider to build a side project on, the account-level credit barely matters - it buys you a month or a year of runway, then disappears. What matters is whether the specific services you need show up in Table 2. A Lambda-based API, an App Service static site, or a Cloud Run container can run for years on the always-free rows alone. An EC2 instance, an RDS database, or anything billed by the hour cannot - it is running on borrowed credit from the day you create the account, and the bill starts the day that credit is gone.