AWS BillExplained

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. There are three meters — Time, Bytes, Units — and a service either turns one or it doesn't. Once you can say 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

Elapsed

Accrued, USD

Accrued, USD

You sent no requests. You moved no data. The meter ran anyway. That is the whole of Time, the first of the three, 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

  1. 01

    Time

    Does the thing exist?

    Counts
    Something exists, multiplied by how long it existed. Instances bill per second, storage per GB-month, seats per 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
  2. 02

    Bytes

    Did bytes cross a boundary, pass through a box, or get read where they sat?

    Counts
    Gigabytes, counted three ways: leaving a boundary, handled by a box you put in the path, or scanned in place.
    Gets missed
    "Inbound is free" is a rule about transfer, not about this meter. A NAT Gateway or interface endpoint bills both directions, and Athena bills bytes that never moved at all.
    On the bill
    DataTransfer-Out-Bytes, NatGateway-Bytes
  3. 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: colour means billed, grey means free. You can find the money before you read a word. Here is the simplest case — a request arrives, a response leaves.

Request (inbound)1 unitResponse, 1 GB (outbound)$0.09/GBClientinternetAPI Gatewayper requestEC2t3.micro
One request, one response, and all three meters. Grey means the meter did not turn.CallsBytes no charge

All three meters appear here. The lamp on the EC2 box is Time, turning before the request arrived and after the response is sent. The inbound request is free as bytes but still counts as one unit at the API. Only the response out turns the Bytes meter.

Topics

Each page opens with the model, then earns it.