
10 AWS Resources That Charge You While You Sleep
Free Tier isn't a force field. Learn which 10 AWS resources keep billing after you stop your EC2, how to clean them up, and which alerts to set before you start experimenting.
You create an AWS account. You see "Free Tier." You start playing around.
Maybe you create a VPC then you launch an EC2 instance. Maybe you try RDS because you want to learn databases. Then you follow a Kubernetes tutorial and create an EKS cluster.
A few days later, you check your account. There is a bill. And your first thought is probably:
"But I have a free AWS account."
This is where things get confusing.
AWS Free Tier does not mean that everything you create in AWS is free. It means that specific usage, under specific conditions, gets free benefits or credits. And some AWS resources start charging simply because they exist.
I have seen beginners spend more money on their first AWS experiment than they expected, not because they were running some huge workload, but because they forgot about one small resource.
Here are some of the ones I would watch closely.
1. NAT Gateway
This is probably the first thing I would warn a beginner about.
You learn that your EC2 instances should not always have public IP addresses. So you create a private subnet. Then you need your private EC2 instance to access the internet. You add a NAT Gateway. Your architecture now looks nice:
1
2
3
4
5
6
7
Private EC2
|
v
NAT Gateway
|
v
InternetThe problem is that a NAT Gateway isn't free just because your EC2 instance is free. AWS charges for the NAT Gateway while it is available, and also charges for data processed through it.
For a production architecture, that cost can be completely reasonable. For someone learning AWS with a tiny test environment, it can be a very unnecessary bill.
My advice: if you're just learning EC2, VPC and security groups, don't create a NAT Gateway unless the exercise actually requires one. You can learn NAT Gateway later.
2. Public IPv4 addresses
This one is easy to miss.
AWS now charges for public IPv4 addresses. The current price is $0.005 per hour per public IPv4 address in applicable regions. That works out to roughly $3.60 for one address running continuously for a 30-day month.
So you might think:
"I'm only running one tiny EC2."
But your public IPv4 address is another resource with its own cost. This becomes even more important when you start creating load balancers and other resources that use public IPv4 addresses. If you don't need something anymore, don't leave the resource sitting around.
3. Load Balancers
This is another classic beginner mistake.
You create an EC2 instance and put an Application Load Balancer in front of it because that's how a production architecture normally looks. Then you stop your EC2. You come back a week later. The EC2 is stopped. The load balancer is still there. That's because they are separate resources.
AWS charges for each hour or partial hour that an Application Load Balancer runs, in addition to LCU usage. So:
1
2
3
4
5
EC2 stopped
↓
ALB still running
↓
still billingStopping EC2 does not mean your entire architecture has stopped billing. This is a good rule to remember:
AWS bills resources, not your intentions.
4. EBS volumes
You launch an EC2 instance. AWS gives you a disk. You stop the instance. You assume the whole thing is now costing nothing. Not quite.
EBS storage is charged based on the amount of storage you provision until you release it. So if you have created several test instances over the last few weeks, you might have a collection of old EBS volumes sitting around.
Go to:
EC2 → Elastic Block Store → Volumes
and check. You may find something you forgot about. And don't delete a volume blindly. Make sure you don't need the data first.
5. EBS snapshots
Snapshots are another one that can quietly accumulate.
You create a snapshot because you want to learn backups. Good idea. Then you create another one. And another. Then you delete the EC2 instance. Your snapshots can still remain.
AWS charges for snapshot storage, and snapshots use incremental storage after the initial snapshot. So if you're experimenting, also learn the other half of the operation:
How do I clean up the backup I created?
Creating things is only half of cloud engineering. Cleaning them up is the other half.
6. RDS
RDS is great. It is also very easy to forget.
You create a PostgreSQL database for a tutorial. You connect your application. Everything works. Then you stop working on the project. Your database doesn't know that. It continues existing until you stop, delete, or otherwise manage it.
The exact Free Tier treatment also depends on when your AWS account was created. AWS changed its Free Tier model for accounts created on or after July 15, 2025. So don't blindly copy an old tutorial saying:
"RDS is free for 12 months."
That advice may be correct for an older account and completely wrong for a newer one.
Always check the Free Tier information for your account.
7. EKS
This is the one I would put a big warning sign beside.
You want to learn Kubernetes. You search for:
"Create Kubernetes cluster on AWS."
You create EKS. Then you create worker nodes. Then EBS volumes. Then a load balancer. Then public IPs. Then maybe NAT Gateway. Suddenly your simple Kubernetes experiment has become a small AWS architecture.
EKS itself has its own pricing, and the surrounding infrastructure has its own costs too. This is why I wouldn't recommend EKS as someone's first AWS Free Tier experiment.
If you want to learn Kubernetes, learn Kubernetes. If you want to learn AWS networking, learn AWS networking. You don't need to learn both at the same time while your credit balance watches from the corner.
8. CloudWatch Logs
Logs don't look expensive. They're just text, right? The problem starts when you generate a lot of them and never clean them up. For example:
1
2
3
4
5
6
7
8
9
10
11
12
13
Application
|
v
CloudWatch Logs
|
v
More logs
|
v
More logs
|
v
"I forgot about this."CloudWatch has charges associated with log ingestion and storage depending on what you're using. For a small lab, don't keep everything forever. Set sensible retention periods. You probably don't need six months of logs from the
hello-world application you created yesterday.9. S3 Versioning
This one surprises people. Suppose you have:
1
backup.zipYou upload it to an S3 bucket. Then you upload a new version. Then another. Then another. You enable versioning because someone told you it is a good idea. It is.
But when you delete the current object, the old versions don't magically disappear. S3 versioning keeps previous versions until you explicitly manage them. That means your bucket can continue storing data that you thought you had deleted.
For a small test bucket, keep an eye on object versions and lifecycle rules.
10. AWS Marketplace AMIs
This one is particularly dangerous because the AWS console can make it look like you're simply launching an EC2 instance. But some Marketplace AMIs include separate software charges. You could be paying for:
1
2
3
4
5
6
7
EC2 infrastructure
+
software license
+
storage
+
networkinginstead of just EC2.
Before launching a Marketplace AMI, look carefully at its pricing. If you're following a random tutorial and it tells you to launch some third-party AMI, stop for a second and check what you're actually buying.
So, what should a beginner do?
Before creating something in AWS, ask three questions.
1. Is it actually covered by my Free Tier?
Don't assume.
AWS changed its Free Tier model for newer accounts. Accounts created on or after July 15, 2025 can receive $100 in credits and may earn up to another $100 through eligible activities. The Free account plan is available for up to six months or until credits are exhausted. Older accounts can be under the legacy Free Tier rules. Your account creation date matters.
2. What happens when I stop my EC2?
This is a very useful question. Ask it for every resource around your EC2.
Does it stop? Does it continue? Does it have its own hourly charge? Does it have storage charges? Does it charge for data processing? That's how you avoid surprises.
3. What do I need to delete afterwards?
Don't just think about:
1
EC2 → TerminateCheck the whole experiment. For example:
1
2
3
4
5
6
7
8
9
10
EC2
EBS volumes
EBS snapshots
Public IPv4
Load Balancers
NAT Gateways
RDS
CloudWatch Logs
S3 objects and versions
Marketplace resourcesSet up the alarms before you start
Step 1: Turn on Free Tier usage alerts
- Sign in to the AWS Console and open Billing and Cost Management.
- In the left menu, go to Billing preferences (it may be under Preferences and settings).
- Under Alert preferences, choose Edit.
- Tick Receive AWS Free Tier alerts and enter the email address you actually check.
- Choose Update.
AWS will now email you when your usage exceeds 85% of a Free Tier limit.
Step 2: Create a zero-spend budget
- In Billing and Cost Management, open Budgets.
- Choose Create budget.
- Select the Zero spend budget template.
- Give it a name, such as
zero-spend-alert, and enter your email address. - Choose Create budget.
You'll get an alert as soon as your account spends more than $0.01, which is your first warning that something is billing.
Step 3: Check your Free Tier usage and credits
Open the Free Tier page in the Billing console. It shows how much of each limit you've used, and if your account was created on or after July 15, 2025, it also shows your remaining credits. Check it regularly while you experiment, not just once.
Step 4: Check what actually exists in your account
An email alert only tells you something is wrong after the fact, so don't make it your only safety mechanism. Once a week, and always after you finish an experiment:
- Open Cost Explorer in the Billing console and see which services are generating cost.
- Go through the services in the cleanup checklist below: EC2, EBS, load balancers, NAT Gateways, RDS, EKS, CloudWatch and S3.
- Check every region you've used. Resources in a region you forgot about still bill you. The region selector is in the top-right corner of the console.
Alerts tell you something is costing money. Checking your resources tells you what.
My beginner AWS checklist
Before I experiment:
1
2
3
4
5
☐ Check my Free Tier eligibility
☐ Check my remaining credits/limits
☐ Set up billing alerts
☐ Set up a budget
☐ Understand what I'm about to createAfter I finish:
1
2
3
4
5
6
7
8
9
10
11
☐ Terminate unused EC2 instances
☐ Delete unused EBS volumes
☐ Delete snapshots I don't need
☐ Release unused public IPv4 addresses
☐ Delete unused load balancers
☐ Delete NAT Gateways
☐ Delete unused RDS databases
☐ Check EKS clusters
☐ Check CloudWatch log groups
☐ Check S3 objects and old versions
☐ Check Marketplace resourcesAnd if you're using Terraform:
1
terraform destroyis one of your best friends.
One last thing
Don't be afraid of AWS because you saw someone get a huge bill. Just don't treat the Free Tier badge as a safety net.
AWS gives you tools to experiment. It also gives you a lot of services that can keep running after you've forgotten about them.
The best habit you can build as a beginner isn't memorizing every AWS price. It's this:
Know what you created. Know how it is billed. Know how to remove it.
That habit will still be useful long after your Free Tier is gone
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article