The AWS Free Tier

New accounts get a Free Tier so you can learn and experiment without a bill, as long as you stay within the limits.

AWS offers a Free Tier so you can try services at no cost. It comes in three shapes:

  • 12-months free — available for the first year, e.g. 750 hours/month of a t2.micro or t3.micro EC2 instance and 5 GB of S3 storage.
  • Always free — never expires, e.g. 1 million AWS Lambda requests per month and 25 GB of DynamoDB storage.
  • Trials — short-term free trials for specific services.

Avoiding surprise charges

The Free Tier has limits. Go over them, or use a service that is not covered, and you will be billed. Protect yourself:

  • Set up a billing alarm or budget early.
  • Stop or terminate resources when you are done experimenting.
  • Watch the Billing Dashboard for Free-Tier usage alerts.

Example

Example · bash
# See which of your resources are still running (a common source of charges)
aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query "Reservations[].Instances[].[InstanceId,InstanceType]" --output table

When to use it

  • A student learns AWS by running a t2.micro EC2 instance under the 750-hour/month Free Tier limit to build a personal portfolio site.
  • A developer experiments with DynamoDB for a side project, staying under the 25 GB free storage and 25 WCU/RCU monthly allowance.
  • A startup evaluates AWS Lambda for a new microservice by testing under the 1 million free requests per month before committing to production.

More examples

Launch Free-Tier EC2 Instance

Launches a t2.micro instance that qualifies for the 12-month Free Tier 750 hours/month allowance.

Example · bash
# t2.micro qualifies for 750 hours/month free for 12 months
aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type t2.micro \
  --count 1 \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=free-tier-test}]'

Check Current Month Costs

Queries your billing data so you can monitor spending and verify you are staying within the Free Tier limits.

Example · bash
aws ce get-cost-and-usage \
  --time-period Start=2024-01-01,End=2024-02-01 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --query 'ResultsByTime[].Total.BlendedCost'

Create a Free Tier Budget Alert

Sets a $1 monthly budget with an email alert at 80% so you are warned before accidentally exceeding the Free Tier.

Example · bash
aws budgets create-budget \
  --account-id 123456789012 \
  --budget '{"BudgetName":"FreeTierGuard","BudgetLimit":{"Amount":"1","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
  --notifications-with-subscribers '[{"Notification":{"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":80},"Subscribers":[{"SubscriptionType":"EMAIL","Address":"[email protected]"}]}]'

Discussion

  • Be the first to comment on this lesson.