Skip to main content
Cloud Computing

Why Your 'Always-On' Cloud Bill Is a Choice, Not a Law

You're overpaying for cloud compute. Steady workloads belong on savings plans, not on-demand. Here's how to cut costs by 70% without a rewrite.

Everyone tells you to start with on-demand instances and scale later. That advice is fine for a hackathon, but it's quietly billing you 66% more than necessary for the workloads you'll run for the next three years. If you have a stable service that runs 24/7, paying on-demand rates for it is a choice—and not a smart one.

What Are You Actually Paying For?

On-demand pricing bills per second or hour with no upfront commitment, which sounds flexible until you realize you're paying the maximum rate for every second of uptime (AWS Documentation). For a production database that never sleeps, that's like renting a car by the day for a cross-country trip when you could lease it for a fraction of the cost. The cloud providers love this because it makes their revenue predictable, but your budget doesn't have to be.

Savings Plans: The Unsexy Middle Ground

Here's the blunt truth: if you have any workload that runs more than 25% of a month, you need a Savings Plan. AWS offers Compute Savings Plans with up to a 66% discount and EC2 Instance Savings Plans up to 72%, both with a 1- or 3-year commitment (AWS Documentation). That's not a rounding error—it's the difference between paying $0.096/hour for an m5.large and $0.033/hour. Over a year, that's $840 versus $290 for a single instance. Multiply that by your fleet, and you're leaving thousands on the table.

Spot Instances: The Wildcard for Stateless Work

For workloads that can handle interruption—CI/CD, batch processing, web servers, even HPC—Spot Instances are the real deal. They use spare AWS capacity at up to 90% off On-Demand, with a two-minute warning before interruption (AWS EC2 Spot). That's perfect for a data pipeline that can restart from a checkpoint, but a terrible fit for a stateful database. If you're not using Spot for anything, you're missing the biggest discount in cloud. I've seen teams cut compute costs by 70% just by moving their ETL jobs to Spot, and they didn't even change the code—just the purchase option.

Burstable and Graviton: The Underrated Workhorses

Before you commit to a Savings Plan, check if you actually need full CPU all the time. T3 instances are low-cost burstable general purpose instances that accumulate CPU credits when idle—one credit equals one vCPU at 100% for one minute (AWS EC2 T3). For a typical web service that spikes during the day and idles at night, a t3.micro at $0.0104/hour (AWS EC2 Price List API) is a no-brainer. And if you're using x86 instances, you're paying a 20% premium for nothing. AWS Graviton-based instances cost up to 20% less than comparable x86 instances (AWS Graviton), and they use up to 60% less energy for the same performance. For a price-sensitive startup, switching to Graviton is the easiest optimization you'll ever make.

Serverless: Not Always the Answer

Now, you might be thinking, "Why not just go serverless and forget about instances?" That's the other end of the pendulum. Serverless has a generous free tier—AWS Lambda gives you 1 million requests and 400,000 GB-seconds per month (AWS Lambda Pricing), and Azure Functions gives you the same (Azure Functions Pricing). But once you exceed that, the per-request pricing can bite. If you have a steady, predictable load, a t3.micro on a Savings Plan will cost you a flat $0.003/hour, while Lambda charges you per GB-second beyond the free tier (AWS Lambda Pricing). For a constant 1,000 requests/second, Lambda will be more expensive than a reserved instance. Don't fall for the serverless hype; pick compute that fits the job.

Putting It All Together: A Concrete Example

Let's say you run a web app with a couple of m5.large instances (2 vCPU, 8 GiB) that are always on. At On-Demand, that's $0.096/hour each (AWS EC2 Price List API). Over a year, that's $1,682 per instance. If you commit to a 3-year Compute Savings Plan, you get up to a 66% discount, dropping it to $572 per instance. Add a Graviton-based m7g.large at $0.0816/hour (AWS EC2 Price List API) with the same Savings Plan, and you're at $486. That's a 71% reduction for the same performance. And if you can shift the background jobs to Spot, you're looking at a 90% drop on those. The math is not complicated—it's just that most people never bother to run it.

The Takeaway

Your cloud bill is not a fixed cost; it's a reflection of the choices you've made. On-demand is for experimentation, not for production. Savings Plans are for steady workloads. Spot is for anything that can tolerate interruption. Serverless is for spiky, low-volume tasks. The next time your CFO asks why the cloud bill keeps climbing, don't blame the provider—blame your purchase options. Commit to a Savings Plan, switch to Graviton, and use Spot where you can. You'll cut your compute costs by 60-70%, and that's not a marketing claim—it's basic arithmetic.

Sources

  • AWS Documentation - https://docs.aws.amazon.com/ec2/
  • AWS EC2 Spot - https://aws.amazon.com/ec2/spot/
  • AWS EC2 T3 - https://aws.amazon.com/ec2/instance-types/t3/
  • AWS Graviton - https://aws.amazon.com/ec2/graviton/
  • AWS Lambda Pricing - https://aws.amazon.com/lambda/pricing/
  • Azure Functions Pricing - https://azure.microsoft.com/en-us/pricing/details/functions/
  • AWS EC2 Price List API - https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json

Share this article:

Comments (0)

No comments yet. Be the first to comment!