Avoiding unexpected charges - AWS Billing

Avoiding unexpected charges

Here are some suggestions to help you avoid unexpected charges on your bill. The next items address specific features or behaviors within individual services from AWS that can sometimes result in unexpected charges, particularly if you unsubscribe from the service or close your account.


If you close your account or unsubscribe from a service, make sure that you take the appropriate steps for every region in which you've allocated AWS resources.

Usage exceeds AWS Free Tier

For more information on avoiding unexpected charges related to the AWS Free Tier, see Avoiding unexpected charges after the AWS Free Tier.

Bill received after account closure

Each month’s usage is calculated and billed at the beginning of the following month. If you close your account but use opt-in services during the month, you receive a bill for the opt-in service usage at the beginning of the following month.

Disabled regions

If you disable a Region and you still have resources in that Region, you continue to incur charges for those resources. (There is no charge for enabling a Region, only charges for the resources that you create in a Region.) For more information, see Enabling and disabling regions.

Elastic Beanstalk environments

Elastic Beanstalk is designed to ensure that all the resources that you need are running, which means that it automatically relaunches any services that you stop. To avoid this, you must terminate your Elastic Beanstalk environment before you terminate resources that Elastic Beanstalk has created. For more information, see Terminating an Environment in the AWS Elastic Beanstalk Developer Guide.

Elastic Load Balancing (ELB)

Like Elastic Beanstalk environments, ELB load balancers are designed to keep a minimum number of Amazon Elastic Compute Cloud (Amazon EC2) instances running. You must terminate your load balancer before you delete the Amazon EC2 instances that are registered with it. For more information, see Delete Your Load Balancer in the Elastic Load Balancing User Guide.

Services started in AWS OpsWorks

If you use the AWS OpsWorks environment to create AWS resources, you must use AWS OpsWorks to terminate those resources or AWS OpsWorks restarts them. For example, if you use AWS OpsWorks to create an Amazon EC2 instance, but then terminate it by using the Amazon EC2 console, the AWS OpsWorks auto healing feature categorizes the instance as failed and restarts it. For more information, see AWS OpsWorks User Guide.

Amazon EC2 instances

After you remove load balancers and Elastic Load Balancing environments, you can stop or terminate Amazon EC2 instances. Stopping an instance allows you to start it again later, but you might be charged for storage. Terminating an instance permanently deletes it. For more information, see Instance Lifecycle in the Amazon EC2 User Guide for Linux Instances, particularly Stop and Start Your Instance and Terminate Your Instance.


Amazon EC2 instances serve as the foundation for multiple AWS services. They can appear in the Amazon EC2 console Instances list even if they were started by other services. For example, Amazon Relational Database Service (Amazon RDS) instances run on Amazon EC2 instances. If you terminate an underlying Amazon EC2 instance, the service that started it might interpret the termination as a failure and restart the instance. For example, the AWS OpsWorks service has a feature called auto healing that restarts resources when it detects failures. In general, it is a best practice to delete resources through the services that started them.

Additionally, if you create Amazon EC2 instances from an Amazon Machine Image (AMI) that is backed by an instance store, check Amazon S3 for the related bundle. Deregistering an AMI does not delete the bundle. For more information, see Deregistering Your AMI.

Amazon Elastic Block Store volumes and snapshots

Most Amazon EC2 instances are configured so that their associated Amazon EBS volumes are deleted when they are terminated, but it is possible to set up an instance that preserves its volume and the data. Check the Volumes pane in the Amazon EC2 console for volumes that you don’t need anymore. For more information, see Deleting an Amazon EBS Volume in the Amazon EC2 User Guide for Linux Instances.

If you have stored snapshots of your Amazon EBS volumes and no longer need them, you should delete them as well. Deleting a volume does not automatically delete the associated snapshots.

For more information about deleting snapshots, see Deleting an Amazon EBS Snapshot.


Deleting a snapshot might not reduce your organization's data storage costs. Other snapshots might reference that snapshot's data, and referenced data is always preserved.

For example, when you take the first snapshot of a volume with 10 GiB of data, the size of the snapshot is also 10 GiB. Because snapshots are incremental, the second snapshot that you take of the same volume contains only blocks of data that changed since the first snapshot was taken. The second snapshot also references the data in the first snapshot. That is, if you modify 4 GiB of data and take a second snapshot, the size of the second snapshot is 4 GiB. In addition, the second snapshot references the unchanged 6 GiB in the first snapshot. For more information, see How Incremental Snapshots Work.

The previous example will show two entries in your daily AWS Cost and Usage Reports (AWS CUR). AWS CURcaptures the snapshot usage amount for a single day. In this example, the usage is 0.33 GiB (10 GiB/ 30 days) for snap-A, and 0.1333 GiB (4 GiB/ 30 days) for snap-B. Using the rate of $0.05 per GB month, snap-A costs you 0.33 GiB x $0.05 = $0.0165. Snap-B costs you 0.133 GiB x $0.05 = $0.0066, and you are charged $0.0231 per day for both snapshots. For more information about AWS Cost and Usage Reports, see the AWS Cost and Usage Reports user guide.

lineItem/ Operation lineItem/ ResourceId lineItem/ UsageAmount lineItem/ UnblendedCost resourceTags/ user:usage
CreateSnapshot arn:aws:ec2:us-east-1:123:snapshot/snap-A 0.33 0.0165 dev
CreateSnapshot arn:aws:ec2:us-east-1:123:snapshot/snap-B 0.133 0.0066 dev

If you delete the first snapshot (snap-A in the first row of the preceding table), any data that is referenced by the second snapshot (snap-B in the second row of the preceding table) is preserved. Remember that the second snapshot contains the 4 GiB of incremental data, and references 6 GiB from the first snapshot. Once you delete snap-A, the size of snap-B becomes 10 GiB (4 changed GiB from the snap-B and 6 unchanged GiB from snap-A).

In you daily AWS CUR, you will then see the usage amount for snap-B as 0.33 GiB (10 GiB/ 30 days), charged at $0.0165 per day. When you delete a snapshot, the charges for the remaining snapshots are recalculated daily, resulting in the possibility that the cost for each snapshot can change daily as well. For more information, see Cost Allocation for EBS Snapshots.

lineItem/ Operation lineItem/ ResourceId lineItem/ UsageAmount lineItem/ UnblendedCost resourceTags/ user:usage
CreateSnapshot arn:aws:ec2:us-east-1:123:snapshot/snap-B 0.33 0.0165 dev

Elastic IP addresses

Any Elastic IP addresses that are attached to an instance that you terminate are unattached, but they are still allocated to you. If you don’t need that IP address anymore, release it to avoid additional charges. For more information, see Releasing an Elastic IP Address in the Amazon EC2 User Guide for Linux Instances.

Services launched by other services

A number of AWS services can launch resources, so be sure to check for anything that might have launched through any service that you've used.

Storage services

When you are minimizing costs for AWS resources, keep in mind that many services might incur storage costs, such as Amazon RDS and Amazon S3.