How an AWS bill is built
Every bill is
three meters
AWS documents pricing one service at a time, so every new service looks like a new billing model to learn. It isn't. Three meters exist. A service either has a given meter or it doesn't — and once you can name which, a pricing page stops being a lesson and becomes a lookup.
Since you opened this page, one t3.micro somebody forgot to terminate has been turning its meter.
Elapsed
Accrued, USD
You sent no requests. You moved no data. The meter ran anyway — that is the whole of meter one, and it is the one that quietly dominates most bills.t3.micro on-demand at $0.0104/hour, us-east-1. EBS and the public IPv4 address would each add their own line.
The three meters
01
Time
Does the thing exist?
- Counts
- Capacity × duration. Instances bill per second, storage bills per GB-month.
- Gets missed
- It runs whether or not you use it. Forgetting to delete costs more than forgetting to stop.
- On the bill
BoxUsage, Hours, GB-Mo
02
Bytes
Is anything counting gigabytes?
- Counts
- Gigabytes metered. Transfer out of a boundary, and per-GB processing wherever a device sits in the path.
- Gets missed
- Inbound is free only for transfer. A NAT Gateway, endpoint or log pipeline charges per GB in both directions.
- On the bill
DataTransfer-Out-Bytes, NatGateway-Bytes
03
Calls
Did you invoke the API?
- Counts
- The number of API operations. Payload size and direction are irrelevant.
- Gets missed
- Most services do not have this meter at all. EC2, IAM and STS charge nothing per call.
- On the bill
Requests
Reading a diagram here
One rule holds across every picture on this site: lit means billed, dim means free. You can find the money before you read a word. Here is the simplest case — a request arrives, a response leaves.
The lamp on the EC2 box is the other half of the story: that box was turning meter one before the request arrived, and keeps turning it after the response is sent.
Topics
Each page opens with the model, then earns it.