Understanding the Free Tier
The AWS Free Tier is how most people learn the cloud without paying. But “free” on AWS is not one simple thing, and the most common reason a beginner gets a surprise bill is misunderstanding exactly what is covered and for how long. This page breaks the Free Tier into its three distinct types, gives concrete limits you can rely on, and shows you how to set a zero-spend budget so you never get charged by accident.
Note: AWS (Amazon Web Services, Amazon’s cloud platform) refreshed its Free Tier in 2025. New accounts can opt into a credit-based plan ($100 in credits, up to $200 with activities). The classic usage-limit Free Tier described here still applies to many services and is the model you should understand first.
The three types of Free Tier
AWS bundles three completely different kinds of free offers under one name. Knowing which type a service falls under tells you whether the free usage ever expires.
| Type | How long it lasts | Resets? | Example |
|---|---|---|---|
| 12-month free | 12 months from the day you create the account | Monthly, until the 12 months end | 750 hours/month of a t2.micro EC2 instance |
| Always free | Forever, for every account | Monthly, never expires | 1 million AWS Lambda requests/month |
| Trials | A fixed number of days after you first use the service | No | 90-day free trial of Amazon Inspector |
12-month free
These offers start the moment you create your account and run for exactly 12 months. EC2 (Elastic Compute Cloud, AWS virtual servers) is the headline example: you get 750 hours per month of a t2.micro (or t3.micro in some Regions) Linux or Windows instance. You also get 5 GB of Amazon S3 (Simple Storage Service, AWS object storage) standard storage, 750 hours of an RDS (Relational Database Service) db.t3.micro database, and 15 GB of data transfer out.
When to use this: ideal for a 12-month learning runway — spin up a small server, host a hobby project, follow tutorials. When NOT to: do not build anything you expect to keep past month 12, because the bill arrives the day the clock runs out.
Always free
These never expire and apply to every account, old or new. Good examples: 1 million Lambda requests per month plus 400,000 GB-seconds of compute, 25 GB of DynamoDB (a NoSQL database) storage, and 1 million SNS (Simple Notification Service) publishes. These limits reset every calendar month, forever.
When to use this: serverless side projects and low-traffic apps can genuinely run for $0/month indefinitely. When NOT to: the moment traffic grows past the limit (e.g. the 1-millionth-and-first Lambda request), you pay the standard rate for the overage — there is no warning popup.
Trials
A trial gives you a service free for a set number of days after first use, then it bills normally. These are for evaluating a product, not for ongoing use. When to use this: kicking the tyres on a paid service before committing. When NOT to: leaving the trial running unattended — when the days expire, charges begin silently.
The gotcha that catches everyone
The Free Tier is per account, and usage is tracked in aggregate across all matching resources, not per resource. The 750 EC2 hours are not “750 hours per instance” — they are 750 hours total for the whole account.
A month has about 730 hours. So one t2.micro running 24/7 uses roughly 730 of your 750 hours — fine. But run two t2.micro instances at once and you burn 1,460 hours in a month: you exhaust the free allowance in about 15 days and pay for the rest.
Warning: Two micros run the Free Tier down twice as fast. Three run it down three times as fast. Stop or terminate instances you are not using, and never leave a forgotten server running.
See how much you have used
In the console:
- Sign in and open the Billing and Cost Management console.
- In the left menu, choose Free Tier.
- Review the table showing each service, your month-to-date usage, the limit, and a forecast for the rest of the month.
The same data is available from the AWS CLI (Command Line Interface, the text-based tool for controlling AWS). CLI v2 is current in 2026.
aws freetier get-free-tier-usage --region us-east-1
Output:
{
"freeTierUsages": [
{
"service": "Amazon Elastic Compute Cloud",
"operation": "RunInstances:0002",
"usageType": "BoxUsage:t2.micro",
"region": "us-east-1",
"actualUsageAmount": 412.0,
"forecastedUsageAmount": 731.0,
"limit": 750.0,
"unit": "Hrs",
"description": "750 Hrs of Amazon EC2 t2.micro instance usage (Linux) for free"
}
]
}
A forecast at or above the limit (731 of 750 here is safe; over 750 is not) is your early warning that you are about to pay.
Set a zero-spend budget
The single best protection is a budget that emails you the instant your forecast or actual cost rises above $0. AWS provides a ready-made Zero spend budget template.
In the console:
- Open the Billing and Cost Management console and choose Budgets.
- Choose Create budget, then select the Zero spend budget template.
- Enter the email address that should receive alerts.
- Choose Create budget.
The equivalent via the CLI uses a small JSON definition. Save this as budget.json:
{
"BudgetName": "Zero-Spend-Budget",
"BudgetLimit": { "Amount": "1", "Unit": "USD" },
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}
And this as notifications.json (replace the email):
[
{
"Notification": {
"NotificationType": "ACTUAL",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 1,
"ThresholdType": "PERCENTAGE"
},
"Subscribers": [
{ "SubscriptionType": "EMAIL", "Address": "[email protected]" }
]
}
]
Then create it (replace 123456789012 with your 12-digit account ID):
aws budgets create-budget \
--account-id 123456789012 \
--budget file://budget.json \
--notifications-with-subscribers file://notifications.json
Output:
{}
An empty {} means success. From now on, you will be emailed the moment your account spends even one cent, so a forgotten instance can never run up a silent bill.
Cost note: Budgets are free to create and run (the first two are always free), so there is no reason not to set one on day one.
Best practices
- Set a zero-spend budget before you launch your first resource — it is your safety net for every other mistake.
- Run one
t2.microat a time; remember 750 hours is account-wide, not per instance. - Stop instances you are not using (you keep the disk but pause the hourly clock) or terminate them to free the resource entirely.
- Mark on your calendar when your 12 months ends so the expiry of 12-month offers is never a surprise.
- Treat always-free limits as ceilings, not budgets — design low-traffic apps to stay under them.
- Check the Free Tier page in the Billing console weekly while learning, and watch the forecast column, not just actual usage.
- Pick a single Region (often
us-east-1) for learning so your usage is easy to find and not split across Regions.