Why Your First Cloud Bill Is Higher Than You Expected
The gap between a pricing page and your first invoice is usually caused by the same five things. None of them is a mistake by the provider.
A pricing page says four dollars a month. The first invoice arrives and it is
twenty three. Nothing has gone wrong, and the provider has not overcharged you.
What has happened is that the headline figure describes one line item on a bill
that has several, and almost everyone meets the same five causes on their first
month.
The server ran for the whole month, not just while you used it
This is the most common one, and it catches people who think of a cloud
server the way they think of a laptop. A virtual machine bills for every hour it
exists, not for the hours you were logged in to it. Shutting a server down from
inside the operating system usually does not stop the meter either, because the
provider is still holding the CPU, memory and IP address for you.
To actually stop paying for compute, you destroy the instance through the
provider’s control panel or API. Some platforms distinguish between a stopped
instance, which may still bill for its attached resources, and a terminated one,
which does not. Learn which words your provider uses before you rely on them.
Storage outlived the server
Deleting a virtual machine does not always delete its disk. Volumes,
snapshots and backup images are separate billable resources on most platforms,
and they are designed to survive the instance so that you can reattach them. The
result is a small, permanent charge for storage belonging to a server that no
longer exists.
Snapshots are the version of this that grows quietly. An automated daily
snapshot that nobody prunes becomes a hundred snapshots in a few months. Check
the storage section of your console, not just the compute section, when you are
working out where money is going.
Outbound data transfer was metered
Traffic into a cloud platform is typically free. Traffic out of it is
typically not. If your project serves images, video, downloads or API responses
to the public, that outbound volume appears as its own line on the invoice, and
it is the item that most often surprises people whose service became briefly
popular.
Providers vary a great deal here. Some bundle a generous transfer allowance
into the price of the instance, so a small site never pays extra. Others meter
almost every gigabyte. This single difference can invert a price comparison
between two providers that look identically priced on compute. It is worth
reading how egress is charged
before you choose.
A managed service was priced separately
The database, the load balancer, the object storage bucket and the managed
Kubernetes control plane are not included in the price of a virtual machine.
Each is a product with its own meter. This is reasonable, because each is a
separate service, but it means a “ten dollar server” that also uses a managed
database and a load balancer is not a ten dollar deployment.
The useful habit is to price the architecture rather than the server. Write
down every component your application needs, find the meter for each one, and
add them up. That number is your actual floor.
The free tier ended, or never covered what you used
Trial credits expire on a date, and free allowances cover specific resource
types at specific sizes. An instance one size larger than the free tier allows
is billed in full, not at a discount, and the credit that was absorbing your
costs stops absorbing them the moment it runs out or expires.
This is worth planning for at the start rather than discovering at the end.
Our comparison of
free tiers and trial credits
sets out what each platform offers and how long it lasts.
Two smaller causes worth knowing
Tax is added on top of the quoted price in most jurisdictions, and quoted
prices are often exclusive of it. If you are a business with a valid tax
registration, adding it to your billing profile may change what you are
charged.
Billing granularity also matters. A platform that bills per second charges
you for the ninety minutes you actually used. A platform that bills per hour
charges you for two hours. Over a month of experimentation that difference is
real, which is why per-second billing is a genuine feature rather than
marketing.
What to change before next month
- Open the billing section of your console and read the invoice line by line.
Identify which resource each charge belongs to. - Set a billing alert at a figure that would worry you, and a second one at
roughly half of it. Do this now rather than after the next surprise. - List every resource you have created and delete the ones you are not using,
including volumes and snapshots attached to nothing. - Check whether your outbound transfer is inside an included allowance or
being metered. - Find the expiry date of any credit you are relying on and put it in your
calendar.
None of this requires expertise. It requires looking at the invoice once,
properly, instead of filing it. Almost every account that develops a serious
cost problem later is one where nobody did that in the first month.