AWS EC2 Cost Control: Stop, Rightsize and Commit
An EC2 instance stops cleanly, but its volumes, addresses and instance-store data each behave differently. Here is what that means for cost.
What an EC2 bill is made of
An EC2 instance carries two meters that people tend to merge. The instance itself charges while it runs. The EBS volumes attached to it charge by provisioned GB per month until the storage is released, so a stopped instance still costs something. AWS stops and starts only instances with an EBS root volume; an instance with an instance-store root cannot be stopped at all.
One detail matters before you put anything on a timer: stopping erases the data on any instance store volumes. AWS says so in a warning on its stop and start guide. Scratch disks, local caches and ephemeral build directories come back empty, and AWS notes that a started instance is typically moved to a new underlying host and assigned a new public IPv4 address.
Levers that genuinely apply
- Stop outside working hours. EC2 is on ZopNight’s Start/Stop supported list. A schedule is a cron in your own timezone, attached to single instances or to a resource group, with overrides for the evening someone needs a box kept up.
- Rightsize. The EC2 Rightsizing rule compares measured CPU to the instance type and proposes a smaller one. It is wired to a resize remediation that stops the instance, changes the type and starts it again, with a validation step at the end.
- Change family. Graviton Migration Opportunity, EC2 Older Instance Family and Non-Nitro EC2 Instance rules flag instances on older or non-ARM generations.
- Commit or go Spot. EC2 Reserved Instance Opportunity, EC2 Compute Savings Plan Opportunity and the EC2 Spot rule fire on sustained on-demand usage. Reserved Instance options are priced from the real on-demand versus committed rate for 1-year and 3-year No-Upfront terms, and stay advisory.
- Clean up the residue. Idle EC2 Instance fires on instances stopped for 30 days or more and prices only what still bills: the attached volumes and any associated Elastic IP.
What ZopNight adds around the instance
Discovery pulls every instance across accounts and regions into one list, with cost shown as rack rate from AWS pricing or as billed cost once Cost Explorer or a CUR 2.0 export is connected. Savings from a schedule are reported as the 24x7 cost minus what the instance actually cost. A read-only connection is enough to see instances and their recommendations; stopping, starting and resizing need a read + write connection.
Security posture rules sit beside the cost ones: EC2 IMDSv2 Not Required, EC2 Instance Not Managed by SSM and EC2 Instance Has a Public IP.
For per-instance mechanics see the EC2 fact sheet and how EC2 schedules run. The wider methods are on rightsizing and Spot instances.
Questions we get a lot.
Does a stopped EC2 instance cost nothing?
No. Compute stops charging, but EBS volumes bill by provisioned GB per month until they are deleted, and an associated Elastic IP can keep billing too. ZopNight's Idle EC2 Instance rule prices exactly that residue.
Is anything lost when ZopNight stops an instance?
Whatever sits on instance store volumes is erased by AWS on stop. EBS data persists. Keep anything that must survive on EBS or S3 before scheduling the instance.