Keeping EC2 Free Instances Free
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
Keeping EC2 usage free is less about one magic instance type and more about managing all billable components around the instance. As of March 11, 2026, AWS free-tier rules have changed over time, and charges can come from storage, public IPv4 addresses, data transfer, or running resources outside the eligible offer even if the instance itself looks “small enough.”
Start by Knowing Which Free Offer Your Account Has
Older AWS accounts often relied on the classic 12-month EC2 free-tier model with limited monthly instance hours. Newer accounts may see different free-plan structures or credits depending on when and how the account was created.
That means the safe advice is not “always use one t2.micro.” The safe advice is:
- confirm the free-tier terms shown in your AWS billing console
- confirm which instance families and operating systems are eligible for your account
- check whether related resources are included or billed separately
Instance Type Alone Is Not the Whole Bill
Even if the instance hours qualify, you can still be charged for:
- attached EBS volumes beyond the included allowance
- snapshots
- public IPv4 addresses
- outbound data transfer
- load balancers or other networking resources
- idle but still allocated resources
This is why people get surprised by bills after believing they “stayed on the free instance.”
Use the Console and CLI to Inspect What Exists
A simple AWS CLI check can show whether you accidentally have more than one instance or an unexpected resource still running.
That does not show every billable component, but it quickly answers whether EC2 compute itself is being used the way you expect.
Stop or Terminate Unused Resources
If an instance is no longer needed, terminate it rather than leaving it running indefinitely. But also remember that stopping an instance is not the same as removing all charges. For example, attached storage may still remain billable.
So the real cleanup workflow is:
- stop or terminate the instance
- inspect attached EBS volumes
- inspect snapshots
- inspect elastic IP or public IP related charges where applicable
- inspect other associated resources
Set Billing Alerts Early
Do not rely on memory. Create billing alarms and budgets.
A practical approach is to set a very low monthly threshold so you hear about unexpected cost activity immediately.
That turns “surprise bill” into “early warning.”
Tag and Isolate Experimental Resources
If you are learning AWS, tag resources clearly so you can find and remove them later. For example, use tags like env=learning or owner=personal-lab.
Good tagging does not reduce cost by itself, but it makes stray resources much easier to identify before they accumulate charges.
Recheck Public IPv4 and Storage Assumptions
Many people focus only on the instance-hour line item and miss that other resources are now more likely to be the real source of charges. In practice, the free-state question is:
- is the instance type eligible
- is the instance usage within the eligible limit
- are the attached resources also within free allowances or otherwise absent
You need all three.
Common Pitfalls
A common mistake is assuming stopping an instance means the bill is over. Another is treating the old “750 hours of micro instance” rule as universal without checking the current AWS offer attached to the account. Developers also often forget that storage and networking costs can outlive the instance itself. Finally, waiting to look at billing until month-end is too late; budget alerts and periodic inspection are the safer pattern.
Summary
- EC2 staying free depends on both the account’s current free offer and the surrounding billable resources.
- Verify the exact free-tier terms in your AWS billing console for your account.
- Watch EBS, snapshots, public IPv4 charges, and data transfer, not just instance type.
- Remove unused resources completely, not just the compute instance.
- Set budget alerts early so small mistakes do not become end-of-month surprises.

