Skip to content
AWS aws getting-started 5 min read

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.

TypeHow long it lastsResets?Example
12-month free12 months from the day you create the accountMonthly, until the 12 months end750 hours/month of a t2.micro EC2 instance
Always freeForever, for every accountMonthly, never expires1 million AWS Lambda requests/month
TrialsA fixed number of days after you first use the serviceNo90-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:

  1. Sign in and open the Billing and Cost Management console.
  2. In the left menu, choose Free Tier.
  3. 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:

  1. Open the Billing and Cost Management console and choose Budgets.
  2. Choose Create budget, then select the Zero spend budget template.
  3. Enter the email address that should receive alerts.
  4. 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.micro at 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.
Last updated June 15, 2026
Was this helpful?