- Joel Zamboni

AWS Cost Optimization: A FinOps Playbook for SaaS Teams

A practical AWS cost optimization playbook for SaaS teams: get visibility, take the quick wins, choose Savings Plans or RIs, and give every dollar an owner.

Most SaaS companies do not have an AWS bill problem. They have an ownership problem that shows up on the AWS bill. Instances launched for a test in March are still running in October, a staging database is sized like production, and nobody can say which customer or feature drives the biggest line item. AWS cost optimization is less about clever tricks than about seeing where the money goes, removing the obvious waste, and building a habit so the waste does not come back. This playbook walks through all three, in that order, with the AWS tools that do the work.

What FinOps means for a small SaaS team

FinOps is the name for that habit. The FinOps Foundation defines it as “an operational framework and cultural practice which maximizes the business value of technology, enables timely data-driven decision making, and creates financial accountability through collaboration between engineering, finance, and business teams.”

At an enterprise, that means a dedicated FinOps team. At a 20-person SaaS company, it usually means one engineer, the CTO and whoever pays the invoices agreeing on three things: what the bill should look like, who owns each part of it, and when someone looks at it. Cloud cost optimization works the same way on any provider, but the tools below are AWS-specific.

AWS frames the same idea in the cost optimization pillar of its Well-Architected Framework. The three steps below are a version of that pillar sized for a team without a FinOps department.

Step 1: Get visibility before you cut anything

You cannot optimize what you cannot attribute. Start here, even if you already suspect where the waste is.

Turn on Cost Explorer and use it weekly. AWS Cost Explorer shows spend by service, account, region and usage type, and it is where most of the other cost tools surface their data. Group by usage type, not just service. “EC2-Other” hides EBS volumes, snapshots, NAT gateway charges and data transfer, which are often the surprises.

Tag resources, then activate the tags. Tags such as team, service, environment and customer let you split the bill by what matters to your business. One detail catches many teams: a tag on a resource does nothing for billing until you activate it as a cost allocation tag in the Billing and Cost Management console, and activated tags can take up to 24 hours to appear. Enforce tags in your Terraform or CloudFormation modules rather than asking people to remember them.

Export the detailed data. When Cost Explorer is not granular enough, AWS Data Exports delivers the Cost and Usage Report 2.0 (CUR 2.0) to an S3 bucket with line-item detail. AWS calls CUR 2.0 the recommended way to receive detailed cost and usage data. It is what you need to calculate cost per customer or cost per request, which is the number a SaaS business should actually watch.

Separate environments into accounts. If production, staging and development share one AWS account, every cost conversation starts with an argument about which resources belong where. Separate accounts under AWS Organizations make the split automatic.

Step 2: Take the quick wins

With visibility in place, the first round of savings usually comes from the same handful of places.

Start with AWS Cost Optimization Hub

AWS will point you to many of them: Cost Optimization Hub consolidates rightsizing, idle resource, Savings Plans and Reserved Instance recommendations across accounts and regions, with the rightsizing and idle findings coming from AWS Compute Optimizer. Treat these as a starting list, not a to-do list. A recommendation to shrink an instance does not know that the instance handles a month-end batch job. After you opt in, it takes about 24 hours to populate, so turn it on early.

Idle and oversized resources

Look for instances with consistently low CPU and memory use, load balancers with no targets, unattached EBS volumes, and databases running in non-production environments around the clock. Development and staging environments that nobody uses at night or on weekends can be scheduled off. Rightsizing is worth doing carefully: change one thing, watch latency and error rates for a few days, then move on.

Storage

  • Move gp2 volumes to gp3. AWS states that gp3 volumes offer a 20 percent lower price per GiB than gp2, with a baseline of 3,000 IOPS and 125 MiB/s included. The change can be made in place with Elastic Volumes, without stopping the instance.
  • Pick the right S3 storage class. For data with unpredictable access, S3 Intelligent-Tiering moves objects to cheaper tiers after 30 and 90 days without access, for a small monitoring charge. Objects under 128 KB are not tiered, so it helps less for buckets full of tiny files. For data with predictable access, such as logs you keep for a year, lifecycle rules to a specific class are simpler.
  • Clean up snapshots. Old EBS snapshots and RDS manual snapshots accumulate quietly. Delete what you do not need, and for snapshots you must keep for 90 days or more, EBS Snapshots Archive offers up to 75 percent lower storage cost, at the price of a slower restore.

NAT gateway data

NAT gateways charge by the hour and per gigabyte of data processed, on top of normal data transfer. Private subnets that pull container images, push logs or read from S3 through a NAT gateway can generate a large, easy-to-miss line item. Gateway VPC endpoints for S3 and DynamoDB have no hourly or data processing charge, so routing that traffic through them is often the cheapest networking change you will ever make. Interface endpoints for other services cost money, so compare them against the NAT traffic they would replace.

Savings Plans vs. Reserved Instances

Once your usage is right-sized, commit to the baseline you know you will run. Commit before rightsizing and you lock in the waste.

Savings Plans trade a one- or three-year commitment to an hourly spend for lower rates. AWS offers four types:

  • Compute Savings Plans, up to 66% off On-Demand, apply across EC2 instance families, sizes and regions, and also to Fargate and Lambda.
  • EC2 Instance Savings Plans, up to 72% off, require a specific instance family in a specific region.
  • Database Savings Plans, up to 35% off, cover Aurora, RDS, DynamoDB, ElastiCache and several other database services.
  • SageMaker AI Savings Plans cover SageMaker instance usage.

Reserved Instances still exist for services such as RDS, ElastiCache, OpenSearch and Redshift, and lock you to a more specific configuration. For a growing SaaS team whose architecture will change, flexibility usually matters more than the last few points of discount, which points toward Compute Savings Plans first. Cost Explorer generates Savings Plans recommendations from your actual usage, and AWS Budgets can alert you when utilization or coverage drops, which is how you notice a commitment you no longer need.

Step 3: Make it a process, not a project

A cost cleanup without a process lasts about a quarter. These AWS cost optimization best practices keep the savings.

Give every dollar an owner. Each account, service or tag value should map to a person or team who answers for it. When the bill for the search service doubles, someone specific gets the question.

Set budgets and forecast alerts. AWS Budgets can notify you on actual spend and on forecasted spend, before the money is gone, and can trigger actions such as applying an IAM policy that blocks new resources in an account. Set a budget per account and per major service, sent to the owner, not a shared inbox nobody reads.

Turn on anomaly detection. AWS Cost Anomaly Detection uses machine learning to flag unusual spend by service, account, cost allocation tag or cost category, and can alert by email, SNS or Slack. AWS notes in its FAQ that detection relies on Cost Explorer data with up to 24 hours of latency, so it catches a runaway job on day two, not minute two. That is still far better than finding it on the invoice.

Review monthly. Thirty minutes a month with the cost owners is enough for most small teams: what changed, why, what is next. Track one unit metric, such as infrastructure cost per active customer, so growth does not hide inefficiency.

AWS cost optimization tools: what to use when

NeedAWS tool
See where money goesCost Explorer
Attribute spend to teams, services, customersCost allocation tags, AWS Organizations
Line-item detail and unit costsData Exports (CUR 2.0)
Find rightsizing and idle resourcesCompute Optimizer, Cost Optimization Hub
Commit to baseline usageSavings Plans, Reserved Instances
Catch overspend earlyAWS Budgets, Cost Anomaly Detection

No single AWS cost optimization tool covers all of this, which is why the table pairs needs with tools. Third-party cost platforms add multi-cloud views, Kubernetes cost allocation and nicer reports. They are worth evaluating once the native tools stop answering your questions, not before.

Where an agent fits

Most of this work is not hard. It is just easy to postpone, because no single task is urgent and the people who could do it are busy shipping product. That is where automation earns its place: something has to read the cost data every day, notice the unattached volume and the gp2 fleet, and put a clear recommendation in front of a person who can decide.

At Webera, that is the job of Optimizer, one of our nine AI agents. It analyzes cloud spend, identifies waste, recommends rightsizing and reserved capacity, builds cost dashboards and budget alerts, and tracks savings over time. Navigator, the networking agent, looks at network costs and data transfer, including NAT gateway traffic. Agents propose; engineers decide. Retiring an instance or buying a three-year commitment is a decision a person makes with your team, not something an agent does on its own.

Cost work also overlaps with reliability. Rightsizing too aggressively causes incidents, which is one reason it belongs with the team that carries the pager. Our posts on site reliability engineering vs. DevOps and incident management for SaaS cover that side. For a broader view of what an outside team takes on, see what a managed DevOps subscription replaces.

Frequently asked questions

What are the five pillars of cost optimization in AWS?

Strictly, Cost Optimization is one of six pillars in the AWS Well-Architected Framework. Within that pillar, AWS groups its guidance into five areas: practice Cloud Financial Management, expenditure and usage awareness, cost-effective resources, manage demand and supply resources, and optimize over time. Those five are what people usually mean by the five pillars of AWS cost optimization.

Is AWS cost optimization free?

Partly. Cost Optimization Hub has no additional charge, and Cost Explorer, Budgets and Cost Anomaly Detection live in the Billing and Cost Management console, though check each one’s pricing before relying on it at scale. What costs money is the time to act on the findings, and commitments such as Savings Plans, which lower rates in exchange for a one- or three-year spend commitment.

Why does AWS cost so much?

For most SaaS teams, the bill is high because of waste nobody owns rather than AWS rates: forgotten test instances, staging sized like production, unattached volumes, old snapshots and NAT gateway data charges. Without tags and an owner for each part of the bill, those costs grow quietly.

How to optimize EC2 cost?

Start by rightsizing instances with consistently low CPU and memory use, using Compute Optimizer findings as a starting list, and schedule non-production instances off at night and on weekends. Move gp2 volumes to gp3 and clean up old snapshots. Once usage is right-sized, cover the steady baseline with Compute Savings Plans or EC2 Instance Savings Plans.

Put FinOps on someone’s plate

Webera is a DevOps subscription for SaaS teams on AWS: senior engineers plus nine AI agents, with 24/7 monitoring and incident response and unlimited requests on every plan. Pro is $4,999 a month, Elite $9,999 and Platform $14,999, each with a three-month minimum and then month to month. You own all the code and configuration.

If your AWS bill keeps growing and nobody owns it, compare the plans and see what it would take to make cost review a weekly habit instead of a yearly scramble.

Need DevOps expertise?

Our team of senior engineers can help you implement these practices.

Book a Discovery Call