FinOps is Engineering, Not Accounting: How to Actually Reduce Your AWS Bill
Most FinOps strategies fail because they treat cloud spend as an accounting problem instead of an engineering problem. Here is how to build automated, architecture-driven cost optimization that actually works.
5 min readTL;DR
Telling engineers to "turn off idle resources" is not a FinOps strategy.
- The Stack: Infracost (CI/CD Cost Estimation), n8n (Automated Waste Collection), AWS Cost Explorer API (Anomaly Detection), and Terraform (Architectural refactoring).
- The Verdict: Real cost reduction happens at the architecture level (e.g., swapping NAT Gateways for VPC Endpoints) and in the CI/CD pipeline, not in a spreadsheet review at the end of the month.
The $50,000 Surprise
There is a moment in every growing tech company when the CTO gets an email from the CFO. Attached is a spreadsheet highlighting the AWS bill. Someone left a massive EMR cluster running over the weekend, or an unoptimized S3 bucket is racking up $10,000 in data transfer fees.
Spreadsheets don't fix infrastructure. If finance is driving your cloud optimization strategy, you've already lost the battle.
The immediate reaction? A company-wide mandate to "tag everything" and a plea for engineers to manually shut down idle EC2 instances.
This approach almost always fails.
Why? Because it treats cloud computing costs as an accounting problem. Cloud cost is an engineering problem, and it requires engineering solutions.
The Flaw with "Tagging"
Don't get me wrong—resource tagging is necessary for cost allocation. But tagging is purely reactive. By the time a finance analyst groups the tags and realizes the data-science-prod team burned $30,000 on inefficient SageMaker instances, the money is already gone to Amazon.
To actually solve the cloud cost crisis, you have to do two things: Shift Left and Automate Waste Collection.
Deep Dive 1: "Shift Left" with Infracost
If you want to stop runaway costs, you have to catch them before the infrastructure is provisioned.
By integrating Infracost into your CI/CD pipeline (e.g., GitHub Actions or GitLab CI), you can evaluate the financial impact of a Terraform Pull Request before it gets merged.
.github/workflows/infracost.yml
name: Infracost
on: [pull_request]
jobs:
infracost:
runs-on: ubuntu-latest
steps:
- name: Setup Infracost
uses: infracost/actions/setup@v2
with:
api-key: ${{ secrets.INFRACOST_API_KEY }}
- name: Run Infracost
run: infracost breakdown --path . --format json --out-file infracost.json
- name: Comment on PR
uses: infracost/actions/comment@v2
with:
path: infracost.json
behavior: updateWith this workflow, if a junior engineer accidentally changes an RDS instance from db.t3.medium to db.r5.24xlarge, the PR receives an automated comment: "⚠️ This change will increase AWS costs by $14,500/month."
You don't need a spreadsheet at the end of the month; you catch the mistake before the terraform apply.
Deep Dive 2: Architectural FinOps (The NAT Gateway Trap)
The biggest cost savings don't come from turning off idle dev environments. They come from fixing bad architecture.
The classic example is the AWS NAT Gateway. AWS charges $0.045 per GB of data processed through a NAT Gateway. If your private EC2 instances or EKS pods are pulling massive Docker images from ECR, or reading terabytes of data from S3, that traffic is being routed through the NAT Gateway and you are paying a massive premium for it.
The Engineering Fix: Instead of routing internal traffic through the public internet via NAT, use VPC Endpoints (AWS PrivateLink).
vpc-endpoints.tf
# Direct traffic to S3 without going through the NAT Gateway
resource "aws_vpc_endpoint" "s3" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.${var.region}.s3"
vpc_endpoint_type = "Gateway"
route_table_ids = aws_route_table.private[*].id
}This single architectural change—which takes an hour to implement in Terraform—can instantly drop a $15,000/month NAT Gateway bill down to near zero. That is FinOps.
Deep Dive 3: Automated Waste Collection with n8n
Even with good architecture, waste accumulates. Unattached EBS volumes, obsolete AMI snapshots, and unassociated Elastic IPs are the silent killers of your AWS budget.
Instead of writing custom python scripts to clean these up, I use n8n to build visual "Waste Collection" workflows.
- Cron Trigger: Runs every Friday at 4 PM.
- AWS Node (EC2): Queries for all EBS volumes where
Status = available(meaning they aren't attached to any instance). - Filter Node: Checks if the volume has been unattached for more than 14 days.
- AWS Node (EBS Snapshot): Takes a final snapshot of the volume (just in case).
- AWS Node (EBS Delete): Deletes the expensive volume.
- Slack Node: Messages the team: "Deleted 14 orphaned EBS volumes today. Saved $850/mo. Snapshots retained for 30 days."
The Operational Reality (What Breaks)
When you start automating infrastructure deletion, you are walking a tightrope.
- The "Oops" Deletion: If your automation deletes an unattached volume that was temporarily unmounted for maintenance, you will cause an outage. Always snapshot before you delete.
- Spot Instance Chaos: Moving workloads to Spot Instances saves 70%, but if your application isn't strictly stateless and your Kubernetes cluster doesn't have the Node Termination Handler configured correctly, you will drop user requests when AWS reclaims the instance.
- The Savings Trap: Spending 40 hours of engineering time to save $50 a month is negative ROI. Focus strictly on the top 10% of your bill.
The Payoff
When FinOps is treated as a cultural and engineering discipline rather than a finance mandate, the results are staggering.
By shifting cost visibility into the Pull Request, refactoring expensive data-transfer architectures, and automating waste collection, companies can regularly shave 30-40% off their AWS bills. And they do it without slowing down feature velocity.
Stop asking your engineers to read spreadsheets. Start empowering them to engineer cost out of the system.
Stop bleeding capital on bad architecture. I guarantee your AWS bill has at least 30% waste baked into it right now. I don't write generic finance reports—I write the Terraform code that fixes the problem permanently.
I will evaluate your infrastructure and cut your AWS costs, or I'll tell you exactly how to do it yourself for free.
Don't wait for next month's bill. Book a Free Infrastructure Audit.
Get weekly DevOps insights
Join engineers who read my deep-dives on Kubernetes, AWS cost optimization, CI/CD, and infrastructure automation.

DevOps Engineer & Cloud Consultant | FinOps, GitOps & Kubernetes Expert
I build systems that run reliably, scale efficiently, and deploy intelligently. See how I can help your team.