Ravindra BagaleCourses & study guides Track your progress

Guides

How to Stop All AWS Billing and Close Your AWS Account Safely

To stop all AWS billing, first read the bill: Billing and Cost Management → Bills shows every service that charged you, by region. Delete those resources in each region (EC2, EBS volumes and snapshots, Elastic IPs, NAT gateways, load balancers, RDS, EKS), and check Cost Explorer for two days. Then, if you want, close the account as the root user. You can reopen it within the 90-day post-closure period.

Quick answer

  1. Billing → Bills → expand each service → note the region.
  2. Switch to that region and delete the resource.
  3. Repeat until the current month shows no new charges.
  4. Cost Explorer → daily view → check that costs stopped.
  5. Account → Close account (root user), after paying any open bill.

A live example first

A student in Nagpur finished an EKS lab in the Mumbai region and terminated the EC2 nodes. A week later, the bill still grew by about a dollar a day. Here is how we found it.

  1. Open Billing and Cost Management → Bills, choose the current month, and expand Charges by service.
Amazon Elastic Compute Cloud          USD 5.10
  Asia Pacific (Mumbai)
    NAT Gateway hours                 USD 3.40
    EBS gp3 storage (unattached)      USD 0.96
    Public IPv4 address (idle EIP)    USD 0.74
Amazon Elastic Kubernetes Service     USD 0.00
  1. The cluster was gone, but three things were left: a NAT gateway created for the private subnets, two EBS volumes from the persistent volume claims, and one Elastic IP.
  2. In ap-south-1 we deleted the NAT gateway (VPC → NAT gateways), then released the Elastic IP it used, then deleted the two available EBS volumes.
  3. Two days later, Cost Explorer showed zero for EC2 in the new days.

Friends, the bill is the truth. The console of one region does not show you the others.

Why do charges continue?

AWS bills each resource separately. Terminating an EC2 instance only stops the instance-hour charge. Its extra volumes, snapshots, IP addresses and anything the lab created around it (NAT gateways, load balancers, log groups) keep billing until you delete them. Resources can also sit in a region you forgot, for example us-east-1, the default region in many tutorials.

How do I stop all charges step by step?

  1. Sign in and open Billing and Cost Management → Bills.
  2. Note every service and region with a charge this month.
  3. Open Resource Explorer (turn it on for all regions) or Resource Groups → Tag Editor with "All regions" and "All resource types".
  4. Delete resources in this order:
    1. Auto Scaling groups (or they will start new instances).
    2. EKS clusters and their node groups, ECS services.
    3. EC2 instances (terminate).
    4. Load balancers and target groups.
    5. NAT gateways, then release Elastic IPs.
    6. RDS databases (choose whether to keep a final snapshot) and Aurora clusters.
    7. Unattached EBS volumes and old snapshots, and AMIs you created (deregister first).
    8. S3 buckets you do not need (empty, then delete).
    9. CloudWatch log groups with large storage, OpenSearch domains, Redshift clusters.
    10. Route 53 hosted zones (0.50 USD per month each) and any domain auto-renewals.
  5. Check Savings Plans and Reserved Instances. These are commitments; they keep billing until the term ends.
  6. Wait 24 to 48 hours and check Cost Explorer with daily granularity.

Costs people miss, by service

Service Hidden cost Where to delete
EC2 Unattached EBS, snapshots, AMIs EC2 → Volumes, Snapshots, AMIs
VPC NAT gateway hours, idle public IPv4 VPC → NAT gateways, EC2 → Elastic IPs
ELB ALB/NLB hours even with no traffic EC2 → Load balancers
RDS Stopped DBs restart after 7 days RDS → Databases → Delete
EKS Control plane per hour EKS → Clusters
CloudWatch Log storage, custom metrics CloudWatch → Log groups
Route 53 Hosted zones, domain renewals Route 53 → Hosted zones, Registered domains

Close the account

When nothing is left:

  1. Sign in as the root user (an IAM user cannot close the account).
  2. Pay any unpaid bill.
  3. Download anything you want to keep, such as invoices for tax.
  4. Open the account menu (top right) → Account → scroll to Close account.
  5. Read the notes, tick the boxes, and confirm.

After closing:

  • The account enters a 90-day post-closure period. You can reopen it by contacting AWS Support.
  • After 90 days, AWS permanently deletes the remaining content.
  • You still receive the final bill for usage before closing.
  • You cannot reuse the same email address for a new AWS account.

If your account is part of an AWS Organization, the management account closes member accounts from AWS Organizations instead.

Prevent it next time

  1. Set a monthly budget of 1 or 5 USD with email alerts (billing alarm guide).
  2. Turn on Cost Anomaly Detection (free).
  3. Tag every lab resource with project=lab-xyz and delete by tag.
  4. Use Terraform or CloudFormation for labs, then run terraform destroy or delete the stack.

Real example

AWS introduced a charge for all public IPv4 addresses from 1 February 2024 (0.005 USD per IP per hour), including ones attached to running instances. Many learners who left a few Elastic IPs or old load balancers around saw small new charges on their bills. It is a good reminder to check the bill every month, even when you think nothing is running.

Summary table

Step Where
Find charges Billing → Bills, by service and region
Find resources Resource Explorer / Tag Editor, all regions
Delete ASG → EKS/ECS → EC2 → ELB → NAT/EIP → RDS → EBS/snapshots → S3 → logs
Confirm Cost Explorer, daily
Close Root user → Account → Close account
Reopen Within 90 days via Support

Quick quiz: check what you learned

  1. What is the best place to see what is costing money?

    1. Bills page, by service and region
    2. EC2 dashboard in a single region
    3. IAM users list in the console
    4. S3 bucket properties for one bucket
    Show answer

    A. The bill lists every charged service per region.

  2. Which item often keeps billing after EC2 is terminated?

    1. Unattached EBS volumes
    2. IAM groups and roles
    3. Security group rules
    4. Route 53 health text
    Show answer

    A. Volumes and snapshots can remain after the instance is gone.

  3. How long can a closed account be reopened?

    1. Within 90 days
    2. Within 7 days
    3. Within 1 year
    4. It can never be
    Show answer

    A. AWS keeps a 90-day post-closure period.

  4. Does a budget alert stop resources by itself?

    1. No, it only notifies you
    2. Yes, it deletes them all
    3. Yes, it stops EC2 only
    4. It closes the account
    Show answer

    A. Budgets and alarms send alerts; you must act.

Frequently asked questions

Does closing an AWS account stop all charges?

It stops new usage, but you still pay for usage before closing, and for some long commitments such as Reserved Instances and Savings Plans. Delete resources first so you know what is left.

Can I reopen a closed AWS account?

Yes, within the 90-day post-closure period, by contacting AWS Support. After that, the account and its content are permanently deleted.

Why am I still charged after terminating EC2?

Usually for unattached EBS volumes, snapshots, Elastic IPs and public IPv4 addresses, NAT gateways or load balancers that were not deleted.

How do I find resources in all regions?

Use AWS Resource Explorer or Resource Groups Tag Editor with "All regions", and read the bill by region.

Does a billing alarm stop my resources?

No. Alarms and budgets only notify you. You must delete or stop the resources yourself.

I was charged by mistake while learning. What can I do?

Delete the resources, then open a Billing support case and explain. AWS sometimes gives a one-time credit, but it is not guaranteed.