Avoiding Unexpected Charges
Here are some suggestions to help you avoid unexpected charges on your bill. The first two items are for those who are using the one-year AWS Free Tier. The following 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 Free Tier
- AWS Free Tier Expired
- Bill Received After Account Closure
- Elastic Beanstalk Environments
- Elastic Load Balancing (ELB)
- Services Started in AWS OpsWorks
- Amazon EC2 Instances
- Amazon Elastic Block Store Volumes
- Elastic IP Addresses
- Services Launched by Other Services
- Storage Services
Usage Exceeds Free Tier
If you are using the free tier, make sure that your usage does not exceed the limits specified at AWS Free Tier. You are charged On Demand rates for any usage that exceeds the free tier limits. You can check your free tier usage on the Billing and Cost Management console.
For more information on tracking your free tier usage, see Tracking Your Free Tier Usage.
AWS Free Tier Expired
If you receive unexpected charges after a period of inactivity, your free tier period might have expired. Any resources allocated to your account after your free tier period expires begin to incur charges. To check for resources in use, open the AWS Management Console. Be sure to check each region where you have allocated resources.
For more information about free tier offerings and terms, see 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.
Elastic Beanstalk Environments
Elastic Beanstalk is designed to ensure that all the resources 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 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 will restart 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.
Amazon Elastic Block Store Volumes
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, see Deleting an Amazon EBS Snapshot.
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 you've used.
When you are minimizing costs for AWS resources, be sure to keep in mind any services that might incur storage costs, such as Amazon RDS and Amazon S3.