Our services

If you can think it, we can make it brainsoft.

How to read a cloud bill and cut the quiet line items

Written By: BrainSoft In DevOps

Cloud bills are dense. They list dozens of services, some with cryptic names, and the total at the bottom gets approved without much thought. But buried in that spreadsheet are "quiet" line items: small recurring charges that add up to real money over a quarter. Most teams don't notice them until finance asks why the bill jumped.

Here's a direct approach: treat your cloud bill like a code review. You read it line by line, question anything you don't recognize, and remove what isn't needed. In this post I'll walk you through the steps to audit your bill, identify waste, and cut costs without touching your core infrastructure. If you'd rather have a second pair of eyes, get in touch and we can review it together.

  1. Grab the raw billing export

    Don't rely on the dashboard summary. Download the detailed usage report from your cloud provider. For AWS, use the Cost and Usage Report; for Azure, the Cost Management exports; for GCP, the BigQuery billing export. You want a CSV or JSON with every line item, including resource IDs and tags.

    # Example: AWS CLI to create a CUR in S3
    aws cur put-report-definition --report-definition file://cur.json
  2. Sort by cost, then by frequency

    Open the export in a spreadsheet or use a query. Sort by total cost descending. Then sort by number of line items. High-frequency small charges are often the quiet ones: data transfer, API requests, storage snapshots, or per-second charges.

  3. Identify untagged resources

    Resources without tags are easy to forget. Use your cloud provider's cost allocation tags to group spending. Anything untagged is a candidate for review. For example, an old S3 bucket or a detached load balancer can sit there accruing charges.

    # AWS CLI: list untagged volumes
    aws ec2 describe-volumes --filters "Name=tag:Name,Values=" --query 'Volumes[*].VolumeId'
  4. Look for idle or oversized resources

    Check for EC2 instances or databases running 24/7 when they're only needed during business hours. Also look for instances with low CPU utilization. Right-size them or schedule start/stop. Use AWS Compute Optimizer or Azure Advisor for recommendations, but verify manually.

  5. Scrutinize data transfer and egress

    Data transfer out to the internet is often a hidden cost. Look at which services are generating egress. Sometimes moving a workload to a different region or using a CDN can reduce costs. Also check inter-region transfer, which is easy to forget.

  6. Review storage lifecycle

    Snapshots, old backups, and infrequently accessed objects can be moved to cheaper storage tiers or deleted. Set up lifecycle policies to automatically transition objects to Glacier or delete old snapshots.

    # AWS CLI: add lifecycle rule to S3 bucket
    aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration file://lifecycle.json
  7. Check for duplicate or zombie resources

    Look for old load balancers, elastic IPs, or unused NAT gateways. These can be deleted. Also check for duplicate resources created by accident (e.g., two databases for the same app).

  8. Negotiate or commit to savings plans

    If you have steady usage, consider purchasing reserved capacity or savings plans. This can cut compute costs by up to 60-70%. But only commit to what you'll definitely use.

  9. Set up budgets and alerts

    Finally, create a budget that triggers an alert when spending exceeds a threshold. This way you catch spikes early, not at the end of the month.

Frequently asked questions

What are the most common quiet line items on a cloud bill?

Common ones include data transfer fees, especially egress, storage snapshots that are never deleted, idle load balancers, detached IPs, and small API request charges. Also look for per-second billing charges that accumulate from short-lived resources.

How can I quickly identify unused resources?

Use your cloud provider's cost analysis tools to filter by resource ID and look at last usage date. For example, AWS Trusted Advisor shows idle resources. You can also run scripts to list resources with no tags or with no recent activity.

Should I use a third-party tool to manage cloud costs?

Third-party tools can help, but they add another cost. Start with native tools like AWS Cost Explorer, Azure Cost Management, or GCP's billing reports. If you need more complex analysis or multi-cloud visibility, consider a tool, but only after you've done the manual review.


#DevOps