The cloud was supposed to be cheap and elastic. Elastic — usually yes. Cheap — it depends, especially when nobody looks at the bill more than once a quarter.
In a typical SME, cloud spend grows quietly. Someone spun up a test VM for the weekend, someone else raised the backup quota, someone bought a "trial" subscription, and two years later you're paying for three parallel dev accounts nobody remembers. That's not the cloud's fault. That's the billing model — you pay for what you left running, not for what you actually used.
FinOps sounds like a buzzword for corporations with ten-person optimization teams. In an SME it's much simpler: once a month, one person answers three questions and turns off what doesn't make sense. Below we break it down.
Start by looking at the bill
Sounds trivial, but in half the companies we walk into, only the bookkeeper sees the cloud invoice — and she books it as a cost without any sense of whether 6 000 PLN is a lot or a little. The owner finds out something's wrong when the annual bill lands 40% over plan.
The first move is to dump the last 6-12 months into one spreadsheet and see the trend. You don't need a FinOps tool at 2 000 PLN a month. Excel plus a CSV export from your provider's billing portal (Azure Cost Management, AWS Cost Explorer, Microsoft 365 admin center, Google Workspace panel) is enough.
- Collect the last year of costs — month by month, provider by provider.
- Split into categories: compute (VMs, services), storage (disks, backups), licenses (M365, Copilot, per-user SaaS), network and egress.
- Flag months that jumped more than 20% over the previous one. For each, write down what was happening in the company.
- Pick one person accountable for this table — preferably IT or a controller, not "everyone".
That single move — seeing the bill in one place — usually solves 20-30% of the problem. Forgotten things become visible.
A real example
At one of our clients — a 24-person engineering firm running mostly on Microsoft 365 and Azure — the monthly Azure bill grew from 900 PLN to 6 400 PLN over eight months. Nobody noticed, because the invoice auto-charged to a company card and landed in accounting.
Two hours in the portal turned up:
- A Windows Server test VM, spun up a year earlier "for a week", was running 24/7. Cost: 2 100 PLN per month.
- Two 512 GB premium SSDs were attached to machines that no longer existed. 380 PLN per month for the disks alone.
- Backups had grown to 1.8 TB — nobody had set retention, versions from 2023 were still there. 470 PLN per month.
- Two developer accounts, left over after a programmer departed, were consuming M365 E3 and Visual Studio Enterprise licenses. Together: 620 PLN per month.
Turning it off and cleaning up took one day. The bill dropped to 2 100 PLN per month — 4 300 PLN of savings each month, 51 600 PLN a year. The company put that toward hiring one more designer.
This is not an exceptional case. This is the typical case. In the cloud, bricks stay on the building site — you just can't see them from the street.
Three questions for the monthly review
You don't need a 40-slide FinOps process. You need a recurring calendar entry — "cloud review", once a month, 60 minutes, IT and finance in the room. In that meeting you answer three questions.
Did anything jump more than 15% over last month? If yes, find one concrete cause. Not "general growth". Concretely: a new VM, a new integration, a new user, a new data warehouse. If you don't know, it means nobody knows — and you need to build that knowledge.
Are there resources nobody uses? VMs, disks, snapshots, workspaces, user accounts of people who left three months ago. Azure and AWS both have straightforward "unattached resources" and "idle VMs" reports. Run them and shut down what you can. This isn't investment — it's tidying up.
Is there anything we're overpaying for? 8-vCPU instances where 2 would do. Premium SSD under archive files. An M365 E5 license for someone who only uses email. Three-year reservations for workloads that may not exist next year — or no reservations for workloads that definitely will. Sticking with defaults is the most expensive form of inertia.
Set alerts before you need to firefight
All three major providers (Azure, AWS, Google Cloud) offer free budget alerts. They take 15 minutes to configure. Usually nobody does it, "because it hasn't been needed". The need shows up exactly once — the month someone accidentally started a GPU instance costing 400 PLN a day.
The minimum we always configure at clients:
- Alert at 80% and 100% of monthly budget — email to owner and IT.
- Alert on any daily jump above 30% versus the 7-day average — catches "new toys".
- Alert on any newly launched GPU, dedicated host, or high-memory instance — those can cost more per month than a full workstation.
This doesn't replace the monthly review, but it buys peace of mind between reviews. The point is finding out about the problem when it costs 500 PLN, not 15 000 PLN.
Tags and conventions, so you know whose is what
In a 15-person company, memory is enough. In a 40-person company where each department runs its own projects, after a year nobody knows what "vm-test-02" is for. Tags (labels on resources) are the answer.
In practice, three suffice: owner (full name), project or department, environment (production, test, dev). Any new resource missing these three tags is treated as an orphan — after 30 days, a candidate for shutdown. Sounds harsh? That's what orphans get. Nobody will pay for something they won't claim.
- Define 3 mandatory tags and write it in one sentence in the internal wiki.
- Add a policy in Azure/AWS that enforces tags at resource creation.
- Once a quarter, run an "untagged resources" report and clean up.
Without this, all of FinOps collapses into guessing whose is what.
Traps that are easy to fall into
A few things worth knowing before you start "optimizing":
- Don't buy 3-year reservations for project environments. A reservation gives 30-50% savings, but locks you to a specific instance. Good for stable production, bad for "a project that might grow".
- Don't delete backups mindlessly to save on storage. Look at retention, but keep real copies for a ransomware event. 300 PLN a month in savings is not worth being without a backup when day X arrives.
- Watch egress traffic. Data transfer out of the cloud can be more expensive than the storage itself. If you copy 500 GB daily from Azure to the office, check the bill — that sync job may cost more than the server it was supposed to replace.
- SaaS licenses are cloud too. M365, Copilot, Salesforce, Slack, Asana — treat these as one budget with Azure/AWS. SaaS consolidation and cloud FinOps are two faces of the same problem.
What next
Cloud cost control isn't a quarterly project. It's a 60-minute-a-month habit. A company that has the habit pays less and sleeps better. A company that doesn't finds out from the invoice.
If you don't know where to start in your own cloud — show us your last three invoices from Azure, AWS or M365. In half an hour we'll point out three places you're most likely overpaying. No obligations, no slide decks.
The cloud doesn't get more expensive on its own. It gets more expensive when nobody is looking.