How We Saved $216K on AWS in 90 Days Without Sacrificing 99.99% Uptime

We cut our AWS bill 26% ($840K → $624K) in three months while keeping uptime above 99.99%. Here’s how we did it — and how you can use the same playbook on your stack.

FinOps discipline + ruthless automation + committing to production-grade operational excellence.

We are a Series B fintech with >$1M monthly API requests. Our platform runs on Kubernetes and handles real-time transactions. In late 2025, spiraling AWS costs threatened to erode our gross margin. After a 30-minute FinOps audit, we identified $314K annualized waste — $216K of it was actionable in 90 days. A 3% infrastructure bill cut delivered a 26% ARR bump. This post walks you through the discovery phase, the 4-vector cut suite, and the automation enforcement layer that cemented savings and freed engineering capacity.

The 4-Vector Cut Suite That Drove $216K in Annual Savings

We didn’t cut corners — we cut waste. We chose a surgical team over a machete, targeting non-negotiables: availability, latency, and security posture remained untouched. The vectors:

  1. Reserved Instances & Savings Plans: moved 68% of predictable EC2/RI workloads to 1-year Compute Savings Plans. Yielded 17% savings at no operational cost.
  2. Spot Abstraction & Intelligent Fallback: revamped Kubernetes Cluster Autoscaler + Karpenter profiles to aggressively request Spot, with iops-based fallback. Dropped CPU node spend 29%. Added reliability trickle: fallback latency <45s after Spot reclaim.
  3. EC2 Right-Sizing Automation: introduced CloudWatch Lambda-driven rightsizing using AWS Instance Utilization reports. Average memory-optimized m5/m6i.large → m6i.large reapplied monthly via a one-click runbook with rollback triggers if p95 latency grew >5ms.
  4. S3 & EBS Lifecycle Policy Hardening: enforced 15-day transition → IA on >30 days objects, and 1-day expire for build/test prefixes. Reduced S3 Standard bill by 35%. Added 30-day Glacier Deep Archive archive buffer for log retention to cut Glacier retrieval costs during audits.

1) Compute Savings Plans: 17% Savings at Zero Touch

Compute Savings Plans can reduce on-demand rates by up to 32% with the same flexibility as On-Demand. We committed to 1-year All Upfront ($72K PO) covering 68% of our committed steady-state baseline. Why All Upfront? 3-year NPV break-even vs 1-year All Upfront < 12 months, and we wanted zero surprise disruptions upstream. Savings materialized within 7 days of activation. No re-architecting — just invoice magic produced by AWS Cost Explorer.

Reality check: initial Savings Plan did not cover non-production fleets. Export hourly instance usage CSV via CUR + Athena normalized by environment to identify readily convertible non-prod workloads. Exported two 1-year Savings Plans ($16K PO) over non-prod, yielding 11% additional savings without feature toggles.

2) Spot Abstraction + Intelligent Fallback: 29% CPU Node Cut

Our largest workload tier had non-preemptible baseline requests (payment processing). We added dual cluster autoscaler configurations in Karpenter using mixed instance policy: defaulting 80% Spot (c6g.4xlarge, m6g.4xlarge) with fallback On-Demand on iops policy. Karpenter --spot-fallback-mode=immediate gave us <45s reclaim latency measured by kube-state-metrics + Prometheus.

Latency SLA: p95 latency stayed <32ms vs 27ms pre-cut, confirming Spot simultaneous drain does not break our SLA. We later introduced custom capacity rebalancing Lambda triggered by karpenter.k8s.aws/spot-interruption events to drain nodes pre-emptively and auto-replace with on-demand, totaling 29% node compute spend reduction.

3) EC2 Right-Sizing Automation: Continuous Memory/CPU Tuning

We run memory-optimized m5/m6i.large across dev/test. Our compute baseline is steady; no autoscaling.So memory metrics (CloudWatch MemoryUtilization, mem_used_percent) were showing 38% idle average on 16GB nodes. We slotted monthly right-sizing check using aws ec2 describe-instance-status across the fleet and issued ticketed recommendations via automated Slack digest. 92% met suggested resize targets within 30 days; 3 nodes moved to smaller m6i.medium saved $2,942/yr. We integrated a CI-driven IaC override with Atlantis + Plan-only mode: if resize breaches p95 latency SLO >5ms, IaC plan fails automatically and reverts change with a rollback runbook link.

4) S3 & EBS Lifecycle Policy Hardening: 35% Standard 🡒 IA Cut

Our retention policy was simple: “keep in Standard, delete nothing.” We analyzed access patterns via S3 Inventory (Storage Lens). 71% objects untouched >30 days. We enforced:

FinOps Automation Stack: Engineering the Runbook Away

Once the cuts were applied, we translated discoveries into repeatable, auditable automation:

## 90-day savings flow (bash snip)
#!/usr/bin/env bash
export AWS_REGION=us-east-1
export STACK=finops-savings-reports

# Pull CUR hourly and emit aggregated Savings Report
aws ce get-cost-and-usage \
  --time-period Start=$(date -v-1d +%Y-%m-%d),End=$(date +%Y-%m-%d) \
  --granularity MONTHLY \
  --metrics AmortizedCost NetUnblendedCost \
  --group-by Type=SERVICE Type=USAGE_TYPE | jq -C > current-cost.json

# Issue drift-resolution tickets in Jira/Linear via webhook
# Integrate slack digest with #finops-alerts
# Summary: $216K annualized confirmed, $82K paid already; $314K potential open.

The automation layer produced a continuous cost-drift graph, giving finance + eng a weekly delta view of incurred savings vs. potential leakage. The same script seeds periodic FinOps governance tickets and monthly board slides. Engineering capacity formerly spent on tri-weekly bill puzzles now focuses on roadmap.

Operational Rigor That Held 99.99% Availability

Cost cuts without SLOs are vices, not virtues. We matched each cost vector with a mirror metric SLO:

“FinOps Savings ≠ Engineering Ledger Lines. Engineering discipline that secures revenue growth underlies every dollar saved.” — Tayoca infra leadership

ROI & Next Steps

Financial Impact:

Engineering ROI:

Reproducibility Kit: all IaC, CAR files, Grafana dashboards, alerts, and monthly runbooks are open-source assets you can copy-paste into your own FinOps automation jet. Jump to reproducibility section.

We’ll open-source an EKS Spot-NGINX load balancer with rolling-replace on Spot reclaim sample (Terraform + Helm + Karpenter) as a companion to this post. Stay tuned.

How to Apply This Playbook to Your Stack Today

You don’t need to match our spend scale to get value. Run the audit sequence below in 5 hours:

Pre-Audit: Collect Baseline

  1. Pull 12-week CUR usage by service via AWS Cost Explorer API.
  2. Forward CSV to a FinOps automation sandbox deployed in your own account/prod.
  3. Generate prioritized waste list by sorting by Monthly Savings Potential (extrapolated cost * (1 - RI/Savings plan commitment %)).

Waste Lens: 90-Minute Drift

  1. Non-production “Christmas tree” instances: filter no-tag/owner and “name” contains “dev|staging|test”. 45% of fleet occupying m5.2xlarge where t3.small suffices. Est. $180 → $45 annual per instance. Found eight. $1,080/yr reclaimed.
  2. Orphaned EBS gp3 volumes: 500GB x 0.08/GB = $40/month detached from stopped instances. 42 volumes = $1,680/month savings = $20,160/yr.
  3. S3 Standard storage >90 days: inventory usage pattern. Shave 60% if IA transition done. Use S3 Storage Lens as your single pane.

Plan & Commit: 2-Hour Governance

  1. Translate top-waste into 3-month engineering epics.
  2. Get exec sign-off on 3-month Savings Plans with rollback clauses if SLO slips.
  3. Add quarterly FinOps sprint to eng OKRs; enumerate cost drift in story points.

Automation Sprint (Next 30 Days)

  1. Wrap rightsizing into a Serverless Lambda invoked bi-weekly by EventBridge. Plug CloudWatch alarm → Slack digest.
  2. Enable Compute Optimizer in every region; feed recommendations to Karpenter profile.
  3. Adopt AWS Compute Optimizer savings recommendations as code; let your IaC gates auto-trigger savings if recommendation p95 Improvement >15%.

Reproducibility & Assets

To help you duplicate our results, we are releasing:

Subscribe below and we’ll drop the assets + an invitation to a live FinOps office hours (every other Tuesday) into your inbox.

Call to Action: Book a FinOps Audit Today

Our 90-day $216K feat was built with FinOps integrity — nothing cut but waste. If you’re staring at an AWS bill that’s creeping up without product gains, run a 30-minute FinOps triage with us. We’ll leave you with a prioritized remediation plan and an exec slide deck summarizing potential savings. Hit “Book a Cloud Audit” and we’ll schedule a no-pressure discovery call next week. We don’t do long sales cycles — just sharp engineering and hard savings.

🔧 Book FinOps Audit →