On this page
TL;DR: Cloud cost optimization is not a one-time audit. 27% of cloud spend on infrastructure and platform services is wasted (Flexera 14th Annual State of the Cloud, n=750+, 2025), down from 32% four years ago. The improvement is real, and it proves the strategies work. The gap that remains closes fastest with the right order: eliminate unused resources first (payback in days), right-size and commit next (weeks to months), then build prevention into how engineering teams write code. Most teams attack these in the wrong sequence and capture only the easiest third.
Why Cloud Waste Persists Despite Years of FinOps
Cloud cost management has been a declared priority at most technology organizations for the better part of a decade. The playbook is well-documented. The tools are mature. Yet 84% of IT professionals and executives still cite managing cloud spend as their top cloud challenge (Flexera 2025 State of the Cloud, n=750+), ranking it above cloud security for the first time.
Two things are simultaneously true: FinOps works, and most teams are not applying it systematically.
The Flexera data makes both points. Waste dropped from 32% to 27% over four years. That is a real improvement attributable to organizations that adopted a structured FinOps practice. But 49% of organizations still say more than 25% of their public cloud spend is wasted (Broadcom Private Cloud Outlook 2025). And 31% of IT leaders say they waste more than half their cloud spend (VMware, cited in CIO 2025).
The gap between organizations that have improved and those still bleeding is not primarily a tooling problem. It is a sequencing and culture problem.
Most cloud cost optimization guides present strategies as a flat list. Right-size. Use reserved instances. Enable autoscaling. Implement tagging. In practice, the order matters enormously. Implementing reserved instances before right-sizing locks you into oversized commitments. Building a FinOps practice before engineering teams have cost visibility creates process overhead with no accountability. The sequence determines whether the effort produces a one-time reduction or a lasting structural improvement.
This guide presents strategies in the order they deliver ROI, not in the order they appear in vendor documentation.
The ROI-Ordered Framework: Three Tiers
The decision variable for sequencing cloud cost strategies is payback time given effort invested.

| Tier | Strategy type | Payback timeline | Effort | Risk |
|---|---|---|---|---|
| Tier 1: Elimination | Remove waste that should not exist | Days to 2 weeks | Low | Near-zero |
| Tier 2: Architecture efficiency | Optimize what is legitimately running | 2 weeks to 3 months | Medium | Low to medium |
| Tier 3: Prevention | Change how new work is provisioned | 3 months to ongoing | High | Culture-dependent |
The error most teams make: jumping to Tier 2 (reserved instances, savings plans) without completing Tier 1. Committing to reserved capacity on resources that are 3x oversized locks in waste at a discount. Tier 1 runs first, always.
Before any strategy begins: establish a cost visibility baseline. You cannot prioritize what you cannot see. Every cloud provider offers native cost management dashboards (AWS Cost Explorer, Azure Cost Management, GCP Cost Tools). Third-party tools (Infracost, CloudHealth, Apptio) aggregate across providers. The baseline requirement: cost attributed to team, service, and environment, not just to account or subscription. Teams that cannot answer “what does this microservice cost per day?” are not ready to optimize; they are ready to get baseline visibility first.
Tier 1: Elimination Strategies (Payback in Days)
Elimination targets resources that are running but delivering no value. These are safe to terminate, require no architectural judgment, and produce immediate savings.
Strategy 1: Terminate Idle and Unused Resources
Every cloud environment accumulates orphaned resources over time. Engineers provision infrastructure for testing, forget to terminate it, and it runs indefinitely. A stopped EC2 instance still charges for its attached EBS volume. A load balancer with no targets still incurs hourly fees. Elastic IPs unattached to running instances accumulate charges. A snapshot from three years ago that nobody looks at grows storage costs silently.
The audit scope for idle resource termination:
- Compute: EC2 instances, Azure VMs, GCP Compute Engines running at under 5% CPU utilization for 14+ consecutive days
- Storage: EBS volumes not attached to any instance; S3 buckets with zero access in 90 days; unattached managed disks
- Networking: Unattached elastic IPs and static IPs; load balancers with zero healthy targets
- Database: RDS instances with zero connections for 14+ days; read replicas nobody is querying
- Snapshots and AMIs: Anything older than 180 days with no documented retention requirement
AWS Trusted Advisor, Azure Advisor, and GCP Recommender surface most of these automatically. The bottleneck is not detection; it is authorization to terminate. Establish a “mark for deletion” policy: tag the resource with a termination date 7 days out, notify the owning team via Slack, and terminate if no response. The notification step catches the edge case where a resource looks idle but has a legitimate owner. The silence rule handles the rest.
Teams that run a systematic idle resource audit for the first time commonly find 15–25% of their cloud inventory is genuinely unused. At $100,000/month in cloud spend, that is $15,000–$25,000/month recovered with terminations that carry no service risk.
Strategy 2: Schedule Non-Production Environments
Production runs 24/7. Development, staging, QA, and test environments typically serve a team during working hours in one timezone, 8 hours out of 24, 5 days out of 7. An unscheduled non-production environment runs 168 hours/week; a scheduled one runs 40. The cost ratio is 1:4.2.
Automated shutdown and restart scheduling is infrastructure-as-code with an event trigger. AWS Instance Scheduler, Azure Automation runbooks, and GCP Cloud Scheduler all implement this natively. A scheduled shutdown of non-production environments running on $20,000/month of compute produces approximately $14,000/month in savings, immediate and recurring, with no architectural change.
The CTO at Pynest documented in CIO (2025) that an automated evening shutdown policy for development environments delivered double-digit percentage cloud savings in the first month. The pattern is consistently reproducible across mid-market cloud environments and requires one sprint to implement.
Implementation guard: Confirm which environments are genuinely non-production before scheduling. Shadow production environments that receive real traffic (canary environments, performance test environments running production-equivalent load) require explicit exclusion from shutdown schedules.
Strategy 3: Right-Size Oversized Instances Before Committing to Anything
The most common cloud waste pattern: an engineer provisions an m5.2xlarge for a service that runs at 8% CPU under peak load, because “we might need it.” Nobody revisits the instance size. The over-provisioning compounds as more services get provisioned the same way.
Right-sizing before any reserved instance commitment is non-negotiable. Committing to a reserved m5.2xlarge on a service that should run on a t3.large locks in the wrong size at a discount, producing savings below what right-sizing plus a smaller commitment would deliver.
Right-sizing process:
- Pull 30-day P99 CPU, memory, and network utilization from your monitoring system (CloudWatch, Datadog, Prometheus)
- Identify instances where P99 utilization sits below 30% CPU and below 40% memory for all 30 days
- Downsize to the next tier down; re-measure for 14 days
- Repeat until P99 CPU reaches 50–70% target range
The target utilization range of 50–70% P99 CPU leaves headroom for spikes while eliminating the chronic over-provisioning common in environments where engineers provision for theoretical peaks rather than observed ones.
Right-sizing across a mid-market AWS environment typically reduces compute costs by 20–40% before any reserved instance program is applied. Apply the commitment after right-sizing, not before.
Tier 2: Architecture Efficiency (Payback in Weeks to Months)
Tier 2 strategies optimize resources that are legitimately running and correctly sized. The goal shifts from elimination to commitment efficiency.
Strategy 4: Reserved Instances and Savings Plans
On-demand pricing is a penalty for uncertainty. If you can predict that a service will run at a given scale for 12 months, committing to that capacity via reserved instances or savings plans produces 30–72% cost reduction versus on-demand, depending on commitment term and payment model.
The sequencing requirement: complete Tier 1 right-sizing before committing. Right-size first, commit second. The common failure is buying a 1-year reserved instance on an instance type that right-sizing would eliminate.
Commitment sizing rule: Cover your baseline load with reserved capacity; cover spikes with on-demand. An API service that runs at 6 instances under normal load and scales to 10 under peak should have 6 reserved instances and on-demand cover for 4. Not 10 reserved instances bought for the worst-case peak you experienced once in Q4.
Savings Plans vs Reserved Instances (AWS context): Savings Plans provide more flexibility (apply to any instance family meeting the compute commitment), at a similar discount. For workloads that resize or change instance types, Compute Savings Plans reduce the commitment lock-in risk compared to instance-specific reservations. Use Savings Plans for general compute; use Reserved Instances for predictable, stable workloads like databases and long-running services.
The FinOps Foundation recommends a utilization target of 70%+ on reserved capacity before expanding coverage. Running at 60% utilization on reservations means you committed to more than your baseline actually requires.
Strategy 5: Spot and Preemptible Instances for Fault-Tolerant Workloads
Spot instances (AWS), preemptible VMs (GCP), and spot VMs (Azure) offer 60–90% discount on on-demand compute with one condition: the provider can reclaim the instance with 2 minutes notice when capacity is needed elsewhere. This constraint limits spot instances to workloads that can tolerate interruption.
Appropriate workloads for spot:
- CI/CD build runners (restart the build from checkpoint or from scratch)
- Batch processing jobs (process in chunks, checkpoint state to S3/GCS)
- ML/AI training jobs that use spot-aware frameworks (Amazon SageMaker, Vertex AI, Azure ML) with automatic checkpoint and resume
- Development and test environments with state stored externally
Not appropriate for spot:
- Production stateful services without external state management
- Long-running jobs without checkpoint logic
- Any workload where a 2-minute interruption causes unacceptable disruption
For AI and ML training specifically, spot instances with automated checkpoint and resume reduce training costs by 50–80% (Northflank 2026). The engineering investment in making training jobs checkpoint-aware is typically 1–2 days; the payback on a single large GPU training run is often same-day.
Strategy 6: Storage Tiering and Data Lifecycle Management
Storage costs compound invisibly. Data written to S3 Standard or Azure Blob Hot tier stays there unless a lifecycle policy moves it. A 2TB log archive sitting in S3 Standard at $0.023/GB/month is $46/month. The same data in S3 Glacier Instant Retrieval costs $0.004/GB/month, $8.20/month. Across an organization with 100TB of archival data in the wrong storage tier, that difference is $1,492/month in avoidable spend.
Storage tiering decision matrix:
| Access pattern | Recommended tier | Cost (AWS S3 example) |
|---|---|---|
| Accessed daily | S3 Standard | $0.023/GB/month |
| Accessed weekly | S3 Intelligent-Tiering | $0.023 active, auto-transitions |
| Accessed monthly | S3 Standard-IA | $0.0125/GB/month |
| Accessed quarterly | S3 Glacier Instant | $0.004/GB/month |
| Rarely accessed, 7yr retention | S3 Glacier Deep Archive | $0.00099/GB/month |
| Never accessed, candidate for deletion | Delete | $0 |
Lifecycle policies in S3, Azure Blob, and GCS automate tier transitions based on object age. An S3 lifecycle rule transitioning objects to Glacier Instant Retrieval after 90 days and Glacier Deep Archive after 365 days runs without manual intervention once configured. Implementation takes a sprint; maintenance is near-zero.
Egress cost trap: All three major cloud providers charge for data transferred out of their network. Egress from AWS to the internet runs $0.09/GB at standard rates. Architecture decisions that move large volumes of data between regions or out to third-party services compound costs invisibly. Before optimizing storage tier costs, audit egress patterns. Cross-region replication, analytics jobs pulling data to a different region for processing, and backup pipelines sending data to external storage are the most common culprits.
Tier 3: Prevention and FinOps Culture (Long-Term Leverage)
Tier 1 and Tier 2 strategies recover waste that already exists. Tier 3 changes how waste is created, or more precisely, prevents it from being created. This is where organizations that sustain under-15% waste rates diverge from those that run cleanup cycles repeatedly.
Strategy 7: FinOps with Engineering Team Accountability
FinOps as a practice without engineering accountability is a finance team reading reports and sending emails that engineers ignore. The structural requirement is making cloud cost visible at the team level and tying it to team accountability.
The proportion of organizations with an active FinOps practice grew 8 percentage points year over year to 59% (Flexera 2025). The organizations gaining the most from FinOps share a structural pattern: cost allocation at the service level, not just the account level, and engineering teams who can see what their code costs in production.
The engineering accountability model that works:
- Tagging as code: Every resource created through Terraform, Pulumi, or CloudFormation must carry a team tag, service tag, and environment tag. IaC pipelines reject untagged resources via policy checks (Sentinel for Terraform Enterprise, OPA for open-source stacks). No tag, no deploy.
- Team cost dashboards: Every engineering team sees a weekly summary of what their services cost. Not a CFO-level rollup. A per-service, per-environment breakdown accessible in Slack or their sprint tool.
- Cost in the sprint review: Cloud cost is a metric reviewed alongside deployment frequency, error rate, and latency at every sprint review. Not a separate quarterly finance meeting. The same cadence as performance metrics.
- Anomaly alerts to engineering: When a service’s cost jumps 30% week over week, the alert goes to the engineering team, not only to the platform team. The engineer who wrote the job that started a 100GB/day data export should know immediately.
Roman Rylko, CTO at Pynest, observed in CIO (2025) that the underlying problem is not financial but cultural: if engineers do not understand that each VM or container costs real money, no CFO report will address the issue. Effective solutions make engineering teams accountable for spend and ensure they understand the cost impact of their resources.
Strategy 8: IaC-Enforced Cost Guardrails
Prevention scales only when it is automated, not when it depends on individuals doing the right thing. Policy-as-code enforces cost guardrails at the provisioning stage, before anything reaches production.
Guardrail patterns that prevent the most common over-provisioning:
# OPA/Conftest policy: block large instance types without justification tag
deny[msg] {
resource := input.resource_changes[_]
resource.type == "aws_instance"
# Block r5.8xlarge and larger without an approved_large_instance tag
large_types := {"r5.8xlarge", "r5.16xlarge", "r5.24xlarge", "m5.16xlarge", "m5.24xlarge"}
resource.change.after.instance_type == large_types[_]
not resource.change.after.tags["approved_large_instance"]
msg := sprintf("Instance type %v requires an approved_large_instance tag with justification.", [resource.change.after.instance_type])
}# Sentinel policy (Terraform Enterprise): enforce auto-scaling on production compute
import "tfplan/v2" as tfplan
# All production ASGs must have max_size set (prevents unbounded scaling)
deny_unbounded_scaling = rule {
all tfplan.resource_changes as _, rc {
rc.type is "aws_autoscaling_group" and rc.change.after.tags["environment"] is "production"
implies rc.change.after.max_size <= 20
}
}Policy gates at the CI/CD level catch over-provisioning before it reaches production. The alternative, catching it after the fact in a quarterly review, means it runs for months before anyone addresses it.
Infracost in CI: Infracost runs as a CI step and comments on pull requests with the estimated monthly cost change of the infrastructure diff. An engineer adding a new RDS instance sees the cost impact before they merge. This changes the conversation from “we discovered this is expensive” to “let’s discuss whether this cost is justified before we commit.”
Strategy 9: Forecasting and Budget Gates
Reactive cost management catches overruns after they happen. Forecasting builds cost expectations into planning and surfaces anomalies before they become invoices.
AWS Cost Explorer, Azure Cost Management, and GCP Billing provide native forecasting based on trend extrapolation. The more powerful approach: forecast based on deployment plans rather than historical extrapolation. If you know a new region launch is planned for Q3 and it will involve 50 new EC2 instances, forecast that cost into the Q3 budget before Q3 starts.
Budget alerts operate at two levels:
- Early warning (80% of budget consumed): Alert the engineering team and finance partner. Review whether the remaining budget is sufficient or whether a spend conversation is needed.
- Hard gate (100% of budget consumed): Options range from manual approval gates to automated scaling caps that prevent further resource provisioning. Hard gates require cross-functional agreement before implementation; they should never be a surprise to engineering teams.
The organizations that keep cloud waste consistently below 15% treat cloud cost like any other engineering metric: measured continuously, reviewed in sprint cadence, and owned by the teams who create it.
AI Workloads: The Cost Category Most Optimization Checklists Miss

Nearly three-quarters of organizations now use public cloud generative AI services, up from fewer than half in 2024 (Flexera 2025). The cost implications are categorically different from standard compute workloads and require their own optimization strategies.
GPU Waste in AI Training
GPU instances cost 10–50x the equivalent CPU compute. An A100-based instance on AWS (p4d.24xlarge) runs at approximately $32.77/hour on demand. At those rates, a training job idling at the data loading stage costs the same as one processing batches. GPU utilization monitoring is not optional for AI workloads.
Key GPU optimization patterns:
- Separate training and inference infrastructure. Training requires high-GPU, high-memory instances for short intensive bursts. Inference requires consistent low-latency compute that often fits on CPU or smaller GPU instances. Running both on the same infrastructure class optimizes for neither.
- Spot instances for training. Training jobs that use framework-native checkpointing (PyTorch Lightning, Hugging Face Trainer) restart cleanly from checkpoint on spot interruption. A70–80% discount on training compute (Northflank 2026) is achievable with checkpoint-aware implementations. The engineering investment is typically one sprint.
- Automatic shutdown for AI notebooks. Jupyter notebooks and development environments on GPU instances left running overnight consume GPU hours with zero utilization. Scheduled shutdown policies for notebooks (SageMaker Studio auto-shutdown, Azure ML compute instance schedules) apply the same logic as non-production environment scheduling to the highest-cost instance class.
- Dev vs production GPU tiers. A100/H100 GPUs are appropriate for production inference and final training runs. Smaller GPU instances (T4, V100, A10G) are sufficient for development iterations and experimentation. Enforcing a policy that routes development workloads to smaller GPU classes reduces development-stage GPU costs by 40–70%.
LLM Token Costs: The Invisible Meter
LLM API costs scale with token volume, not with instance hours. A poorly designed agent that passes the entire conversation history on every call, adds unnecessary context, or fails to use prompt caching can cost 10–20x what an equivalent well-designed agent costs for the same task.
Token cost optimization at the application layer:
- Prompt caching: Anthropic and OpenAI both support prompt caching for stable system prompts. Cache a 4,000-token system prompt and the caching cost is roughly 90% less than re-sending it on every call. For high-volume applications, this compounds into significant savings.
- Model tiering: GPT-4o costs approximately 25–50x GPT-4o-mini for equivalent output on simple classification or extraction tasks. Route simple tasks (intent classification, short Q&A on structured data) to cheaper models; route complex reasoning to frontier models. The routing logic is a one-time engineering investment.
- Context window hygiene: RAG systems that retrieve 20 documents and pass all 20 to the LLM are paying for context that may not be used. Implement retrieval confidence thresholds; pass the top 3–5 ranked documents, not everything above a low similarity threshold.
Vector Database and AI Storage Costs
Vector databases (Pinecone, Weaviate, Qdrant, pgvector) carry index storage and query costs. As embedding sizes and corpus sizes grow, storage costs scale faster than anticipated. Implement data retention policies for vector stores: embeddings for documents updated more than 12 months ago may no longer need to be in the primary index. Move stale embeddings to cheaper archive storage and rebuild the index only if they are queried.
Common Mistakes That Undermine Cloud Cost Programs

| Mistake | What it produces | Prevention |
|---|---|---|
| Committing to reserved instances before right-sizing | Locks in oversized commitments at a discount | Tier 1 right-sizing always precedes Tier 2 commitments |
| Cost visibility only at account level | Engineers cannot see what their services cost; no team accountability | Tag all resources by team, service, environment as IaC policy |
| Treating cloud cost optimization as a finance initiative | Engineers disengage; optimizations last one quarter | Engineering team owns cost metrics same as latency and error rate |
| Running unscheduled non-production environments 24/7 | Paying 168 hrs/week for services used 40 hrs/week | Environment scheduling as standard DevOps practice from day one |
| Spot instances without checkpoint logic | Training jobs that fail mid-run lose all progress | Implement checkpoint-aware training before moving to spot |
| Reserving GPU instances for AI development | $30+/hr for notebooks that run at 3% GPU utilization | Scheduled shutdown + dev-tier GPU policy for development |
| No anomaly alerting | Cost spikes run for weeks before discovery | Budget alerts to engineering teams, not only to finance |
| FinOps as a team, not a practice | Centralized cost reviews that engineering ignores | Embed cost into sprint review; make team dashboards self-service |
| Right-sizing based on average, not P99 | Under-sized instances that degrade under load | Always right-size on P99 utilization, not average |
| Ignoring egress costs | Unexpected charges for data transfer between regions and to internet | Audit egress patterns before storage and compute decisions |
How InApps Runs Cloud Cost Optimization for Engineering Teams
InApps builds and manages cloud cost optimization programs under the DevOps Consulting service, typically embedded with a dedicated DevOps engineering team that sits inside the client’s sprint process.
The InApps approach to cloud cost optimization:
The engagement starts with a baseline audit: tagging compliance review, idle resource discovery, utilization analysis across compute and storage, and a current-state cost breakdown by service and environment. Most audits surface 15–30% of cloud spend that can be recovered in Tier 1 elimination without any architectural change.
After the baseline, InApps implements the Tier 2 and Tier 3 strategies as IaC changes committed to the client’s repository. The client owns the code; InApps writes and maintains it. Reserved instance and savings plan recommendations are modelled against actual utilization data, not default sizing guides.
What a dedicated DevOps engineer brings to cloud cost optimization vs a consultant’s recommendation:
A consultant delivers a report. A dedicated engineer implements the Infracost CI integration, configures the OPA policies, sets up the environment scheduling automation, and sits in the sprint review where cloud cost is on the board. The difference is sustained execution vs a one-time analysis.
A pattern common across InApps DevOps engagements: organizations run Tier 1 cleanup themselves after an audit, capture the immediate savings, and then see costs drift back upward within 6 months because no Tier 3 prevention was implemented. Tier 3 requires ongoing engineering discipline, which is what a dedicated team member provides.
InApps DevOps engineers are based in Vietnam (UTC+7), providing 4–5 hours of overlap with Australian teams and async-compatible workflow with US and UK teams. At Vietnam senior DevOps engineer rates ($50–$75/hr), the cloud savings recovered in Tier 1 alone typically cover the cost of the engagement in the first month.
Request a cloud cost baseline audit, InApps reviews your cloud environment and delivers a prioritized optimization plan before any scope is committed.
Frequently Asked Questions
What are the most effective cloud cost optimization strategies in 2026?
The most effective strategies in ROI order: (1) Terminate idle and unused resources (immediate payback, zero risk); (2) Schedule non-production environments to shut down outside working hours (60–75% reduction in non-production compute); (3) Right-size oversized instances based on P99 utilization before committing to any reserved capacity; (4) Apply reserved instances and savings plans after right-sizing to lock in 30–72% discounts on stable workloads; (5) Implement IaC-enforced tagging and cost guardrails to prevent new waste from being provisioned; (6) Run FinOps with engineering team accountability through sprint-cadence cost reviews.
How much cloud spend is typically wasted?
27% of cloud spend on infrastructure and platform services is wasted on average (Flexera 14th Annual State of the Cloud, n=750+, 2025), down from 32% four years ago. The improvement reflects maturing FinOps adoption, but 49% of organizations still report wasting more than 25% of their cloud spend (Broadcom Private Cloud Outlook 2025). Organizations without an active FinOps practice tend toward the higher end; those with engineering-level cost accountability trend toward 15% or below.
What is the difference between FinOps and cloud cost optimization?
Cloud cost optimization is the set of technical actions that reduce waste: right-sizing, scheduling, reserved instances, storage tiering. FinOps is the operating model that makes those actions sustainable: shared accountability between engineering, finance, and product; continuous measurement; forecasting; and governance processes that prevent waste from re-emerging. Optimization without FinOps produces a one-time improvement. FinOps without technical optimization produces visibility without action. Both are required for sustained results.
How should I prioritize cloud cost optimization strategies?
Tier 1 first: eliminate resources that should not exist (idle, unused, unattached). This requires no architectural decisions and produces immediate savings. Tier 2 second: optimize running resources through right-sizing, commitments, and storage tiering. Tier 2 after Tier 1 prevents committing to optimized-but-wrong-size resources. Tier 3 third: build prevention into how engineering teams provision resources via IaC policies, cost visibility, and sprint-cadence cost reviews. Teams that skip to Tier 2 before completing Tier 1 consistently underperform against teams that execute in sequence.
What are the biggest cloud cost optimization mistakes?
Committing to reserved instances before right-sizing is the most common and costly mistake, it locks in the wrong size at a discount. The second is treating cloud cost as a finance problem rather than an engineering accountability issue, producing visibility that engineers ignore. The third is running cleanup cycles without building prevention infrastructure, which means costs drift back to pre-optimization levels within 6 months. For AI workloads: leaving GPU notebooks and development environments running outside working hours at A100-class rates is the equivalent of leaving your most expensive compute idling overnight.
How do AI workloads change cloud cost optimization?
AI workloads introduce cost categories that standard optimization checklists miss: GPU instance costs (10–50x standard compute), LLM API token costs (scaling with context window usage, not with instances), and vector database storage costs. GPU right-sizing follows different principles than CPU: separate training and inference infrastructure, use spot instances with checkpoint logic for training (50–80% cost reduction achievable), apply scheduled shutdown for AI notebooks, and enforce a dev-tier GPU policy that routes development workloads to cheaper GPU classes. For LLM APIs: implement model tiering, prompt caching, and retrieval confidence thresholds to control token spend.
When should we use spot instances for cloud cost optimization?
Use spot instances for workloads that can tolerate interruption with a 2-minute warning: CI/CD build runners, batch processing jobs with external state storage, and AI/ML training jobs with checkpoint-and-resume logic. Do not use spot for stateful production services, long-running jobs without checkpoint support, or any workload where a 2-minute termination causes unacceptable service disruption. The discount is 60–90% versus on-demand, making it high-leverage for appropriate workloads once interruption-tolerance is engineered in.
Key Takeaways
- 27% of cloud spend is wasted on average (Flexera 2025, n=750+), down from 32% four years ago. The improvement proves the strategies work; the remaining gap requires the right execution sequence.
- Tier 1 always runs first: eliminate idle resources, schedule non-production environments, right-size instances before any reserved commitments.
- Right-size before committing: reserved instances and savings plans applied to oversized instances lock in the wrong capacity at a discount. Complete right-sizing first, measure for 14 days, then commit.
- 84% of IT leaders say managing cloud spend is their top cloud challenge (Flexera 2025), ranking above cloud security. It is a priority that most organizations have not solved structurally.
- FinOps adoption reached 59% (Flexera 2025), growing 8pp year over year, but the organizations still at 30%+ waste have not yet made engineering teams accountable for cost, only visible to finance teams.
- AI workloads require their own optimization layer: GPU scheduling, spot instance checkpointing, LLM model tiering, and prompt caching are not covered by standard cloud cost optimization frameworks.
- Prevention requires IaC-enforced guardrails: tagging policies, instance type gates, and Infracost in CI prevent new waste from being provisioned. Without prevention, cleanup cycles repeat every 6 months.
- A dedicated DevOps engineer sustains optimization where a consultant’s report does not. Tier 3 prevention requires ongoing engineering discipline inside the sprint process.
Work with us
Need a team that can do this on your codebase?
Tell us what you are shipping and we will send back a scope, a team shape and a fee. No obligation.
Book a free call




