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.microort3.microEC2 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
# 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 tableWhen 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.
# 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.
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.
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