5 Hidden Sources of Cloud Costs – Where is Your Budget Going?

One of the main arguments for moving to cloud infrastructure has always been:

„"Pay only for what you use."“

Technically this is true.

But in practice there is another side:

In the cloud, you often continue to pay for a resource you forgot existed.

Virtual Machine.

Old Disk.

Snapshot.

Test Environment.

Unused IP.

Load Balancer.

Several years of Log.

A database that actually only needs a small portion of its capacity.

Individually, each of these can be a small expense.

But when a company already has multiple Servers, Cloud Accounts, Applications, Backups, and Development Environments, these small costs add up and ultimately significantly increase the monthly bill.

This is the general approach of the official cost-optimization recommendations from AWS, Google Cloud, and Microsoft: Cloud cost management requires constant visibility, rightsizing, idle resource cleanup, and an appropriate pricing model.

Let's take a look at five hidden sources of cloud costs that businesses often only notice when their monthly bill has already increased significantly.

1. Forgotten and unused resources

Perhaps the simplest and most common hidden cost of cloud computing is a resource that no one needs anymore but is still active.

For example:

  • Old Virtual Machine;
  • Test Environment;
  • Proof-of-Concept Server;
  • Unused Storage Disk;
  • Old Snapshot;
  • Public IP;
  • Load Balancer;
  • Development Database;
  • Old Cloud Storage Bucket;
  • Canceled project infrastructure.

Often the process goes like this:

Developer creates a test server.

The project is being completed.

The application is moving to another infrastructure.

The server is no longer in use.

But it still exists in Cloud Billing.

And the company continues to pay.

Microsoft's Azure Well-Architected Framework explicitly lists demo builds, proof-of-concept environments, snapshots, storage accounts, IP addresses, and temporary testing environments as typical examples of unused resources. The recommendation is simple: regularly inventory resources, identify orphaned resources, and decommission them.

AWS also separates underutilized EBS volumes and idle load balancers. For example, a Load Balancer may have virtually no traffic, but as long as the resource exists, the cost continues.

Google Cloud's FinOps Hub has specific recommendations for identifying idle VMs, unused disks, IP addresses, and reservations.

Why is this happening?

Creating a Cloud is very easy.

Creating the resource may take several minutes.

To cancel it, someone needs to know:

  • Who does it belong to?;
  • Is it used or not?;
  • What happens if we turn it off?;
  • Is there any important data on it?.

If Resource Ownership and Documentation are not in place, the safest decision is often to:

„"Let's leave it, it may be necessary."“

And that's how Zombie Infrastructure is created.

What should businesses do?

Conduct a Cloud Resource Audit once a month or once a quarter.

Each resource must have at least:

Owner → Project → Environment → Purpose → Criticality → Expiration Date

For example:

web-server-04

Not enough.

A more correct tagging would be:

Project: Website

Environment: Staging

Owner: Dev Team

Review Date: 2026-12-01

If no one can identify the owner and purpose of a resource, it should automatically be included in the review.

2. Overpowered Servers and Overprovisioning

One of the most common approaches in the Cloud is:

„"Let's give them a little more resources so that there are no problems."“

For example:

The application may actually need:

2 vCPUs

4GB RAM

But the Server was created:

8 vCPUs

32GB RAM.

The system works perfectly.

There doesn't seem to be a problem.

But businesses pay monthly for capacity they almost never use.

This is called overprovisioning.

Google Cloud highlights rightsizing as one of its key capabilities in its cost-optimization guidance, with the goal of allowing a company to pay only for the resources it actually uses.

The AWS Well-Architected Framework also recommends using CPU, Memory, and other workload metrics to size VMs to match actual requirements and identify idle or underutilized resources.

Azure Advisor also has special recommendations for shutting down/resizing VMs when the workload is using only a small portion of the available capacity.

Where does Overprovisioning occur most often?

Production Servers

Infrastructure is planned based on peak load from the beginning, even though the peak only occurs for a short period of time.

Databases

A database may have much more CPU, RAM, or storage performance than it actually needs.

Development Environments

The Development Server runs 24/7, while it is only used during business hours.

Kubernetes

In clusters, the requested CPU/RAM and actual utilization can differ significantly.

Backup or Processing Servers

The system may be used for a few minutes once a day, but be active all day long.

„"Works" does not mean "optimal"“

Availability should not be the only thing that should be checked during a Cloud Audit.

We need to see:

  • Average CPU;
  • Peak CPU;
  • Memory usage;
  • Disk usage;
  • Network usage;
  • Database usage;
  • Application request;
  • Peak periods.

After that it is possible Rightsizing.

In some cases, the server may be down.

In other cases, Autoscaling may be better.

Some development servers shut down completely at night.

This is the main advantage of the Cloud's flexibility:

Capacity can be adjusted to meet demand.

If cloud infrastructure is constantly provisioned for peak workloads, one of the main economic advantages of the cloud is lost.

3. Storage, Snapshots, Backups, and Logs – Data That Only Grows

Compute is often the most visible part of a Cloud account.

Storage, on the other hand, is growing much more quietly.

Today 200 GB.

Then 500 GB.

Then 2 TB.

And after a few years, no one knows anymore:

What is actually stored there?

Microsoft specifically notes that storage systems grow naturally because adding information is an automatic process, while deleting requires a decision. Logs, Backups, Intermediate Data, and Historical Artifacts can remain in the infrastructure long after their actual business value has diminished.

Hidden Storage Cost Sources

Snapshots

The VM or Disk has already been deleted, but the old Snapshots still remain.

Backups

Backup is necessary.

But a Retention Policy is needed.

It is not always necessary to keep daily backups for years.

Object Versioning

Dozens of old versions of a single file can remain in Storage.

Logs

Application Logs.

Access Logs.

Firewall Logs.

Audit Logs.

Debug Logs.

Container Logs.

Monitoring Data.

Each of them is generated daily.

Duplicate Data

A single piece of information can exist in multiple storage systems at the same time.

Logs – A particularly overlooked source of cloud costs

Monitoring and logging are essential.

But "keeping everything forever" is often an expensive decision.

Google Cloud's Logging guidance recommends that companies analyze not only log storage, but also ingestion, processing, BigQuery/Storage export, and network egress costs. Excluding low-value logs and having the right retention policy are important cost-control mechanisms.

In Azure, the cost of Log Analytics also depends on the volume of data collected and retention; Microsoft recommends reducing unnecessary data collection, managing retention policies, and setting alerts for cost increases.

The correct questions are:

Which data do we need for 7 days?

Which one – 30 days?

Which one – 1 year?

Which one should we keep for Compliance?

What can we transfer to Archive Storage?

What can we delete?

A good Storage Lifecycle Policy often does this automatically:

Hot → Cool → Archive → Delete

Depending on how often data access is required.

4. Data Transfer – A Cloud Cost That's Often Not Considered

Another hard-to-see cost of the Cloud is Data Transfer.

The application can run on a very cheap server.

The database can also be optimized.

But information is constantly moving:

Between Region.

Between Availability Zones.

From the Cloud to the Internet.

Among Cloud Providers.

Between Storage and Application.

Through a NAT Gateway.

And each such architectural decision may have its own Network Cost.

The AWS Well-Architected Framework explicitly states that data transfer fees are often overlooked by companies when planning their cloud architecture. The cost depends on the source, destination, and volume of data, which is why AWS recommends Data Transfer Modeling separately.

Simple example

Imagine an Application Server in a single Region.

Database – in the second.

Backup to another region.

Users download a large number of files directly from Origin Server every day.

Everything works.

But the architecture may create additional data transfer costs for each request.

The right architecture may include:

  • CDN;
  • Caching;
  • Appropriate placement within a single Region;
  • Traffic Flow Optimization;
  • Relevant Cloud Endpoints;
  • Less cross-region movement.

AWS recommends using CDN, caching, and properly deployed network components to reduce data transfer costs.

Egress – „Inputting data is cheap, outputting it is not“

When planning a cloud architecture, you need to consider not only:

How many GB do we store?

But:

Where does this data go?

For example:

Media Files.

Large Backups.

Analytics Data.

API Responses.

Machine Learning Datasets.

Website Assets.

If large volumes of data leave the Cloud Provider's environment, Egress can become a significant cost.

Therefore, the Infrastructure Audit should have a separate:

Network Cost Analysis.

5. Wrong Pricing Model – Overpaying for On-Demand

Another hidden cost of the Cloud may not be the use of the Server itself, but its Acquisition model To be.

Cloud Providers usually offer several approaches.

For example:

On-Demand.

Reserved Capacity.

Committed Use Discounts.

Savings Plans.

Spot/Preemptible Infrastructure.

If the workload is unpredictable, On-Demand is very flexible.

But if Server:

Works 24/7,

It has had an almost constant load for months,

And its need is predictable,

Staying solely on On-Demand pricing could mean that the company is paying an unnecessarily high rate.

Google Cloud's Committed Use Discounts use a one- or three-year commitment for predictable workloads, while recommendations analyze historical usage to offer the customer an appropriate commitment.

Microsoft Azure also integrates Reservations and Savings Plans and uses Advisor recommendations to offer you the appropriate pricing option based on historical usage.

There is an important sequence here.

Microsoft's recommendation is as follows:

First Rightsize / Shutdown → then Reservation → then Savings Plan.

Why?

If you first purchase a one-year commitment on a server that is too large, you will simply be stuck with the wrong capacity for a year.

Therefore:

First Optimization. Then Commitment.

Another problem: no one knows exactly who owns the cloud costs

A Cloud report may show:

Compute – $2,000

Storage – $600

Network – $400

Database – $1,000.

But for businesses, the more interesting question is:

Which product caused this expense?

Client A?

Internal Platform?

Website?

Development?

Analytics?

Marketing?

AI Application?

If this cannot be clarified, the company cost allocation There is a problem.

One of the core principles of the FinOps Foundation is to create ownership over cloud usage. Shared infrastructure, such as a container cluster, data warehouse, or common platform service, can be used by multiple teams simultaneously. If this cost cannot be shared, teams will not see the true technological value of their product.

That's why Tags and Labels are not just technical organization.

They are part of financial management.

For example:

Client: A

Project: Website

Department: Marketing

Environment: Production

Owner: Platform Team

After that we can already see:

Cost per Client

Cost per Product

Cost per Environment

Cost per Department

And this is where the real FinOps begins.

Why does the cost of Cloud increase over time?

Cloud spending often doesn't come down to one big mistake.

It grows by accumulating small decisions.

New VM.

Additional Disk.

Snapshot.

Monitoring.

Development Environment.

New Database.

Backup.

Log.

Third-party integration.

At first, each of them may only cost a few dollars a month.

But we shouldn't look at Cloud Infrastructure in the context of one month.

For example:

$50 extra expense per month = $600 per year.

If there are 10 such resources:

$6,000 per year.

And this amount is now taking on a completely different meaning.

How to conduct a Cloud Cost Audit?

Cloud Cost Optimization should not start immediately by shutting down servers.

The first stage is Visibility.

1. Create a Complete Resource Inventory

You should know everything:

VM.

Database.

Disk.

Storage.

Snapshot.

IP.

Load Balancer.

Backup.

Monitoring Service.

Container Cluster.

Network Component.

2. See Real Utilization

CPU.

Memory.

Storage.

Network.

Requests.

Database Activity.

3. Find Idle and Orphaned Resources

Unused VM.

Unattached Disk.

Old Snapshot.

Unused IP.

Idle Load Balancer.

Abandoned Environment.

4. Check the Storage Lifecycle

What data can be moved to Archive?

How many backups do we need?

How long should we keep logs?

5. Analyze Data Transfer

Cross-Region.

Internet Egress.

NAT.

CDN.

Inter-Service Traffic.

6. Check the Pricing Model

On-Demand.

Reservations.

Commitments.

Savings Plans.

7. Create Budgets and Alerts

Billing Reports, Budgets, and Alerts in Google Cloud, Azure, and other major platforms are there to ensure that you don't first discover an unexpected cost increase at the end of the month. Google discusses visibility and billing tooling as an essential part of cloud cost control in its FinOps guidance.

A simple model for Cloud Cost Optimization

Cloud cost optimization can be divided into four stages:

1. Eliminate

Let's delete what we no longer need.

2. Right size

Let's reduce the size of a resource whose capacity we are not using to its full capacity.

3. Optimize

Let's improve Storage, Network, and Architecture.

4. Commit

Only then should we use Reserved/Committed pricing for stable workloads.

The main idea of this model is:

The cheapest server is not the one you get the biggest discount on, but the one you actually need.

Cloud Cost Optimization Checklist

Check your environment:

  • Do we know all the Cloud Resources we are paying for?
  • Are all VMs actually used?
  • Are there Unattached Disks?
  • Do we have old snapshots?
  • Does the development environment work 24/7?
  • Are servers selected based on actual utilization?
  • Do we have a Lifecycle Policy for Storage?
  • Is Backup Retention defined?
  • Are logs only kept for the necessary period?
  • Do we know how much we pay for Data Transfer?
  • Do we have Cross-Region Traffic?
  • Is CDN used where needed?
  • Do we still have On-Demand pricing for Stable workload?
  • Does each resource have an Owner and Project Tag?
  • Do we have a monthly budget?
  • Do we have Cost Spike Alerts?
  • Does anyone regularly review cloud costs?

If the answer to a significant portion of these questions is „"We don't know"“, The problem may not be the price of the Cloud, but the way it is managed.

FinOps – Cloud spending is no longer just an IT department issue

It appears here FinOps – Cloud Financial Operations.

Its main idea is that Engineering, Finance, and Business together take responsibility for Cloud costs.

Developer sees:

What is the value of its architectural decision?.

Finance sees:

Why did the score increase?.

Management sees:

Which product or project has what infrastructure costs?.

And the organization no longer waits for the end-of-month invoice to realize that cloud spending has unexpectedly increased.

Cloud Cost Optimization is not a one-time project.

This is a constant cycle:

Measure → Analyze → Optimize → Monitor → Repeat.

Does optimization simply mean making Cloud cheaper?

No.

The cheapest infrastructure is not always the best infrastructure.

The goal of Cloud Cost Optimization is not minimum cost, but:

Maximum business value in relation to the amount spent.

For example, additional Multi-Region infrastructure can be expensive.

But if it provides the availability necessary for the business, it can be a completely justified expense.

AWS's Cost Optimization Framework also emphasizes maintaining functional requirements: a cost-optimized workload is one that achieves the required business outcome at the most cost-effective cost, not simply the one that is cheapest.

Conclusion

Cloud costs rarely increase just because the provider raises the price.

More often than not, money is lost in an environment that has grown over time and is no longer inspected by anyone.

The five most common hidden sources are:

1. Idle and Orphaned Resources

2. Overprovisioned Compute

3. Storage, Backups, Snapshots and Logs

4. Data Transfer and Suboptimal Network Architecture

5. Wrong Pricing Model and Commitment Strategy

Finding a new Cloud Provider is not always the most important step.

Often we need to first understand:

What do we use?

What do we use it for?

How much do we use?

And how much do we pay?

Only then can we decide where the real optimization opportunity lies.

How can Techservice Cloud help you?

Cloud environments can become complex over time, especially when a company manages multiple servers, applications, backups, and various cloud services.

Within the framework of Techservice Cloud, it is possible to evaluate Cloud infrastructure in such areas as:

Resource Utilization

Cloud Architecture

Server Rightsizing

Storage & Backup

Network/Data Transfer

Cost Visibility

Security

Infrastructure Management

The goal is not simply to make the server cheaper.

The goal is to create an environment that is:

Stable + secure + manageable + predictable in terms of costs.

If your Cloud bill is growing and you don't know exactly why, the first step might be to fully assess your existing infrastructure.

Frequently Asked Questions – FAQ

Why are Cloud costs increasing?

Cloud costs can increase due to more users and workloads, but common causes include idle resources, overprovisioned servers, storage congestion, logs, backups, data transfer, and an incorrectly selected pricing model.

What is Cloud Cost Optimization?

Cloud Cost Optimization is the ongoing evaluation of cloud resources, architecture, and pricing models to ensure that a company gets the performance and reliability it needs without incurring unnecessary costs.

What is Idle Cloud Resource?

An idle resource is a Cloud resource that is still active and may be generating costs, even though it is no longer being used by the business. For example, a VM, Disk, IP, Snapshot, or Load Balancer.

Is it always safe to move to a smaller server?

No. Rightsizing should be based on CPU, RAM, Storage, Network, and Application metrics. Simply downsizing the server can degrade performance.

Why is Data Transfer a significant expense in the Cloud?

In the cloud, moving data between different regions, availability zones, services, or internets can have different costs. In systems with high traffic, suboptimal architecture creates significant costs.

What is FinOps?

FinOps is a Cloud financial management approach that brings together Engineering, Finance, and Business teams to make Cloud usage and its business value more transparent and manageable.

How often should we conduct a Cloud Cost Audit?

A full Cloud review can be conducted periodically, but cost monitoring should be an ongoing process. Alerts, budgets, and utilization monitoring are especially important to quickly identify unexpected changes in costs.

Is Reserved/Committed pricing always better?

No. Commitment is most effective when the workload is stable and predictable. First, you need to remove idle resources and rightsize, and then evaluate the appropriate commitment.

Blogs & News

Our other articles