Guides · EC2 and RDS
Stopping an EC2 instance or an RDS database ends the charge for compute hours. It doesn't end the charges for anything attached to it. EBS volumes, Elastic IPs, database storage and backups keep billing every month. A stopped RDS database also doesn't stay stopped: after seven days, RDS starts it again on its own, and instance hours start billing again.
AWS doesn't charge instance hours or data transfer for a stopped instance. These keep billing:
| Still billed | Price | Example | Per month |
|---|---|---|---|
| EBS gp3 volume | $0.08 / GB-month | 100 GB root volume | $8.00 |
| EBS gp2 volume | $0.10 / GB-month | 500 GB data volume | $50.00 |
| Elastic IP on the instance | $0.005 / hour | One address, all month (730 hours) | $3.65 |
| EBS snapshots | $0.05 / GB-month | 200 GB of snapshot data | $10.00 |
That example instance costs $71.65 a month while doing nothing. Snapshots bill whether the instance runs or not, so they don't change when you stop it.
What a stop removes: data in RAM and on instance store volumes, and the public IPv4 address EC2 assigned automatically. That address is released, so it stops billing, and the instance gets a new one when it starts. An Elastic IP stays associated, and AWS charges for it while the instance is stopped. Each time you start the instance again, you're billed for at least one minute.
AWS's RDS documentation lists what you're still charged for while a DB instance is stopped: provisioned storage (including Provisioned IOPS), backup storage (including manual snapshots and automated backups within the retention window) and, if the database is publicly accessible, its public IPv4 address. You're not charged for DB instance hours.
| Still billed | Price | Example | Per month |
|---|---|---|---|
| gp2 or gp3 storage, Single-AZ | $0.115 / GB-month | 500 GB | $57.50 |
| gp2 or gp3 storage, Multi-AZ | $0.23 / GB-month | 500 GB | $115.00 |
| Backup storage over the free allowance | $0.095 / GB-month | 200 GB over | $19.00 |
| Public IPv4 address | $0.005 / hour | Publicly accessible database | $3.65 |
Backup storage is free up to 100% of your total database storage in a region. You pay the $0.095 rate only for backups beyond that.
If you don't start a stopped DB instance yourself within seven consecutive days, RDS starts it for you. AWS does this so the instance doesn't fall behind on required maintenance. Once it's running, instance hours bill again, and nothing tells you unless you're watching.
For example, a db.m5.large running PostgreSQL in a single Availability Zone is $0.178 an hour. If it restarts and runs unnoticed for three weeks (504 hours), that's $89.71. A full month is $129.94.
So stopping isn't a way to park a database you don't need. It works for databases you use part of the time, such as development databases you start when you need them. AWS's documentation links to a guide for keeping an instance stopped longer than 7 days with AWS Step Functions.
Some databases can't be stopped at all: a DB instance that has a read replica or is one, and RDS for SQL Server in a Multi-AZ deployment.
1. Stopped EC2 instances, with the reason and time of the last state change:
aws ec2 describe-instances --region us-east-1 \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,StateTransitionReason]' --output table
2. The volumes and Elastic IPs each one still pays for:
aws ec2 describe-volumes --region us-east-1 \
--filters Name=attachment.instance-id,Values=i-0123456789abcdef0 \
--query 'Volumes[].[VolumeId,Size,VolumeType]' --output table
aws ec2 describe-addresses --region us-east-1 \
--filters Name=instance-id,Values=i-0123456789abcdef0 \
--query 'Addresses[].[PublicIp,AllocationId]' --output table
3. Stopped RDS databases:
aws rds describe-db-instances --region us-east-1 \
--query "DBInstances[?DBInstanceStatus=='stopped'].[DBInstanceIdentifier,DBInstanceClass,AllocatedStorage,StorageType,MultiAZ]" \
--output table
4. Manual RDS snapshots, which bill until you delete them:
aws rds describe-db-snapshots --region us-east-1 --snapshot-type manual \
--query 'DBSnapshots[].[DBSnapshotIdentifier,DBInstanceIdentifier,AllocatedStorage,SnapshotCreateTime]' --output table
5. What it costs you: Billing and Cost Management → Cost Explorer, grouped by Usage type. Look for EBS:VolumeUsage types for EC2 disks, and RDS:GP2-Storage, RDS:GP3-Storage and RDS:ChargedBackupUsage for RDS. In us-east-1 they have no prefix; in other regions they start with a region code.
The free checkup finds this and 20 other kinds of issues automatically. It lists every stopped EC2 instance in the regions it scans, prices its attached EBS volumes by size and type, and shows the date it was stopped when AWS records one. It also lists EBS snapshots older than 90 days that no AMI uses. It doesn't check stopped RDS databases or RDS snapshots. An Elastic IP on a stopped instance is still associated, so the checkup doesn't count it as idle.
EBS:VolumeUsage.gp2 $0.10, EBS:VolumeUsage.gp3 $0.08, EBS:SnapshotUsage $0.05 per GB-month. Amazon VPC pricing, Public IPv4 Address tab: $0.005 per hour per address.RDS:GP2-Storage and RDS:GP3-Storage $0.115, RDS:Multi-AZ-GP2-Storage and RDS:Multi-AZ-GP3-Storage $0.23, RDS:ChargedBackupUsage $0.095 per GB-month; InstanceUsage:db.m5.large (PostgreSQL) $0.178 per hour.Prices are AWS on-demand list prices for US East (N. Virginia), checked October 3, 2026. Other regions differ.